一. 常用命令
文件目录操作
- cd 切换目录
cd dirname
- ls 显示文件/目录属性
常见参数:
-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
示例: ls -l /tmp
- pwd 显示当前路径
pwd
- mkdir 创建目录
mkdir newdir
mkdir -p newdir/newdir #递归创建目录
- touch创建文件
touch filename
- cp
常见参数:
-r: 递归复制
-p: 保持属性复制
- mv移动文件/重命名
mv filename dirname 移动文件
mv oldfilename newfilename 对文件重命名
- rm 删除文件
-i: 交互式
-r: 递归
-f: 强制
- ln创建链接
ln /etc/passwd passwd 创建硬链接
ln -s 创建软链接
- chown 更改文件拥有者
chown [-R] user dir/file
chown [-R] user:group dir/file
- chgrp 更改文件拥有组
chgrp [-R] groupname dir/file
参数:
-R: 递归更改
- chmod 更改文件权限
r=4,w=2,x=1
chmod xxx filename
日常开关机
禁止在线上服务器使用
- shutdown
-r 关机重启
-h 关机不重启
now 立刻关机
- halt 关机
- reboot 重启
- 切换执行等级: init
Linux共有七种执行等级:
--run level 0 :关机
--run level 3 :纯文本模式
--run level 5 :含有图形接口模式
--run level 6 :重新启动
用户管理
- useradd /adduser
用法: useradd [-u|-g|-m|-d|-s] username
参数说明:
-u: 指定用户id
-g: 指定用户组id
-d: 指定用户家目录
-m/M:创建家目录/M 不创建
-s: 指定用户登陆的shell
- userdel
用法: userdel [-r] username - usermod
- passwd
用法: passwd username 或者 echo password | passwd username --stdin
搜索命令
- 寻找【执行挡】:which
which ls 寻找ls命令所在位置
- 寻找特定档案:whereis
# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
- 寻找特定档案:locate
locate passwd
- 寻找特定档案:find
用法: find [PATH] [option] [action]
find支持正则匹配
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件
-type 查找某一类型的文件
实例:
find / -name *.txt
find . -name *.pyc exec rm -rf {}\; 找出 pyc文件并删除
find . -type d 查找目录
二. 文本操作
1. 全文查看 cat/tac
- 语法: cat/tac filename
2. 分页查看 less/more
- 语法: less/more filename
3. 头尾查看 head/tail
- 语法: hean filename
- 常见用法:
head -10 /etc/passwd 查看文件前10行
tail -5 /etc/passwd 查看文件后5行
4. 统计命令wc
- wc语法
wc [-lwm]
选项:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
- 常见用法
# wc /etc/passwd
50 94 2550 /etc/passwd
行数 单词数 字节数
# wc -l /etc/passwd #统计行数很常用
# wc -w /etc/passwd #统计单词出现次数
# wc -m /etc/passwd #统计文件的字节数
5. 切分命令 cut
- cut语法
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
- 常用
$ 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
6. 排序命令 sort
- 语法:
sort [-bcfMnrtk][源文件][-o 输出文件]
参数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t <分隔符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
- 常用
1 按文本排序
sort filename
2 按数字排序
sort -n
3 在输出内容中去除重复行
sort -u
4 反序
sort -r
5 指定列排序
sort -k 列号 -t 分隔符
7. 去重命令——uniq
uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。
- 语法
# uniq [-icu]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行
- 常见用法
1 去重
cat words | sort |uniq
2 排序之后删除了重复行,同时在行首位置输出该行重复的次数:
#sort testfile | uniq -c
3 仅显示存在重复的行,并在行首显示该行重复的次数:
#sort testfile | uniq -dc
8. 查找命令——grep
- 用法 : grep [options]
主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
- 常见使用:
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开头的,并且是两个数字的行
9. 替换/查找/删除命令——sed
10. 强大的文本分析命令——awk
三. 任务操作
1. at
在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程
- 格式:
at[参数][时间]
- 常用:
1 三天后的下午5点钟执行date : at 5pm+3 days date
2 删除定时任务:
通过atq查看任务号
atrm 任务号
3 显示定时任务内容
at -c 任务号
2. crontab 定时任务
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
- 使用
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”
正斜线(/):可以用正斜线指定时间的间隔频率
- 命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数:
-u user : 指定循环定时任务的用户
file : cronttab格式的文件
-e : 编辑某个用户的crontab文件,默认当点用户
-l : 显示内容
-r : 从/var/spool/cron目录中删除某个用户的crontab文件
- 常用
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
3. 任务调度 & / nuhup
将任务打入后台
示例:
python test.py&
nuhup python test.py&
四. 系统管理
1. uptime 系统负载
- 用法: uptime
- 显示:
19:38:23 up 53 min, 2 users, load average: 0.11, 0.13, 0.16
开机时间 运行时长 在线用户 负载: 1min 5min 15min
2. free 显示内存使用
- 用法:
free [-b|k|m|g]
- 显示:
total used free shared buffers cached
Mem: 1885320 494352 1390968 17080 688 207632
-/+ buffers/cache: 286032 1599288
Swap: 0 0 0
第一行: 内存总计 已经使用 空闲 多个进程共享的内存总额 缓冲 缓存
第二行: 除去缓冲缓存
第三行: swap空间使用情况
3. vmstat
vmstat是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视.
格式
vmstat -t 间隔 -d 次数
显示:
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
4. ps
- 用法:
ps [option]
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a连用 可列出较完整的信息
-l :以长列表形式显示
-o :自定义显示
- 常用:
ps -aux/-ef 显示所有进程信息
ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 显示cpu以及内存占用最高的10个进程
5. top
- 格式
top [option]
参数:
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程
- 常用命令
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。
i 忽略闲置和僵死进程。
q 退出程序。
r 重新安排一个进程的优先级别
s 改变两次刷新之间的延迟时间
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
- 常用
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况
6. sar
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等
- 格式:
常用参数:
-A:所有报告的总和。
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
- 常用:
(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空间使用情况
IO相关
- iostat
iostat通过观察设备的活跃时间和他们平均传输率之间的关系来监视系统的输入/输出设备负
格式:
iostat [option]
参数:
-c 输出CPU统计信息。不能与-d参数同时使用。
-d 输出设备和分区的I/O统计信息。不能与-c参数同时使用。
-k/b/m : 以kb/mb等显示
常用:
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat -d -m 2 #查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await) iostat -c 1 10 #查看cpu状态
- iotop
格式:
iotop [option]
参数:
-o:只显示有io操作的进程
-b:批量显示。
-n 5:显示5次,主要用于非交互式模式。
-d 1:间隔1秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。
五. 网络相关
1. ifconfig 查看设置网卡参数
- 命令格式:
ifconfig [网络设备] [参数]
- 常用
ifconfig eth0 up/down 启用或关闭指定网卡
ifconfig eth0 显示网卡信息
2. ping 测试网络连通性
Ping命令通过发送Internet控制消息协议(ICMP)回响请求消息来验证与另一台TCP/IP计算机的IP级连接
- 格式:
ping [参数] [主机名或IP地址]
参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
- 常用
ping www.163.com
ping -R www.163.com
3. netstat 查看网络状态
- 格式
netstat [option]
参数:
-a: 显示所有
-n: 以ip形式显示
-p: 显示进程
-r: 显示路由表
-t: 只显示tcp
-u: 只显示udp
-i: 显示网络接口
- 常用:
1 netstat
2 netstat -nu 只显示udp / -t只显示tcp
3 netstat -r 显示路由表,作用同route
4. ss 查看网络状态
ss与netstat命令作用相同,但比netstat更高效,采用的是tcp协议栈中tcp_diag.
使用方法参考netstat,且基本参数相同
- 常用:
ss -s 我想查看当前服务器的网络连接统计
ss -l 我想查看所有打开的网络端口
ss -a 查看这台服务器上所有的socket连接
5. ip 查看设置网卡参数
6. route 查看路由以及添加路由
- 格式
route [option] [action]
参数:
-n 不解析名字
-v 显示详细的处理信息
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
add:添加一条新路由。
del:删除一条路由。
-net:目标地址是一个网络。
-host:目标地址是一个主机。
- 常用
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 添加网关
7. traceroute 查看路由轨迹
traceroute追踪网络数据包的路由途径
- 格式
traceroute[参数][主机]
参数:
-I 使用ICMP回应取代UDP资料信息。
-d 使用Socket层级的排错功能。
-s 设置本地主机送出数据包的IP地址。
-n 只显示IP
- 常用
traceroute www.163.com
traceroute -n www.163.com 显示IP地址,不查主机名
8. nslookup,dns查看
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
- 格式
nslookup [-qt=type] domain [dns-server]
type为 dns的解析记录
- 常用
nslookup baidu.com
nslookup -qt=mx 163.com 8.8.8.8