Shell与Bash和Sh
牢记
- Shell可以理解为所有命令的统称,例如
llcdpwd - Sh就是你看到的黑窗口,他本质是一个进程一直在前台运行着
- Bash是Sh的升级版,Bash与Sh更像是windows里面的cmd和powershell
一个命令回车那一刻
- 大部分普通命令执行时候,都是在当前黑窗口下延伸执行,也就是当前的Bash下新开一个
子进程,命令运行完毕后子进程直接关闭死掉,回到了原Bash exec <命令>则是恰恰相反,当你用exec+命令时候,执行的命令程序则不会再开子进程,而是直接用当前Bash,当命令结束后,黑窗口也就直接关闭了。 可以用exec ls测试
常用命令大合集
一、文件与目录操作命令(高频)
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| ls | ls [选项] [目录/文件] | -l:长格式显示(别名ll);-a:显示所有文件(含隐藏);-h:人性化显示大小;-d:只显示目录本身 | 列出目录内容 | ls -l、ls -ah /home、ll -d /etc |
| cd | cd [目录路径] | cd ~:切换到家目录;cd ..:切换到上一级;cd .:当前目录;cd -:上一次目录;cd /:根目录 | 切换工作目录 | cd /usr/local |
| pwd | pwd [选项] | -P:显示真实物理路径(忽略符号链接) | 显示当前工作目录路径 | pwd -P |
| mkdir | mkdir [选项] 目录名 | -p:递归创建多级目录 | 创建目录 | mkdir test、mkdir -p /data/logs |
| touch | touch [选项] 文件名 | -d "时间":修改时间戳 | 创建空文件或修改时间戳 | touch file.txt、touch -d "2024-01-01 12:00" file.txt |
| cp | cp [选项] 源 目标 | -r/R:递归复制目录;-p:保留属性;-f:强制覆盖;-v:显示过程 | 复制文件/目录 | cp file.txt /tmp/、cp -r /home/test /data/ |
| mv | mv [选项] 源 目标 | -f:强制覆盖;-v:显示过程 | 移动/重命名文件/目录 | mv file.txt file_new.txt、mv /tmp/file.txt /home/ |
| rm | rm [选项] 文件/目录 | -r/R:递归删除目录;-f:强制删除;-v:显示过程 | 删除文件/目录(无法直接恢复) | rm file.txt、rm -rf /tmp/test(慎用) |
| cat | cat [选项] 文件名 | -n:显示行号;-b:只给非空行显行号 | 查看短文件内容 | cat /etc/hosts、cat -n file.txt |
| more | more 文件名 | 空格:下一页;Enter:下一行;q:退出 | 分页查看长文件内容 | more /var/log/messages |
| less | less 文件名 | ↑/↓:上下滚行;PageUp/PageDown:翻页;/关键词:向下搜索;q:退出 | 分页查看长文件(功能更强) | less /etc/profile |
| tail | tail [选项] 文件名 | -n 数字:显示末尾n行;-f:实时监控 | 查看文件末尾内容(日志监控常用) | tail /var/log/nginx/access.log、tail -f /var/log/messages |
二、系统管理命令
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| top | top [选项] | P:按CPU排序;M:按内存排序;k:终止进程;q:退出 | 实时监控系统资源(CPU、内存、进程) | top |
| ps | ps [选项] | ps aux:查看所有进程;ps -ef:查看完整进程信息 | 查看系统进程快照 | ps aux |
| kill | kill [信号量] PID | 15(默认):正常终止;9:强制终止;1:重启进程 | 通过PID终止进程 | kill 1234、kill -9 1234(慎用) |
| killall | killall [选项] 进程名 | -9:强制终止所有同名进程 | 通过进程名终止进程 | killall -9 nginx |
| free | free [选项] | -h:人性化显示大小 | 查看系统内存使用情况 | free -h |
| df | df [选项] | -h:人性化显示;-T:显示文件系统类型 | 查看磁盘分区使用情况 | df -hT |
| du | du [选项] 目录/文件 | -h:人性化显示;-s:只显示总大小;-c:汇总总大小 | 查看目录/文件占用磁盘空间 | du -sh /home、du -hc /tmp/* |
三、用户与权限管理命令
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| useradd | useradd [选项] 用户名 | -m:自动创建家目录;-s:指定登录shell;-g:指定主组;-G:指定附加组 | 创建新用户 | useradd -m -s /bin/bash -g work test |
| passwd | passwd [用户名] | root可改任意用户密码;普通用户只改自身密码 | 设置/修改用户密码 | passwd test(root)、passwd(普通用户) |
| userdel | userdel [选项] 用户名 | -r:删除用户同时删除家目录 | 删除用户 | userdel -r test |
| groupadd | groupadd 组名 | - | 创建用户组 | groupadd work |
| chmod | chmod [选项] 权限 目标 | -R:递归修改权限;数字方式(如755);符号方式(如u+rwx) | 修改文件/目录权限(r=4,w=2,x=1) | chmod 755 file.sh、chmod -R 777 /data(慎用) |
| chown | chown [选项] 所有者:所属组 目标 | -R:递归修改 | 修改文件/目录的所有者和所属组 | chown test:work file.txt、chown -R test:work /home/test |
四、网络管理命令
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| ifconfig | ifconfig [网络接口名] | - | 查看/配置网络接口(旧版) | ifconfig、ifconfig eth0 |
| ip | ip 子命令 | ip addr:查看IP;ip link:查看链路状态;ip route:查看路由表 | 查看/配置网络接口(新版,推荐) | ip addr show eth0 |
| ping | ping [选项] 目标IP/域名 | -c 数字:指定ping次数 | 测试网络连通性 | ping www.baidu.com、ping -c 4 192.168.1.1 |
| netstat | netstat [选项] | netstat -anpt:显示所有TCP连接及进程 | 查看网络连接状态(旧版) | netstat -anpt |
| ss | ss [选项] | ss -anpt:功能同netstat -anpt(效率更高) | 查看网络连接状态(新版,替代netstat) | ss -anpt |
| nmtui | nmtui | 交互操作: 1. 上下键选择选项; 2. Enter确认; 3. ESC退出 | 图形化交互配置网络(CentOS7+,nmcli的可视化版) | nmtui(打开配置界面)、nmtui edit eth0(编辑eth0网卡) |
| nmcli | nmcli [子命令] | 常用子命令: - device:查看/管理网卡设备; - connection:查看/管理网络连接; - general:查看网络通用信息; 常用操作:nmcli c show(查看连接)、nmcli c up/down 连接名(启用/禁用连接) | 命令行配置NetworkManager网络(CentOS7+主流) | nmcli device status(查看网卡状态)、nmcli connection show(查看所有网络连接 |
五、其他常用命令
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| sudo | sudo [选项] 命令 | - | 以其他用户身份执行命令(默认root) | sudo ls /root |
| find | find 路径 [选项] 条件 | -name "文件名":按名查找;-type f/d:按类型;-size ±大小:按大小;-mtime ±天数:按修改时间 | 查找文件/目录 | find /home -name "*.txt"、find /tmp -size +50M -type f |
| grep | grep [选项] "关键词" 目标 | -i:忽略大小写;-n:显行号;-v:反向匹配;-r:递归搜索 | 文本搜索/过滤内容 | grep "error" /var/log/messages、ps aux |
| tar | 压缩:tar [选项] 压缩包 源;解压:tar [选项] 压缩包 -C 目录 | z:gzip格式;j:bzip2格式;x:解压;c:创建;v:显示过程;f:指定压缩包 | 压缩/解压文件 | tar -zcvf test.tar.gz /home/test、tar -zxvf test.tar.gz -C /tmp |
| date | date [选项] [格式] | date "+%Y-%m-%d %H:%M:%S":指定格式;-s "时间":设置系统时间 | 查看/设置系统时间 | date "+%Y-%m-%d %H:%M:%S"、date -s "2024-05-20 14:30:00"(root) |
六、系统日志查看命令
| 命令 | 语法 | 常用选项/用法 | 功能说明 | 示例 |
|---|---|---|---|---|
| journalctl | journalctl [选项] | -u 服务名:查看指定服务日志;-f:实时监控;--since/--until:按时间筛选;-n 数字:显示最近n行 | 查看systemd系统日志(CentOS7+) | journalctl -u nginx、journalctl -f、journalctl --since "1 hour ago" |
| dmesg | dmesg [选项] | -h:人性化显示;-T:显示人类可读时间戳 | 查看内核启动/硬件相关日志 | dmesg -T |
| last | last [选项] | -n 数字:显示最近n条记录;lastlog:查看所有用户最后登录时间 | 查看用户登录历史日志 | last -n 10、lastlog |
| grep | grep [选项] "关键词" 日志文件 | -i:忽略大小写;-n:显行号;-E:正则匹配 | 过滤日志中指定内容 | grep -in "error" /var/log/messages、grep -E "warn |
| cat/less/tail | 同文件操作命令 | 复用cat/less/tail用法 | 查看各类日志文件 | less /var/log/secure(安全日志)、tail -f /var/log/cron(定时任务日志) |
温馨提示
- 核心日志路径参考:/var/log/messages(系统通用日志)、/var/log/secure(安全/登录日志)、/var/log/cron(定时任务日志)
- 所有命令可通过“命令 --help”查看详细用法(如ls --help)
- 复杂命令可通过man手册查看完整文档(如man ls,按q退出)