...

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命令用于排序

参考:https://www.runoob.com/linux/linux-comm-sort.html

  • -k:指定排序的列
  • -t:指定列分隔符
  • -u:去重,忽略像童话
  • -r:降序排列
  • -n:数字字符按数字排序
  • -f:将小写字母视为大写字母
  • -h:人性化输出,使用易读性数字,如2K、1G等形式输出
  • -i:忽略空白和换行符
  • -M:将钱3个字母按月份缩写排序
  • -d: 只处理英文字母、数字及空格,忽略其他字母

去重uniq命令

uniq 命令用于检查及删除文本文件中重复出现的行列

参考:https://www.runoob.com/linux/linux-comm-uniq.html

  • -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命令用于计算字数

参考:https://www.runoob.com/linux/linux-comm-wc.html

  • -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命令

参考:https://www.runoob.com/linux/linux-comm-awk.html

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命令

显示本机网络链接、运行端口、路由表等信息

更多参考:https://www.runoob.com/linux/linux-command-manual.html

posted @ 2019-09-16 12:43  韩志超  阅读(473)  评论(0编辑  收藏  举报