Linux命令通用格式
command [-options] [parameter]
- 命令本体,即命令本身
- 可选选项,控制命令的行为细节
- 可选参数,控制命令的指向目标
HOME目录
每一个用户在Linux系统的专属目录,默认在:/home/用户名
ls命令
作用
指定要查看的文件夹(目录)的内容,如果不指定参数,默认查看当前工作目录内容
选项
- -a 展示出隐藏内容(以.开头的文件或文件夹默认被隐藏)
- -l 以列表的形式展示内容,展示更多细节
- -h 需要和-l搭配使用,以更加人性化(可读)的方式显示文件的大小
命令的组合使用
ls -lah == ls -a -l -h
cd命令
- 释义: Change Directory
- 作用:切换当前工作目录
- 语法:
cd [Linux路径]
- 没有选项,只有参数,表目标路径
- 使用参数,切换到指定路径
- 不使用参数,切换工作目录到当前用户HOME
pwd命令
- 释义:Print Work Directory
- 作用:输出当前所在工作目录
- 语法:
pwd
- 无选项,无参数,直接使用
相对路径和绝对路径
- 绝对路径:以根目录做起点,路径以 / 开头
- 相对路径:以当前目录做起点,路径不以 / 开头
特殊路径符
- . 表当前目录
- .. 表上一级目录
- ~ 表用户的HOME目录
mkdir命令
- 释义:Make directories
- 作用:创建新的目录(文件夹)
- 语法:
mkdir [-p] Linux路径
- 参数必填,表示要创建目录的路径,相对、绝对、特殊路径符均可使用
- -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级目录
文件操作命令
touch命令
- 释义:change file timestamps (摸一下,最近动过了)
- 作用:创建一个新的文件
- 语法:
touch Linux路径
- 参数必填,表示要创建的文件的路径
cat命令
- 释义:concatenate
- 作用:查看文件内容
- 语法:
cat Linux路径
- 参数必填,表示要查看的文件的路径
more命令
- 释义:
- 作用:查看文件内容,可翻页查看
- 语法:
more Linux路径
- 参数必填,表示要查看文件的路径
- 使用 空格 进行切换到下一页,使用 B 切换到上一页,使用 q 退出查看
cp命令
- 释义:copy
- 作用:复制文件或文件夹
- 语法:
cp [-r] 参数1 参数2
- -r 选项可选,复制文件夹时使用,表示递归
- 参数1:Linux路径,表示被复制的文件或文件夹
- 参数2:Linux路径,表示要复制去的地方
mv命令
- 释义:move
- 作用:移动文件或文件夹
- 语法:
mv 参数1 参数2
- 参数1:Linux路径,表示移动的文件或文件夹
- 参数2:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名
rm命令
- 释义:remove
- 作用:删除文件或文件夹
- 语法:
rm [-r -f] 参数1 参数2 ... 参数n
- -r 选项可选,删除文件夹时使用,表递归
- -f 选项可选,强制删除,表force
- 普通用户删除内容不会弹出提示,只有root用户删除内容会有提示
- 普通用户用不到-f选项
- 参数1 参数2 ... 参数n表示要删除的文件夹或文件路径,用空格隔开
- rm命令支持通配符,用来做模糊匹配,符号 * 表通配符,可匹配任意内容(包含空)
- test*,表匹配任何以test开头的内容
- *test,表匹配任何以test结尾的内容
- *test*,表匹配任何包含test的内容
查找命令
which命令
- 释义:
- 作用:查找命令的程序文件(可执行文件)
- 语法:
which 要查找的命令
- 无需选项,只需要参数表示哪个命令
find命令
- 释义:
- 作用:查找指定的文件
- 语法:
- 按文件名查找:
find 起始路径 -name "被查找的文件名"
- 被查找的文件名支持通配符
- 按文件大小查找:
find 起始路径 -size +|-[kMG]
-
- 表大于,- 表小于
- n 表示大小数字
- kMG 表示单位,k表kb,M表MB,G表GB
-
- 按文件名查找:
whereis命令
- 释义:
- 作用:查找二进制文件、源代码文件和man手册页
- 语法:
whereis [options] [-B <目录>...][-M <目录>...][-S <目录>...] 文件名
- -b 定位可执行文件(二进制文件)
- -s 定位源代码文件
- -m 定位帮助文件
- -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
- -B 指定搜索可执行文件的路径
- -M 指定搜索帮助文件的路径
- -S 指定搜索源代码文件的路径
locate命令
- 释义:
- 作用:
- 语法:
grep命令
- 释义:Global Regular Expression Print 全局正则表达式
- 作用:从文件中通过关键字过滤文件行
- 语法:
grep [-n] 关键字 文件路径
- -n 选项可选,表示在结果中显示匹配的行的行号
- 关键字 表要过滤的关键字,如带空格或其它特殊符号,使用 " " 将关键字包裹起来
- 文件路径 表示要过滤文件的文件路径,可作为内容的输入端口
wc命令
- 释义:Word Count
- 作用:统计文件的行数、单词数量、字节数、字符数等
- 语法:
wc [-c -m -l -w] 文件路径
- -c 统计bytes数量
- -m 统计字符数量
- -l 统计行数
- -w 统计单词数量
- 文件路径 被统计的文件,可作为内容输入端口
| 管道符
- 释义:
- 作用:将左边命令的结果作为右边命令的输入
- 语法:
echo命令
- 释义:
- 作用:在命令行输出指定内容
- 语法:
echo 输出的内容
- 无需选项,只有一个参数表示要输出的内容,复杂内容用 " " 包围
` 反引号符
- 释义:
- 作用:被 ` 包围的内容,会被作为命令执行,而非普通字符
- 语法:
重定向符号
- > 将左侧命令的结果,覆盖写入符号右侧指定的文件中
- >> 将左侧命令的结果,追加写入到符号右侧指定的文件中
tail命令
- 释义:
- 作用:查看文件尾部内容,可以持续追踪
- 语法:
tail [-f -num] Linux路径
- -f 持续跟踪, -num 查看尾部多少行,默认10
- Linux路径, 表被查看的文件
vi 编辑器
命令模式
- 默认模式,可通过键盘快捷键控制文件内容
- i 在当前光标位置进入输入模式
- I 在当前行的开头进入输入模式
- a 在当前光标位置之后,进入输入模式
- A 在当前行的结尾,进入输入模式
- o 在当前光标下一行,进入输入模式
- O 在当前光标的上一行,进入输入模式
- k j h l 上下左右移动光标
- 0 移动光标到当前行开头
- $ 移动光标到当前行结尾
- PGUP 向上翻页
- PGDN 向下翻页
- / 进入搜索模式
- n 向下继续搜索
- N 向上继续搜索
- dd 删除光标所在行内容
- ndd n是数字,表删除当前光标向下n行
- yy 复制当前行
- nyy n是数字,复制包括当前行的下面的n行
- p 粘贴复制内容
- u 撤销修改
- CTRL + r 反向撤销修改
- gg 跳到首行
- G 跳到尾行
- dG 从当前行开始,向下全部删除
- dgg 从当前行开始,向上全部删除
- d$ 从当前光标开始,删除到本行结尾
- d0 从当前光标开始,删除到本行开头
输入模式
- 通过命令模式进入,可以输入内容进行编辑,按ESC退回命令模式
底线命令模式
- 通过命令模式进入,可以对文件进行保存、关闭等操作
- :wq 保存并退出
- :q 仅退出
- :q! 强制退出
- :w 仅保存
- :set nu 显示行号
- :set paste 设置粘贴模式
root用户
- root用户是Linux系统的超级管理员用户,拥有系统最大权限
su命令
- 释义:Switch User
- 作用:切换用户
- 语法:
su [-] [用户名]
- -表示切换后加载环境变量,建议带上
- 用户名可以省略,如省略,默认切换到 root
- 切换用户后,可以使用 exit 命令退回上一个用户,也可使用快捷键 ctrl + d
sudo命令
- 释义:SuperUser do
- 作用:让一条普通命令带有root权限
- 语法:
sudo 其它命令
- 需要以root用户执行
visudo
命令,增加配置才能让普通用户拥有 sudo 命令的执行权限- 切换到 root 用户,执行 visudo 命令
- 在文件最后添加 申请sudo权限的用户名 ALL=(ALL) NOPASSWD:ALL
- 其中最后的 NOPASSWD:ALL 表示使用 sudo 命令,无需输入密码
- 通过 wq 保存
- 切换回普通用户
- 使用 sudo 执行的命令,均以 root 运行
- 需要以root用户执行
用户与用户组
- Linux 可以支持多用户、多用户组、用户加入多个组
- Linux 权限管控的单元是用户级别和用户组级别
用户组管理
- 以下命令需root用户执行
- 创建用户组
groupadd 用户组名
- 删除用户组
groupdel 用户组名
用户管理
-
以下命令需root用户执行
-
创建用户
useradd [-g -d] 用户名
- -g 选项 指定用户的组,不指定-g,会创建同名组并自动加入;指定-g需要组已经存在;如已存在同名组,必须使用-g
- -d 选项 指定用户的HOME路径,不指定,HOME路径默认在: /home/用户名
-
删除用户
userdel [-r] 用户名
- -r 选项,删除用户的HOME目录,不适用 -r ,删除用户时,HOME目录保留
-
查看用户所在组
id[用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
-
修改用户所在组
usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
getent命令
- 释义:get entries from administrative database
- 作用:查看当前系统中的用户和用户组
- 语法:
getent passwd
- 输出信息分别为 用户名:密码(x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
- 语法:
getent group
- 输出信息为 组名称:组认证(显示为x):组ID
权限控制
- r 表示读权限
- w 表示写权限
- x 表示执行权限
- 针对文件
- r 可以查看文件内容
- w 可以修改此文件
- x 可以将文件作为程序执行
- 针对文件夹
- r 可以查看文件内容
- w 可以在文件夹内执行创建、删除、改名等操作
- x 可以更改工作目录到此文件夹,即可以cd进入
chmod命令
- 释义:change mode
- 作用:修改文件、文件夹的权限细节
- 语法:
chmod [-R] 权限 文件或文件夹
- 选项 -R 对文件夹内的全部内容应用同样规则
- 权限可采用二进制的十进制数值来表示
chown命令
- 释义:change owner
- 作用:修改文件、文件夹的所属用户和用户组,普通用户无法将文件所属修改为其它用户或组,所以此命令只适用于 root 用户执行
- 语法:
chown [-R] [用户][:][用户组] 文件或文件夹
- 选项 -R 对文件夹内全部内容应用相同规则
- 选项 用户 修改所属用户
- 选项 用户组 修改所属用户组
- : 用于分隔用户和用户组
Linux 实用操作
常用快捷键
- ctrl + c 强制停止
- ctrl + d 退出登出
- history 查看历史命令
- !命令前缀 自动匹配上一个命令
- ctrl + r 搜索历史命令
- ctrl + a 光标移动到命令开始
- ctrl + e 光标移动到命令结束
- ctrl + ⬅ 左跳单词
- ctrl + ➡ 右跳单词
- ctrl + l == clear 清屏
安装软件
- yum命令(CentOS系统)
- 释义:yellowdog updater modified
- 作用:联网管理软件安装,需要root权限,可以su切换到root,或使用sudo提权
- 语法:
yum [-y] [install | remove | search] 软件名称
- 选项 -y 自动确认,无需手动确认安装或卸载过程
- apt命令(Ubantu系统)
- 释义:Advanced Package Tool
- 作用:联网管理软件安装
- 语法:
apt [-y] [install | remove | search] 软件名称
- 选项 -y 自动确认,无需手动确认安装或卸载过程
systemctl命令
- 释义:system control
- 作用:控制软件(服务)的启动、关闭、开机自启动
- 系统内置服务均可被 systemctl 控制
- 第三方软件,如果自动注册了,也可以被 systemctl 控制
- 第三方软件,如果没有注册,可以手动注册
- 语法:
systemctl start | stop | ststus | enable | disable 服务名
- 选项 start 启动
- 选项 stop 关闭
- 选项 status 查看状态
- 选项 enable 开启开机自启
- 选项 disable 关闭开机自启
ln命令
- 释义:link
- 作用:将文件、文件夹链接到其他位置,类似于快捷方式
- 语法:
ln -s 参数1 参数2
- -s 选项 创建软连接
- 参数1 被链接的文件或文件夹
- 参数2 要连接去的目的地
日期和时区
date命令
- 释义:
- 作用:查看日期时间,并可以格式化显示形式以及做日期计算
- 语法:
date [-d] [+格式化字符串]
- 选项 -d 按照给定字符串显示日期,一般用于日期计算
- eg:
date -d "+1 day" +%Y%m%d
- 支持的时间标记为:
- year 年
- month 月
- day 天
- hour 小时
- minute 分钟
- second 秒
- eg:
- 选项 格式化字符串,存在空格时用" "包围
- %Y 年
- %y 年份的后两位数字
- %M 月份(01 ... 12)
- %d 日(01 ... 31)
- %H 小时(00 ... 23)
- %M 分钟(00 ... 59)
- %S 秒(00 ... 60)
- %s 自1970-01-01 00:00:00 UTC 到现在的秒数
- 选项 -d 按照给定字符串显示日期,一般用于日期计算
修改Linux时区
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看主机名
hostname
修改主机名
hostnamectl set-hostname 修改后的主机名
(需root)
Linux系统固定IP
- vim编辑 /etc/sysconfig/network-scripts/ifcfg-ens33文件
- ens33为网卡名称,不同系统可能不同,可通过
ifconfig
查看 - 将 BOOTPROTO 字段由 dhcp 改为 static
- 在文件新增:
- IPADDR="IP地址"
- NETMASK="子网掩码"
- GETEWAY="网关"
- DNS1="和网关相同"
- ens33为网卡名称,不同系统可能不同,可通过
- 执行
systemctl restart network
重启网卡服务
网络传输
ping命令
- 释义:
- 作用:检查指定的网络服务器是否是可联通状态
- 语法:
ping [-c num] ip或主机名
- 选项 -c 检查的次数,如不使用-c选项,将无限次数持续检查
- 参数 ip或主机名,被检查的服务器的ip地址或主机名地址
wget命令
- 释义:web get
- 作用:非交互的文件下载器,在命令行内下载网络文件,无论下载是否完成,都会生成要下载的文件
- 语法:
wget [-b] url
- 选项 -b 后台下载,会将日志写入当前工作目录的 wget-log 文件
- 参数 url 下载链接
curl命令
- 释义:CommandLine URL
- 作用:发送http网络请求,用于下载文件、获取信息等
- 语法:
curl [-O] url
- 选项 -O 用于下载文件,当url是下载链接时,可以使用此选项保存文件
- 参数 url 要发起请求的网络地址
端口分类
- 公认端口:1~1023 通常用于系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS的443端口。非特殊需要,不占用
- 注册端口:1024~49151 可随意使用,用于松散的绑定一些程序/服务
- 动态端口:49152~65535 通常不会固定绑定程序,而是当程序对外进行网络连接时,临时使用
nmap命令
- 释义:Network Mapper
- 安装:
yum -y install nmap
- 作用:查看端口占用情况
- 语法:
nmap 被查看的IP地址
netstat命令
- 释义:network statistics
- 安装:
yum -y install net-tools
- 作用:查看本机指定端口的占用情况
- 语法:
netstat -anp | grep 端口号
进程管理
ps 命令
- 释义:Processes Status
- 作用:查看Linux系统中的进程信息
- 语法:
ps [-e -f]
- 选项 -e 显示全部进程
- 选项 -f 以完全格式化的形式展示信息
ps -ef
展示出的信息从左到右分别是:- UID: 进程所属的用户ID
- PID: 进程的进程号ID
- PPID: 进程的父ID(启动此进程的其他进程)
- C: 此进程的CPU占用率(百分比)
- STIME: 进程的启动时间
- TTY: 启动此进程的终端序号,如显示 ? ,表示非终端启动
- TIME: 进程占用CPU的时间
- CMD: 进程对应的名称或启动路径或启动命令
kill命令
- 释义:
- 作用:关闭进程
- 语法:
kill [-9] 进程ID
- 选项 -9 表示强制关闭进程。不适用此选项会向进程发送信号要求其关闭,但是是否关闭看进程自身的处理机制
主机状态
top命令
-
释义:
-
作用:查看cpu、内存使用情况
-
语法:
top [-p -d -c -n -b -i -u]
-
top
输出内容置顶信息详解- 第一行:top:命令名称 时间:当前系统时间,up x min:启动了x分钟, x users:x个用户登录, load :1、5 、15分钟负载
- 第二行:Taskes:进程数量, x running:正在运行进程数量, x sleeping:休眠进程数量, x stopped:停止进程数量, x zombie:僵尸进程数量
- 第三行:%Cpu(s):cpu使用率,us:用户cpu使用率, sy:系统cpu使用率, ni:高优先级进程占用cpu时间百分比, id:空闲cpu率, wa:IO等待cpu占用率, hi:cpu硬件中断率, si:cpu软件中断率, st:强制等待占用cpu率
- 第四行:Kib Mem:物理内存, total:总量, free:空闲, used:使用, buff/cache:buff和catch占用
- 第五行:Kib Swap:虚拟内存(交换空间), total:总量, free:空闲, used:使用, buff/cache:buff和catch占用
-
top
输出内容每列信息详解- PID: 进程id
- USER: 进程所属用户
- PR: 进程优先级,越小越高
- NI: 负值表示高优先级,正值表示低优先级
- VIRT: 进程使用的虚拟内存,单位KB
- RSE: 进程使用的物理内存,单位KB
- SHR: 进程使用的共享内存,单位KB
- S: 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
- %CPU: 进程占用CPU率
- %MEM: 进程占用内存率
- TIME+: 进程使用CPU时间总计,单位10毫秒
- COMMAND: 进程的命令或名称或程序文件路径
-
-p 只显示某个进程信息
-
-d 设置刷新时间,默认5s
-
-c 显示产生进程的完整命令,默认是进程名
-
-n 指定刷新次数
-
-b 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,如top -b -n > temp/top.tmp
-
-i 不显示任何闲置(idle)或无用(zombie)进程
-
-u 查找特定用户启动的进程
-
-
top交互式选项
按键 功能 h 显示帮助页面 c 显示进程的完整命令 f 选择需要展示的项目 M 根据驻留内存(RES)排序 P 根据cpu使用百分比大小排序 T 根据时间/累计时间进行排序 E 切换顶部内存显示单位 e 切换进程内存显示单位 l 显示平均负载和启动时间信息 i 不显示闲置或无用进程 t 切换cpu状态信息 m 显示内存信息
磁盘信息监控
df命令
- 释义:disk free
- 作用:查看磁盘使用情况
- 语法:
df [-h]
- 选项-h,以更加人性化的单位显示
iostat命令
- 释义:I/O statistics
- 作用:查看cpu、磁盘的相关信息
- 语法:
iostat [-x] [num1] [num2]
- 选项-x 显示更多信息
- num1:数字,刷新间隔
- num2:数字,刷新几次
iostat -x
输出信息详解- rrqm/s: 每秒被Merge的读取请求
- wrqm/s: 每秒被Merge的写入请求
- rsec/s: 每秒读取的扇区数
- wsec/s: 每秒写入的扇区数
- rKB/s: 每秒发送到设备的读取请求数
- wKB/s: 每秒发送到设备的写入请求数
- avgrq-sz: 平均请求扇区的大小
- avgqu-sz: 平均请求队列的长度
- await: 每一个io请求处理的平均时间
- svctm: 每次设备I/O操作的平均服务时间
- %util: 磁盘利用率
网络状态监控
sar命令
- 释义:System Activity Reporter (系统活动报告工具)
- 作用:查看网络相关统计信息
- 语法:
sar -n DEV num1 num2
sar较复杂,此处固定此命令用于简单统计网络- 选项 -n 查看网络,DEV表查看网络接口
- num1:数字,刷新间隔,默认查看一次
- num2:数字,查看次数,默认无限次数
sar -n DEV num1 num2
信息解读:- IFACE: 本地网卡接口名称
- rxpck/s: 每秒接受的数据包
- txpck/s: 每秒发送的数据包
- rxKB/s: 每秒接受的数据包大小,单位为KB
- txKB/s: 每秒发送的数据包大小,单位为KB
- rxcmp/s: 每秒接受的压缩数据包
- txcmp/s: 每秒发送的压缩数据包
- rxmcst/s: 每秒接受的多播数据包
环境变量
- 环境变量是一组信息记录,类型是K-V,用于操作系统运行时记录关键信息
- 通过
env
命令可以查看当前系统配置的环境变量信息 - 通过
$
符号,可以取出环境变量的值 - PATH
- 环境变量PATH会记录一组目录,目录之间用 : 隔开。记录的是命令的搜索路径,当执行命令会从环境变量中的目录中挨个搜索要执行的命令,并执行
- 可以修改这个项目的值,加入自定义的命令搜索路径
- 如
export PATH=$PATH:自定义路径
- 如
修改环境变量
- 临时生效:
export 名称=值
- 永久生效:
- 针对当前用户: ~/.bashrc 文件中配置
- 针对全局用户: /etc/profile文件中配置
- 文件配置完成后,通过语法
source 配置文件
进行立刻生效
上传、下载
- 通过
yum -y install lrzsz
安装rz,sz命令 - rz命令
- 释义:
- 作用:进行文件上传
- 语法:
rz
然后选择文件
- sz命令
- 释义:
- 作用:进行文件下载
- 语法:
sz 文件名称
压缩、解压
- 压缩格式
- .tar tarball,归档文件,即简单的将文件组装到一个.tar的文件内,没有太多文件体积的减少
- .gz 常见为 .tar.gz , gzip格式的压缩文件,极大减少压缩后的文件体积
tar命令
- 释义:tape archive
- 作用:对文件进行压缩和解压缩操作
- 语法:
tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
- -c 创建压缩文件(打包文件),用于压缩模式
- -v 显示压缩、解压过程,用于查看进度
- -x 解压模式
- -f 要创建的文件或要解压的文件,-f选项必须在所有选项中位置处于最后一个
- -z gzip模式,不用-z就是普通的tarball格式
- -C 选择解压的目的地,用于解压模式
- 常用组合:
tar -crf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar文件内tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式tar -xvf test.tar
解压test.tar,将文件解压至当前目录tar -xvf test.tar -C 目录名
解压test.tar,将文件解压至指定目录tar -gxvf test.tar.gz -C 目录名
以Gzip模式解压test.tar.gz,将文件解压至指定目录
- 注意:
- -z 选项如果使用,一般处于选项位第一个
- -f 选项,必须在选项位最后一个
- -C 选项单独使用,和解压所需的其它参数分开
zip命令
- 释义:
- 作用:压缩文件为zip压缩包
- 语法:
zip [-r] 压缩后文件名 参数1 参数2 ... 参数N
- 选项 -r 在被压缩的包含文件夹时使用
unzip命令
- 释义:
- 作用:解压 zip 压缩包
- 语法:
unzip [-d] 参数
- -d 指定文件解压位置
- 参数 被解压的zip压缩包文件
scp命令
- 释义:Secure copy
- 作用:在不同的Linux服务器之间,通过SSH协议互相传输文件
- 语法:
scp [-r] 参数1 参数2
- -r选项用于复制文件夹时使用
- 参数1 本机路径 或 远程目标路径
- 参数2 远程目标路径 或 本机路径