Linux基础命令必知必会
Linux常用命令
目录相关命令
切换目录cd命令
cd ..
: 返回上级目录cd -
: 返回上次目录
创建目录mkdir命令
- mkdir:创建目录
复制cp命令
- cp: 复制文件
cp -r
复制文件及目录
删除rm命令
- rm: 删除文件
rm -r
删除文件及目录rm -rf
强制删除文件及目录
移动或重命名mv命令
- mv: 移动文件或目录 在同一目录下移动相当于重命名
目录列表ls命令
查看相关参数
- -a: 显示隐藏文件
- -l: 显示详细信息
- -/d/l/b..: 文件类型, - 普通文件, d 目录, l 链接
- rwxrwxrwx: 用户/所在组/其他用户权限
- 数字: 文件个数
- root: root: 所属用户/所属组
- 数字: 文件大小
- 时间: 最后修改时间
- -h: 文件大小以KB, GB显示
- -R: 列出子目录的所有文件
排序相关参数
- -t: 按修改时间排序
- -at: 按创建时间排序
- -ut: 按访问时间排序
- -S: 按大小排序
- -X: 按扩展名排序
- -r: 反向排序
文件及文件查看相关命令
touch命令
新建空白文件,也可以使用重定向生成文件,例如 echo hello > a.txt
cat命令
查看文件内容(输出到屏幕)
more命令
查看大文件内容,支持向下翻页
less命令
查看大文件内容,支持向上及向下翻页
head命令
查看文件头部,head -10
,查看文件前10行
tail命令
查看文件尾部内容, tail -10
, 查看文件后末尾10行,tail -f
实时显示日志最新内容
压缩相关命令
tar命令
tar压缩及解压
- 压缩
tar -czf all.tar.gz *.jpg
- 解压
tar -xzf all.tar.gz
zip/unzip命令
zip压缩及解压
- 压缩
zip all.zip *.jpg
- 解压
unzip all.zip
文件查找
查找文件find命令
查找文件,在硬盘指定目录查找文件
查找方式相关参数
-name
/-iname
: 按文件名查找/忽略大小写-regex
/iregex:
按正则表达式查找/无论大小写-type
: 按类型查找, f: 普通文件, d: 目录, l: 链接-size
: 按大小10k/+10k/-10k 等于/大于/小于10k-mtime
/ctime
/atime
: 按修改/变化(文件权限等)时间/访问时间-mmin
/-cmin
/-amin
: 按分钟, n/-n/+n-perm 755
: 按权限
执行操作相关参数
-ok
-exec
locate
定位(资料库中对应)文件路径,在 /var/lib/slocate 资料库中查找文件
whereis
在特定目录中查找可执行文件等
which
which命令会在环境变量$PATH设置的目录里查找符合条件的文件。
排序去重统计
排序sort命令
sort命令用于排序
-k
:指定排序的列-t
:指定列分隔符-u
:去重,忽略像童话-r
:降序排列-n
:数字字符按数字排序-f
:将小写字母视为大写字母-h
:人性化输出,使用易读性数字,如2K、1G等形式输出-i
:忽略空白和换行符-M
:将钱3个字母按月份缩写排序-d
: 只处理英文字母、数字及空格,忽略其他字母
去重uniq命令
uniq 命令用于检查及删除文本文件中重复出现的行列
-i
:忽略大小写-c
/--count
:统计重复次数-d
:仅显示有重复的行
示例:对demo.txt按单词重复次数排序
hello
hi
hello
world
world
my
word
hi
hello
参考答案
sort demo.txt | uniq -c | sort -rn
示例:统计80端口TCP各种链接状态的个数并按从大到小排列
参考答案
netstat -nat|grep 8080 |awk '{print $6}'|sort|uniq -c|sort -rn
统计wc命令
wc命令用于计算字数
- -c: 按字符统计
- -w: 按单词统计
- -l: 按行统计
示例:统计 日志2019-08-15.log中Exception出现等行数
参考答案
tail -1000 2019-08-15.log | grep Exception | wc -l
远程服务连接及拷贝命令
远程连接ssh命令
连接远程服务器,如 ssh root@192.168.1.106
,输入密码后进入远程服务器命令行,输出exit退出。
远程复制scp命令
和远程服务器相互拷贝文件
- 上传文件到服务器root目录 scp '本地文件.txt' root@192.168.1.106:/root/'
- 下载scp root@192.168.1.106:/root/远程文件.txt /Users/superhin/Downloads/
Linux命令三剑客
grep命令
匹配相关参数
-i
: 忽略大小写-r
: 递归匹配, 包含子目录-v:
排除关键字-e
: 指定多个匹配-E
: 使用正则,例如grep -E "Exception:\s" rpa/logs
-F:
不使用正则
上下文相关参数
-A 10
:显示匹配行及后10行-B 10
:显示匹配行及前10行-C 10
:显示匹配行及前后各10行
多文件搜索显示格式相关参数
- 默认: 显示匹配行内容
- -l: 显示匹配到的文件名
- -c: 显示文件名和行号
- -h: 不显示文件名
示例
find . -type f -perm 644 -exec ls -l {} \;
find . -name *.txt -exec cat {} \; > all.txt
find /var/log -type f -mtime +7 -ok rm {} \;
配合grep查找内容
find / -type f -name “*.log” | xargs grep "Exception"
sed命令
动作参数
- p: 查看/搜索
- sed -n '5,7p' main.py 查看
- sed -n '/main/p' main.py 搜索
- i或a: 插入/追加
- sed '^a@author::hanzhichao' main.py 在第一行下新增
- sed '1i@author::hanzhichao' main.py 插入
- d: 删除
- sed '2,5d' *.php
- sed '/^$/d' *.php 删除空行
- c或s: 替换
- sed '2,5c No 2-5 number' 替换
- sed 's/8182/8080/g' *.php
选项参数
- -i: 直接将修改写入原文件
- sed –i ‘/s/5000/5001/g’ main.py
- -e:多点编辑
- cat /etc/passwd | sed -e '3,$d' -e 's/bash/blueshell/'
- -n: 安静模式
awk命令
VIM基础使用
三种模式
- 命令模式
- 输入模式
- 底线命令模式
命令模式常用操作
移动光标
- ↑/←/→/↓或h/j/k/l:上左右下移动,n+h/j/k/l
- n+空格/n+回车
- w、W
- 0/$ 行头尾巴
- H/M/L/G
- gg/ng/G
翻页
- ctrl+/f/b/d/u
编辑
- 删:dd/ndd/d1G/dG/d$/d0
- 复制: yy/nyy/y1G/yG/y0/y$
- 粘贴: p/P
- 合并: J
- 撤销/重做: u/ctrl+r
- 插入: i/I a/A o/O
- 替换 r/R
底线命令模式常用操作
查找
- 😕 :?:向下/向上查找
- n、N: 后一个/前一个
替换
- :%s/word1/word2/g
Linux常用监控命令
获取基本信息
- 查看系统版本:
- uname -a
- cat /proc/version
- 系统运行时间
- uptime
- CPU信息
- lscpu
- cat /pro/cpuinfo
- 内存信息
- cat /proc/meminfo
- 磁盘占用信息
- df
- 网卡配置信息
- ifconfig
综合监控命令top、vmstat、dstat、sar
top命令
参数
- -b 批次运行
- -d 刷新时间
- -n 运行次数
- -u/U 监控指定用户
- -p 监控指定进程
- -H 显示线程
- -i 显示空闲的进程
任务区按键
- C/M/T: 按CPU/内存/运行时间排序,再按一次反向排序
- 1: 显示所有CPU
- S: 更改刷新间隔
统计信息:
- 第1行: 当前时间 运行时间 登录用户数 CPU负载 (1分 5分 15分)
- 第2行: 进程信息
- total: 总进程数
- running: 运行中进程数
- sleeping: 休眠进程数
- stopped: 停止的进程数
- zombie: 僵尸进程数
- 第3行: CPU信息
- us: 用户进程占用CPU百分比
- sy: 内核(系统)空间占用CPU百分比
- ni: 用户进程空间内改变过优先级的进程占用CPU百分比
- id: 空闲CPU百分比
- wa :等待输入输出的CPU时间百分比
- hi :硬件CPU中断占用百分比
- si :软中断占用百分比
- st:虚拟机(虚拟化技术)占用百分比
- 第4行: 内存信息
- total:物理内存总量
- used: 使用内存总量
- free: 空闲内存总理安
- buffers: 用作内核缓存的内存量
- 第5行: Swap内存交换区(虚拟内存)
- total: 交换区总量
- used: 使用量
- free: 空闲量
- cached: 缓冲的交换区总量
展示列
- PID: 进程id
- USER: 进程所属用户
- PR:优先级
- NI: Nice值,负值表示高优先级,正值表示低优先级
- VIRT: 进程申请内存
- RES: 进程实际使用内存
- SHR:共享内存大小,单位KB
- S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
- %CPU:自上一次top刷新该进程占用CPU的时间百分比
- %MEM:进消耗内存百分比
- TIME+:自进程开始以来,消耗CPU时间,单位1/100秒
- COMMAND: 执行的命令名
vmstat命令
监控操作系统的进程状态、内存、虚拟内存、磁盘IO、上下文、CPU的信息
dstat命令
监控系统cpu,网络,磁盘,页面交换, 需额外
sar命令
全名的获取到cpu 、运行、磁盘IO、虚拟内存、内存、网络等信息
CPU监控
uptime命令
统计系统当前的运行状态
tload命令
查看当前CPU的load,每隔2到3s更新一次
cat /proc/loadavg
查看平均负载
mpstat
输出每个CPU的运行状况,为多处理器系统中的CPU利用率提供统计信息
内存监控:
查看内存使用free命令
监控系统内存
-b/k/m/g/--tera
设定单位为b/Kb/M/G/T-l
显示 low/high-t
显示total-s
更新时间间隔-c
更新次数
进程监控
进程查看ps命令
参数
-a
: 显示所有程序-u
: 以用户格式显示-x
: 显示所有包含其他用户的程序-f
: 显示程序集的相互关系
常用参数组合:
ps –ef
ps aux
展示列
- UID 用户ID(User ID)
- PID 进程ID(Process ID)
- %CPU 进程的CPU占用率
- %MEM 进程的内存占用率
- VSZ 进程所使用的虚存的大小(Virtual Size)
- RSS 进程使用的实际内存的大小,Kbytes字节。
- TTY 与进程关联的终端
- STAT 进程的状态
- R:运行, S: 睡眠, I: 空闲, Z: 僵死, T: 终止, P:等待交换页, X: 死掉
- START 进程启动时间和日期
- TIME 进程使用的总CPU时间
- COMMAND 正在执行的命令行命令
IO监控
iotop命令
基础的I/O监控命令
iostat命令
IO读写监控,需安装
网络监控
ifstat命令
统计网络接口活动状态
netstat命令
显示本机网络链接、运行端口、路由表等信息