1.特点
1.免费且开源
2.支持多用户/多线程
3.安全性好
4.对内存和文件管理高效
5.小巧(linux最小配置只需要4m就能运行),意味着能做嵌入式开发
6.linux所有的设备都是文件
2.目录结构
/ root home bin sbin mnt etc var boot usr
/ 根目录
root: 存放root用户的相关文件
dev:系统中所有设备的文件
home: 存放普通用户的相关文件
bin:存放常用命令
sbin: 存放具有一定权限才可以使用的命令
mnt:挂载光驱和软驱的目录
boot:存放引导相关的文件(系统相关,一旦删除将无法启动系统)
etc:存放配置相关文件
var:存放一些经常变化的文件如:用户文件
usr:程序的默认安装文件(类似Windows的program)
3.磁盘分区:
linux安装的时候,分区是关键
boot分区 100m
swap 交换分区 一般是物理内存的两倍,一般不要大于256m
/ 根分区 尽可能大
每个磁盘有两个分区,主分区和扩展分区
主分区放的是操作系统相关文件
扩展分区需要二次分区(逻辑分区)才能使用
扩展分区 + 逻辑分区 <= 4
查看分区命令:
fdisk -l
df ??? 查看目录属于哪个分区
4.vi编辑器的使用
1.vi hello.java
2.进入i[插入模式]
3.esc建进去命令模式
4.[wq]:保存且退出,[q!]:退出不保存
5.用户管理(具有root权限的用户)
添加用户
useradd xiaoming(用户名)
passwd xiaoming(用户名)
删除用户
userdel 用户名
userdel -r 用户名(删除用户以及用户文件夹)
用户组
添加组
groupadd police
查看所有组信息
vi /etc/group
cat /etc/group
添加用户时,指定用户所在组
useradd -g police zhangsan
查看所有用户信息
cat /etc/passwd
如何修改权限的访问权限?
chmod 改变文件或者目录的权限
chmod 777 文件名
r 4 可读
w 2 可写
x 1 可执行
修改某个用户的用户组
usermod -g 组名 用户名
6.命令运行级别
0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务(常用设置)
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,要修改默认运行级别可修改文件/etc/inittab的id;5;initdefault;这一行
如果修改错级别后(想改了6,则会一直处于重启状态
解决方法:
在进入grub引导界面的时候,输入e
输入e,弹出三行,选择第二行修改(root=LABEL/1),
在最后输入1[当用户级别](因为单用户不会去读我们配置的inittab文件)
输入b重启
7.文件系统
touch建立空文件
mkdir 建立目录
cp 复制文件
cp -r 复制文件夹
cp -rf 直接覆盖,不询问
mv 移动文件和改文件名
rm 删除文件
rm -rf删除所有内容(包括文件和内容)
rmdir 删除空目录
ls -a 显示隐藏文件
ls -l 显示长列表格式
建立符号链接:
ln -s 源 目标
ln -s /etc/initab totab
(totab指向实际文件/etc/initab)
作用:类库共享
find的使用:
作用:在特定的目录下搜索并显示指定名称的文件和目录
场景:查看一段时间内系统被查看了什么内容。
搜索一定时间内被存取、变更的文件或者目录:
a.find /home -amin -10 10分装内存取文件
b find /home -atime -10 十小时
c.find /home -cmin -10 十分钟更改的文件或目录
d.find /home -ctime +10 十小时
e.find /home -size +10k 大于10k的文件
more 分页打开显示文本的内容
less 显示内容带分页
grep 文件名 ---------- 查找某个文件出现的关键词
在linux和unix中|就是管道命令?
把上一个命令的结果交给|后面的命令处理
man 相当于dos下的help命令,查找某个命令的具体用法
重定向命令:
ls /etc > test.txt 把某个东西覆盖的写到test.txt文件中
ls /etc > test.txt 追加写到某个文件
8.软件安装
jdk的安装
小知识:
要把window上的文件放到linux,先把文件制作成iso格式的镜像文件,然后挂载,也可以通过配饰symba服务器
1.把mypackage.iso挂载到linux上
在vm上做好配置
mount /mnt/cdrod
2.把文件拷贝到home文件下
cp 文件 /home
3.cd /home
4.安装
./???.bin
5./etc/profile [环境配置文件]
安装tar.gz结尾的软件
解压缩:tar -zxvf ??? tar.gz
如果安装的是图形化界面的软件,先要进入linux图形化操作
进入图形化界面命令:startx
9.shell
定义:命令翻译机,当linux管理员的命令输入窗口时,系统并不知道我们输入的是什么,这时shell就起了关键作用,它充当了用户与linux内核之间的翻译,把用户输入的指令翻译成Linux内核能识别的指令
种类:
Bource /bin/bash(默认)
C /bin/csh
Kom /bin/ksh
系统命令:
env [该命令可以查看操作系统的环境变量]
查看某个字母下的所有命令:
双击tab键
查看最近执行的命令:(万能命令)
history [num] 显示最近执行的num个命令
!5:执行历史编号为5的命令
10.tcp/ip
1969年美国国防部用于军事目的阿帕网诞生,期间民间各机构也产生自己内部的网络,于是网络间的通讯将成为进一步的需求。
1972年,开会制定通用的通讯协议
1974年,tcp/ip协议诞生并向外界开源
到如今形成庞大的英特网(internet)
命令:
1.查看ip:ifconfig
2.测试两个ip是否相通:ping
3.追踪路由:tracert
网络环境的配置:
第一种方法:
1.用root用户登入系统
2.运行setup命令进入到text mode setup utiliy 对网络进行配置
3.重启网络:/etc/rc.d/init.d/network restart
第二种方法:(重启失效)
1.ifconfig eth0 196.168.1.2
2.ifconfig th9 network 子网
第三种方法:
1.修改.etc.sysconfig/network-scripts/if/cfg-eth0的相关属性(第一二种方法其实根本上也是改变了这个文件)
2.重启网络:/etc/rc.d/init.d/network restart
windows怎么与linux通讯?
1.设置虚拟网卡vmnet8
2.把网络设置成与vmnet8同网段
11.RPM
用于互联网中下载包及安装工具,生成.rpm文件
常用命令:
rpm -qa 查询所有安装的rpm软件
安装rpm包
rpm -i rpm全路径
rpm -ivh rpm包全路径(带进度)
删除
rpm -e rpm全路径
升级
rpm -u rpm全路径
samba安装步骤:
a.查看是否已经安装
rpm -q samba
b.有则卸载
rpm -e samba
去过存在相关依赖,则无法删除
强制删除:rpm --nodeps samba
c.把自己的安装文件挂载到linux上
mount /mnt/cdrom
d.把samba开头的文件,拷贝到/home下
cp /mnt/cdrom/sam* /home
e.开始安装
rpm -ivh ???
f.创建一个用户zhangming
useradd zhangming
g.设置密码
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
smbpasswd zhangming
h.启动samba服务
services samba start
services samba restart
services samba stop
12.任务调度crontab
作用:可以定时做一些操作
概念:系统在某个时间执行某个命令
典型例子:数据库备份
分类:系统工作,个别用户工作
使用步骤:
a.设置任务:crontab -e
b.每隔一段时间去执行 date > /home/mydata1
c.每天凌晨1:00去执行 date >> /home/mydata1
0 1 * * * /分钟/小时/日/月/星期
d.每分钟执行
* * * * * date >> /home/mydata1
如何调用多个任务?
1.在crontab中直接写
2.把所有的任务,写入到一个可执行文件(shell编程),文件以.sh结尾
命令:crontab -e -------------- * * * * * /home/???.sh
(推荐使用)
终止任务调度:
删除所有任务:crontab -r
列出当前有哪些任务调度:crontab -l
13.进程
概念:正在执行的程序
线程:a.轻量级的进程。b.没有进程一样,有独立的地址空间。c.不能独立存在,由进程创建的。d.相对来说耗费的资源小
存在方式:
a.前台进程:用户屏幕上可以操作的
b.后台进程:用户无法在界面上看到的,但实际在后台操作的。例如:系统开启的各种服务
命令
查看:
ps -a
ps -u
ps -aux(显示更全)
终止进程:
kill pid
强制终止:
kill -9 pid
删除进程及以下所有子进程:
killall pid
动态监控进程:
命令:top(此命令可以显示系统的基本信息,极为重要)
top -d 10 定时更新
top命令进入后出现:
up 3 min 系统启动了对久
load average: 0.02 0.02 0.09 当前系统负载数,三个的平均值>0.7 就该注意了
1 user 当前登入系统的用户数
37 progess 进程数
zombie: 0 僵尸进程(无用占用空间的程序)
cpu status:idle 空闲cpu
swap:虚拟内存(速度介于磁盘和内存之间)
按u h回车 输入用户名 查看指定用户的进程
k pid 结束指定进程
时间命令:
date: 显示系统时间
cal 2017 查看月历
监控网络状态
显示当前网络信息:netstat -an
显示当前的网络信息带进程号: netstat -anp
使用场景:非法用户登录时,找到进程号并删除
显示包经历的历程:traceroute
使用场景:当一个公司上不了网时
显示路由表:route
14.mysql安装
a.groupadd mysql
b.useradd -g mysql zm
c.scripts/mysql_install_db --user=mysql(前提:先进入mysql/bin目录,作用:初始化数据库)
chown root . (把当前文件及文件夹下的所有文件的所有者改为root用户)
chown -R mysql data (修改文件的所有者)
chgrp -R mysql . (修改用户组)
启动mysql
bin/mysqld_safe --user=mysql & [&表示以后台的方式进入]
如何在任何目录下都能进入mysql
1./root/.bash_profile文件存储着用户变量
缺点:只能某个用户使用
2.修改系统变量
mysql使用注意:mysql驱动要放在jdk下,主目录/jre/lib/ext/,这样才能连接上数据库
mysql的备份和恢复(重点)
备份:
mysqldump -u root -p密码 数据库名 > data.bak
恢复:
mysql -u root -p密码 数据库名 < data.bak
15.ssh(secure shell)(重点)
概念:ssh是一款集远程操作linux和进行文件上传,下载的软件
利用ssh登入到Linux前先确保,linux上sshd服务启动
配置.bashrc文件,自定义配置
linux启动过程:
a.BIOS自检(判断硬件从哪里启动)
b.启动GRUB/LILO (引导界面)
c.运行linux内核并检测硬件
d.运行系统的第一个进程 init
e.init进程读取引导配置文件/etc/initab中信息进行初始化
f./etc/rc.d/rc. sysinit系统初始化脚本
g./etc/rc.d/rcX.d/[KS]* - 根据运行级别X配置服务
终止以K开头的服务
启动以S开头的服务
h./etc/rc.d/rc.local执行本地特殊配置
i.其它特殊服务
16.压缩与加压
命令:
zip aa.zip 文件名
zip aa.zip 文件名1 文件名2
zip -r aa.zip 文件夹路径
解压缩:
unzip aa.zip
gunzip file.gz
gzip -d file.gz