本文较长,请耐心阅读。
目录
9.1 ps 查看系统中所有的进程(进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。)
1.帮助命令
1.1 man:获取帮助信息
1.1.1 基本语法:man [命令或配置文件]
1.1.2 功能说明:
1.1.3 案例:
1.2 help :获取shell内置命令的帮助信息
1.2.1 基本语法:help [命令]
1.2.2 案例:
1.3 常用快捷键:
1.3.1 ctrl+c:停止进程
1.3.2 ctrl+l:清屏
1.3.3 ctrl+q:退出
1.3.4 ctrl+alt:用于Linux和Windows之间切换
1.3.5 tab:用于补全(不要妄想自己能记住所有命令,记住头两个字母用TAB补全命令或路径)
1.3.6 上下键:查找执行过的命令
2.文件目录操作命令
2.1 pwd:显示当前目录的绝对路径
2.1.1 基本语法:pwd
2.1.2 案例:
2.2 ls:列出目录内容
2.2.1 基本语法:ls [选项] [文件或是目录]
选项:
a、-a:列出全部文件,包括隐藏文件(.开头的文件)
b、-l:长数据串列出,包含文件的属性及权限等数据
2.2.2 案例:
2.3 mkdir:创建一个新的目录
2.3.1 基本语法:mkdir [-p] 目录名称
选项:
a、-p(可选):创建多层目录
2.3.2 案例:
2.4 rmdir:删除一个空目录
2.4.1 基本语法:rmdir 需要删除的目录名称
2.4.2 案例:
2.5 touch:创建一个空文件
2.5.1 基本语法:touch 文件名称
2.5.2 案例:
2.6 cd:切换目录
2.6.1 基本语法:
a、cd 绝对路径
b、cd 相对路径
c、cd ~或cd (回到根目录)
d、cd - (回到上一次目录)
e、cd .. (回到当前目录的上一级目录)
2.7 cp:复制文件或目录
2.7.1 基本语法:
a、cp test.java test1 (将test.java复制到test文件下)
b、cp -r test1 /opt/ (递归复制整个文件夹)
2.7.2 案例:
a、
b、
2.8 rm 移除文件或目录
2.8.1 基本语法:rm -rf test1 (递归删除目录中的所有内容,如果只想删除一个空的文件或目录也可使用上面的rmdir)
2.8.2 案例:
2.9 mv 移动文件、目录或重命名
2.9.1 基本语法:
a、mv test.java test-1.java (重命名)
b、mv test-1.java test1/test1.1 (将test-1.java移动到test1.1目录下,同样可以进行递归移动)
2.9.2 案例:
a、
b、
2.10 cat 查看文件内容
2.10.1 基本语法:cat [选项] 文件 (查看内容并从第一行开始显示,一般根据需求选择-A或-n)
选项:
-A:相当于 -vET 的整合,可列出一些特殊字符(假如文件中有^、&这类的字符都会被列出)而不是空白
-n:列出行号,空白行也会有行号。与 -b 不同
-b:列出行号,非空白行有行号,空白行无行号
-v:列出一些不显示的特殊字符(如:^、&、%)
-E:将结尾断行字节 $ 显示出来
-T:将 TAB 的空格以 ^| 的方式显示出来
2.11 tac 查看文件内容
2.11.1 基本语法:tac [选项] 文件 (查看内容并从最后一行开始显示,与cat相反。选项参考cat)
2.12 more 查看文件内容
2.12.1 基本语法:more 文件 (查看内容,一页一页的显示)
选项:
空格键:向下翻页
回车键:向下翻一行
q:立刻结束more命令,不在显示文件内容
ctrl+f:向下滚动一屏
ctrl+b:返回上一屏
=:输出当前行的行号
:f:输出文件名和当前行号
2.13 less 查看文件内容
2.13.1 基本语法:less 文件 (与more类似,只不过less支持使用pageUp、pageDown来回滚动)
选项:
空格键:向下翻一页
pageUp:向上翻一页
pageDown:向下翻一页
/字符串:向下查找 [字符串] 的功能,n:向下查找,N:向上查找
?字符串:向上查找 [字符串] 的功能,n:向下查找,N:向上查找
q:离开less命令
2.14 head 查看文件内容
2.14.1 基本语法:head -n [任意行数] 文件 (查看文件头[任意行]的内容)
2.15 tail 查看文件内容
2.15.1 基本语法:
a、tail -n [任意行数] 文件 (查看文件最后[任意行]的内容)
b、tail -f 文件 (实时追踪该文档的所有更新,这个命令比较常用于系统日志查看)
2.16 echo
2.16.1 基本语法:
a、echo 内容 [>或>>] 文件 (>:代表将内容覆盖文件内容,>>:代表将内容追加到文件内容末尾)
b、echo 变量 (返回变量的具体路径)
2.16.2 案例:
b、
2.17 重定向命令
2.17.1 基本语法:
a、ls [-l] > 文件 (分为两部分理解,将 ls -l 查询出的内容覆盖文件内容)
b、ls [-l] >> 文件(分为两部分理解,将 ls -l 查询出的内容追加到文件内容末尾)
2.18 ln 软链接
2.18.1 基本语法:ln -s [原文件] [目标文件]
删除链接:rm -rf [软链接名称]
2.18.2 案例: (这个的具体意思是将 /opt/software/test1/test.java 这个文件在根目录下创建了一个软链接,名称为test。就相当于这个文件的一个快捷方式。你可直接在根目录下操作该文件)
2.19 history 查看所敲过的历史命令
2.19.1 基本语法:history
2.19.2 案例:
3.时间日期操作命令
3.1 date 显示当前时间
3.1.1 基本语法:
a、date(显示当前时间)
b、date +%Y(显示当前年份)
c、date +%m(显示当前月份)
d、date +%d(显示当前天)
e、date +%Y%m%d date +%Y/%m/%d(显示当前年月日加格式)
f、date "+%Y-%m-%d %H:%M:%S" (显示当前年月日时分秒)
3.2 date 显示非当前时间
3.2.1 基本语法:
a、date -d '1 days ago'(显示前一天日期)
b、date -d yesterday +%Y%m%d(显示前一天日期)
c、date -d next-day +%Y%m%d(显示明天日期)
d、date -d 'next monday'(显示下周一日期)
3.3 date 设置系统时间
3.3.1 基本语法:date -s "2018-12-04 12:00:00"
3.4 cal 查看日历
3.4.1 基本语法:cal [选项] (不加选项显示当月日历)
选项:
-3:显示上月、当月、下月日历
2018:显示2018年日历
4.用户管理命令
4.1 useradd 添加用户
4.1.1 基本语法:useradd 用户名
4.1.2 案例:
4.2 passwd 设置用户密码
4.2.1 基本语法:passwd
4.2.2 案例:
4.3 id 判断用户是否存在
4.3.1 基本语法:id 用户名
4.3.2 案例:
4.4 su 切换用户
4.4.1 基本语法:su 用户名
4.4.2 案例:
4.5 userdel 删除用户
4.5.1 基本语法:userdel 用户名
4.5.2 案例:
4.6 who 查看登录用户信息
4.6.1 基本语法:who
4.6.2 案例:
4.7 cat /etc/passwd 查看创建了哪些用户
4.7.1 案例:
4.8 usermod 修改用户所属组
4.8.1 基本语法:usermod -g 用户组名 用户名
4.8.2 案例:
4.9 如何设置普通用户具有root权限
新创建的用户是没有权限操作文件的,需要进行下方的配置。
5.用户组管理命令
5.1 groupadd 添加组
5.1.1 基本语法:groupadd 组名
5.1.2 案例:
5.2 groupmod 修改组
5.2.1 基本语法:groupmod -n 新组名 老组名
5.2.2 案例:
5.3 groupdel 删除组
5.3.1 基本语法:groupdel 组名
5.3.2 案例:
5.4 cat /etc/group 查看创建了哪些组
6.文件权限命令
6.1 文件属性
6.2 chmod 改变权限
6.2.1 基本语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录] ;chmod [-R] 777 test.java(一次性赋予所有权限)
选项:
u:用户权限
g:用户所属组的其他用户权限
o:其他用户权限
a:all,全部撤销或赋予一种权限
+:赋予一种权限
-:all,撤销一种权限
=:保留一种权限
6.2.2 案例:、
6.3 chown 改变所属用户
6.3.1 基本语法:chown [-R][最终用户] [文件或目录] (改变文件或目录的所属用户,-R为递归改变)
6.3.2 案例:
6.4 chgrp 改变所属组
6.4.1 基本语法:chgrp [最终用户组] [文件或目录](改变文件或目录的所属组)
6.4.2 案例:
7.磁盘分区
7.1 fdisk 查看分区
7.1.1 基本语法:fdisk -l (查看磁盘分区详情,PS:在root用户下才能使用)
7.2 df 查看硬盘
7.2.1 基本语法:df [选项]
选项:
-h:以较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
-H:以 M=1000K 取代 M=1024K 的进位方式
-a:列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k:以 KBytes 的容量显示各文件系统
-m:以 MBytes 的容量显示各文件系统
-i:不用硬盘容量,而以 inode 的数量来显示
-T:显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
8.搜索查找
8.1 find 查找文件或目录
8.1.1 基本语法:find [搜索范围] [匹配条件]
匹配条件:
-name:按文件名查找
-user:按用户查找
-size:按大小查找 (+n 大于 -n小于 n等于)
8.1.2 案例:
8.2 grep 过滤查找及“|”管道符
8.2.1 基本语法:grep [选项] 查找内容 源文件
管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
选项:
-n:显示匹配行及行号
-c:只输出匹配行的计数
-I:不区分大小写(只适用于单字符,L的小写)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名(i的大写)
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
8.2.1 案例:
9.进程线程
9.1 ps 查看系统中所有的进程(进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。)
9.1.1 基本语法:ps -aux
功能说明:
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源
VSZ:该进程占用虚拟内存的大小,单位KB
RSS:该进程占用实际物理内存的大小,单位KB
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端
STAT:进程状态。常见的状态有:R、运行;S、睡眠;T、停止状态;s、包含子进程;+、位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
9.2 top 查看系统健康状态
9.2.1 基本语法:top [选项]
选项:
-d(秒数):指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令
-i:使top不显示任何闲置或者僵死进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态
操作选项:执行上述命令后,可以按P、M、N对查询出的进程结果进行排序
P:以CPU使用率排序,默认就是此项
M:以内存的使用率排序
N:以PID排序
q:退出top命令
9.2.2 案例:
查询结果各字段解释:
15:40:02 | 当前系统时间 |
up 5:55 | 系统已运行5小时55分钟 |
2 users | 当前登录两个用户 |
load average: 0.15, 0.12, 0.13 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷 |
193 total | 系统中的进程总数 |
1 running | 正在运行的进程数 |
192 sleeping | 睡眠的进程 |
0 stopped | 停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手工检 查僵尸进程 |
0.2%us | 用户模式占用的CPU百分比 |
0.6%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.2%id | 空闲CPU的CPU百分比 |
0.0%wa | 等待输入/输出的进程的占用CPU百分比 |
0.1%hi | 硬中断请求服务占用的CPU百分比 |
0.0%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |
2046320k total | 物理内存的总量,单位KB |
840724k used | 已经使用的物理内存数量 |
1205596k free | 空闲的物理内存数量 |
42440k buffers | 作为缓冲的内存数量 |
2097148k total | 交换分区(虚拟内存)的总大小 |
0k used | 已经使用的交互分区的大小 |
2097148k free | 空闲交换分区的大小 |
416544k cached | 作为缓存的交互分区的大小 |
9.3 pstree 查看进程树
9.3.1 基本语法:pstree [选项]
选项:
-p:显示进程的PID
-u:显示进程的所属用户
9.4 kill 终止进程
9.4.1 基本语法:kill -9 进程号
选项:
-9:强迫进程立即停止
9.5 netstat 显示网络统计信息
9.5.1 基本语法:netstat -anp (用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容)
选项:
-an:按一定顺序排列输出
-p:表示显示哪个进程在调用
-nltp:查看tcp协议进程端口号
9.5.2 案例:
10.压缩和解压
10.1 gzip/gunzip压缩
10.1.1 基本语法:gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
10.1.2 特点:只能压缩文件不能压缩目录,不保留原来的文件
10.2 zip/unzip压缩
10.2.1 基本语法:zip [-r] XXX.zip 要压缩的内容
选项:
-r:压缩目录
unzip 文件.zip [-d 指定目录]
选项:
-d:解压到指定目录
10.2.2 特点:压缩文件和目录的命令,Windows、Linux通用且可以压缩目录且保留源文件
10.3 tar打包
10.3.1 基本语法:tar 选项 XXX.tar.gz 将要打包进去的内容 (打包目录,压缩后的文件格式.tar.gz)、
选项:
-c:产生.tar打包文件
-z:显示详细信息
-v:指定压缩后的文件名
-f:打包同时压缩
-x:解包.tar文件
10.3.2 案例:
tar -zcvf 名称.tar.gz 文件名1.java 文件名2.java:压缩多个文件
tar -zcvf 名称.tar.gz 目录:压缩目录
tar -zxvf 名称.tar.gz:解压到当前目录
tar -zxvf 名称.tar.gz -C 解压目录路径:解压到指定目录
11.后台服务管理
11.1 service 后台服务管理
11.1.1 基本语法:service [服务] status (查看指定服务的状态,如:network)
service [服务] stop(停止指定服务)
service [服务] start(启动指定服务)
service [服务] restart(重启指定服务)
service --status-all (查看系统中所有的后台服务)
11.2 chkconfig 设置后台服务的自启配置
11.2.1 基本语法:chkconfig (查看所有服务器自启配置)
chkconfig [服务] off(关掉指定服务的自动启动,如:iptables )
chkconfig [服务] on(开启指定服务的自动启动)
12.系统定时任务
12.1 crond 服务管理
12.1.1 基本语法:service crond restart (重新启动服务)
12.2 crontab 定时任务设置
12.2.1 基本语法:crontab [选项]
选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
12.2.2 语法规则:* * * * * 执行的任务
含义 | 取值范围 | |
第一个 * | 一小时当中的第几分钟 | 0-59 |
第二个 * | 一天当中的第几小时 | 0-23 |
第三个 * | 一个月当中的第几天 | 1-31 |
第四个 * | 一年当中的第几月 | 1-12 |
第五个 * | 一周当中的星期几 | 0-7(0和7都代表星期日) |
12.2.3 各特殊符号的含义:
特殊符号 | 含义 |
*(星号) | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
,(逗号) | 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
-(减号) | 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
12.2.4 案例:
执行任务案例为:echo "Hello Linux" >> /opt/test.txt (在/opt/test.txt文件里追加Hello Linux字符串)
时间 | 含义 |
45 22 * * * 任务案例 | 在22点45分执行任务案例 |
0 17 * * 1 任务案例 | 每周1 的17点0分执行任务案例 |
0 5 1,15 * * 任务案例 | 每月1号和15号的凌晨5点0分执行任务案例 |
40 4 * * 1-5 任务案例 | 每周一到周五的凌晨4点40分执行任务案例 |
*/10 4 * * * 任务案例 | 每天的凌晨4点,每隔10分钟执行一次任务案例 |
0 0 1,15 * 1 任务案例 | 每月1号和15号,每周1的0点0分都会执行任务案例。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
其它Linux文章,点击这里跳转......