linux命令分类总结

一. 常用命令

文件目录操作

  1. cd 切换目录
    cd dirname
  2. ls 显示文件/目录属性
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    常见参数:
    -l :列出长数据串,包含文件的属性与权限数据等
    -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
    -d :仅列出目录本身,而不是列出目录的文件数据
    -h :将文件容量以较易读的方式(GB,kB等)列出来
    -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
    示例: ls -l /tmp
    ```
    3. pwd 显示当前路径
    `pwd`
    4. mkdir 创建目录

mkdir newdir
mkdir -p newdir/newdir #递归创建目录

1
2
3
5. touch创建文件
`touch filename`
6. cp

常见参数:
-r: 递归复制
-p: 保持属性复制

1
7. mv移动文件/重命名

mv filename dirname 移动文件
mv oldfilename newfilename 对文件重命名

1
8. rm 删除文件

-i: 交互式
-r: 递归
-f: 强制

1
9. ln创建链接

ln /etc/passwd passwd 创建硬链接
ln -s 创建软链接

1
10. chown 更改文件拥有者

chown [-R] user dir/file
chown [-R] user:group dir/file

1
11. chgrp 更改文件拥有组

chgrp [-R] groupname dir/file
参数:
-R: 递归更改

1
12. chmod 更改文件权限

r=4,w=2,x=1
chmod xxx filename

1
2
3
4
5
## 日常开关机
禁止在线上服务器使用
1. shutdown

-r 关机重启
-h 关机不重启
now 立刻关机

1
2
3
2. halt 关机
3. reboot 重启
4. 切换执行等级: init

Linux共有七种执行等级:
–run level 0 :关机
–run level 3 :纯文本模式
–run level 5 :含有图形接口模式
–run level 6 :重新启动

1
2
3
## 用户管理
1. useradd /adduser
用法: useradd [-u|-g|-m|-d|-s] *username*

参数说明:
-u: 指定用户id
-g: 指定用户组id
-d: 指定用户家目录
-m/M:创建家目录/M 不创建
-s: 指定用户登陆的shell

1
2
3
4
5
6
7
8
2. userdel
用法: userdel [-r] *username*
3. usermod
4. passwd
用法: passwd *username* 或者 echo *password* | passwd *username* --stdin
## 搜索命令
1. 寻找【执行挡】:which

which ls 寻找ls命令所在位置

1
2. 寻找特定档案:whereis

whereis ls

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

1
3. 寻找特定档案:locate

locate passwd

1
4. 寻找特定档案:find

用法: find [PATH] [option] [action]
find支持正则匹配
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件
-type 查找某一类型的文件

1
实例:

find / -name .txt
find . -name
.pyc exec rm -rf {}\; 找出 pyc文件并删除
find . -type d 查找目录

1
2
3
4
5
6
7
8
9
10
11
# 二. 文本操作
## 1. 全文查看 cat/tac
1. 语法: cat/tac filename
## 2. 分页查看 less/more
1. 语法: less/more filename
## 3. 头尾查看 head/tail
1. 语法: hean filename
2. 常见用法:

head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行

1
2
3
## 4. 统计命令wc
1. wc语法

wc [-lwm]
选项:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;

1
2
2. 常见用法

wc /etc/passwd

50 94 2550 /etc/passwd
行数 单词数 字节数

wc -l /etc/passwd #统计行数很常用

wc -w /etc/passwd #统计单词出现次数

wc -m /etc/passwd #统计文件的字节数

1
2
3
## 5. 切分命令 cut
1. cut语法

cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
  主要参数
  -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  -c :以字符为单位进行分割。
  -d :自定义分隔符,默认为制表符。
  -f :与-d一起使用,指定显示哪个区域。

1
2
2. 常用

$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5
root:0:0:root
bin:1:1:bin
daemon:2:2:daemon
adm:3:4:adm
lp:4:7:lp
$ cat /etc/passwd|head -n 5|cut -d : -f 1,3-5,7
root:0:0:root:/bin/bash
bin:1:1:bin:/sbin/nologin
daemon:2:2:daemon:/sbin/nologin
adm:3:4:adm:/sbin/nologin
lp:4:7:lp:/sbin/nologin

1
2
3
## 6. 排序命令 sort
1. 语法:

sort [-bcfMnrtk][源文件][-o 输出文件]
  参数:
  -b 忽略每行前面开始出的空格字符。
  -c 检查文件是否已经按照顺序排序。
  -f 排序时,忽略大小写字母。
  -M 将前面3个字母依照月份的缩写进行排序。
  -n 依照数值的大小排序。
  -o 将排序后的结果存入指定的文件。
  -r 以相反的顺序来排序。
  -t <分隔符> 指定排序时所用的栏位分隔字符。
  -k 选择以哪个区间进行排序。

1
2
2. 常用

1 按文本排序
sort filename
2 按数字排序
sort -n
3 在输出内容中去除重复行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列号 -t 分隔符

1
2
3
4
## 7. 去重命令——uniq
**uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。**
1. 语法

uniq [-icu]

选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行

1
2. 常见用法

1 去重
cat words | sort |uniq
2 排序之后删除了重复行,同时在行首位置输出该行重复的次数:

#sort testfile | uniq -c
3 仅显示存在重复的行,并在行首显示该行重复的次数:

#sort testfile | uniq -dc

1
2
## 8. 查找命令——grep
1. 用法 : grep [options]

  主要参数
  [options]主要参数:
  -c:只输出匹配行的计数。
  -I:不区分大 小写(只适用于单字符)。
  -h:查询多文件时不显示文件名。
  -l:查询多文件时只输出包含匹配字符的文件名。
  -n:显示匹配行及 行号。
  -s:不显示不存在或无匹配文本的错误信息。
  -v:显示不包含匹配文本的所有行。
  pattern正则表达式主要参数:
  \: 忽略正则表达式中特殊字符的原有含义。
  ^:匹配正则表达式的开始行。
  $: 匹配正则表达式的结束行。
  \<:从匹配正则表达 式的行开始。
  >:到匹配正则表达式的行结束。
  [ ]:单个字符,如[A]即A符合要求 。
  [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
  。:所有的单个字符。
  * :有字符,长度可以为0。

1
2. 常见使用:

1 grep root /etc/passwd 匹配文件中有root的行
2 grep ^root /etc/passwd 匹配文件中以root开头的行
3 grep -v root /etc/passwd 匹配文件中无root的行
4 grep -v ^$ test 过滤文件中的空行
5 grep ‘[239].’ data #输出所有含有以2,3或9开头的,并且是两个数字的行

1
2
3
4
5
6
7
## 9. 替换/查找/删除命令——sed
## 10. 强大的文本分析命令——awk
# 三. 任务操作
## 1. at
在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程
1. 格式:

at[参数][时间]

1
2. 常用:

1 三天后的下午5点钟执行date : at 5pm+3 days date
2 删除定时任务:
通过atq查看任务号
atrm 任务号
3 显示定时任务内容
at -c 任务号

1
2
3
4
## 2. crontab 定时任务
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
1. 使用

vim /etc/crontab
文件格式:
minute hour day month week command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,脚本文件。
特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率

1
2
2. 命令格式:

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数:
-u user : 指定循环定时任务的用户
file : cronttab格式的文件
-e : 编辑某个用户的crontab文件,默认当点用户
-l : 显示内容
-r : 从/var/spool/cron目录中删除某个用户的crontab文件

1
3. 常用

1 每1分钟执行一次command
命令:

* * * * * command

2 每小时的第3和第15分钟执行
命令:
3,15 command
3 在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 command
4 每隔两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11
/2 command
5 每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 1 command

1
2
3
4
## 3. 任务调度 & / nuhup
将任务打入后台
示例:

python test.py&
nuhup python test.py&

1
2
3
4
5
6
7
8
# 四. 系统管理
## 1. uptime 系统负载
1. 用法: uptime
2. 显示:

19:38:23 up 53 min, 2 users, load average: 0.11, 0.13, 0.16
开机时间 运行时长 在线用户 负载: 1min 5min 15min

1
2
3
## 2. free 显示内存使用
1. 用法:

free [-b|k|m|g]

1
2. 显示:

total       used       free       shared       buffers   cached

Mem: 1885320 494352 1390968 17080 688 207632
-/+ buffers/cache: 286032 1599288
Swap: 0 0 0
第一行: 内存总计 已经使用 空闲 多个进程共享的内存总额 缓冲 缓存
第二行: 除去缓冲缓存
第三行: swap空间使用情况

1
2
3
4
5
6
7
## 3. vmstat
vmstat是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视.
1. 格式
` vmstat -t 间隔 -d 次数`
2. 显示:

procs ———–memory———- —swap– —–io—- -system– ——cpu—–
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1183708 2340 1374156 0 0 214 21 220 899 4 1 93 1 0

1
2
3
## 4. ps
1. 用法:

ps [option]
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a连用 可列出较完整的信息
-l :以长列表形式显示
-o :自定义显示

1
2. 常用:

ps -aux/-ef 显示所有进程信息
ps -ax -o pid,%cpu,%mem –sort=-%cpu,-%mem | head -10 显示cpu以及内存占用最高的10个进程

1
2
3
## 5. top
1. 格式

top [option]
参数:
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程

1
2. 常用命令

h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。
i 忽略闲置和僵死进程。
q 退出程序。
r 重新安排一个进程的优先级别
s 改变两次刷新之间的延迟时间
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。

1
3. 常用

top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况

1
2
3
4
## 6. sar
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等
1. 格式:

常用参数:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。

1
2. 常用:

(1) sar -b 5 5 // IO传送速率
(2) sar -B 5 5 // 页交换速率
(3) sar -c 5 5 // 进程创建的速率
(4) sar -d 5 5 // 块设备的活跃信息
(5) sar -n DEV 5 5 // 网路设备的状态信息
(6) sar -n SOCK 5 5 // SOCK的使用情况
(7) sar -n ALL 5 5 // 所有的网络状态信息
(8) sar -r 5 5 // 内存和swap空间使用情况

1
2
3
4
5
6
7
8
9
10
11
## IO相关
1. iostat
2. iotop
# 五. 网络相关
## 1. ifconfig 查看设置网卡参数
1. 命令格式:
`ifconfig [网络设备] [参数] `
2. 常用

ifconfig eth0 up/down 启用或关闭指定网卡
ifconfig eth0 显示网卡信息

1
2
3
## 2. ping 测试网络连通性
Ping命令通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接
1. 格式:

ping [参数] [主机名或IP地址]
参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。

1
2
2. 常用

ping www.163.com
ping -R www.163.com

1
2
3
4
## 3. netstat 查看网络状态
1. 格式

netstat [option]
参数:
-a: 显示所有
-n: 以ip形式显示
-p: 显示进程
-r: 显示路由表
-t: 只显示tcp
-u: 只显示udp
-i: 显示网络接口

1
2. 常用:

1 netstat
2 netstat -nu 只显示udp / -t只显示tcp
3 netstat -r 显示路由表,作用同route

1
2
3
4
5
## 4. ss 查看网络状态
ss与netstat命令作用相同,但比netstat更高效,采用的是tcp协议栈中tcp_diag.
使用方法参考netstat,且基本参数相同
1. 常用:

ss -s 我想查看当前服务器的网络连接统计
ss -l 我想查看所有打开的网络端口
ss -a 查看这台服务器上所有的socket连接

1
2
3
4
5
## 5. ip 查看设置网卡参数
## 6. route 查看路由以及添加路由
1. 格式

route [option] [action]
参数:
-n 不解析名字
-v 显示详细的处理信息
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
add:添加一条新路由。
del:删除一条路由。
-net:目标地址是一个网络。
-host:目标地址是一个主机。

1
2. 常用

route -n 显示路由表
route add/del default gw 192.168.120.1 删除和添加设置默认网关
route add -net 172.25.0.0 netmask 255.255.0.0 dev eth0 添加网关

1
2
3
4
## 7. traceroute 查看路由轨迹
traceroute追踪网络数据包的路由途径
1. 格式

traceroute[参数][主机]
参数:
-I 使用ICMP回应取代UDP资料信息。
-d 使用Socket层级的排错功能。
-s 设置本地主机送出数据包的IP地址。
-n 只显示IP

1
2. 常用

traceroute www.163.com
traceroute -n www.163.com 显示IP地址,不查主机名

1
2
3
4
## 8. nslookup,dns查看
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
1. 格式

nslookup [-qt=type] domain [dns-server]
type为 dns的解析记录

1
2. 常用

nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8
```