Skip to content

Shell与Bash和Sh

牢记

  • Shell可以理解为所有命令的统称,例如 ll cd pwd
  • Sh就是你看到的黑窗口,他本质是一个进程一直在前台运行着
  • Bash是Sh的升级版,Bash与Sh更像是windows里面的cmd和powershell
一个命令回车那一刻
  • 大部分普通命令执行时候,都是在当前黑窗口下延伸执行,也就是当前的Bash下新开一个 子进程 ,命令运行完毕后子进程直接关闭死掉,回到了原Bash
  • exec <命令> 则是恰恰相反,当你用exec+命令时候,执行的命令程序则不会再开子进程,而是直接用当前Bash,当命令结束后,黑窗口也就直接关闭了。 可以用 exec ls 测试

常用命令大合集

一、文件与目录操作命令(高频)

命令语法常用选项/用法功能说明示例
lsls [选项] [目录/文件]-l:长格式显示(别名ll);-a:显示所有文件(含隐藏);-h:人性化显示大小;-d:只显示目录本身列出目录内容ls -l、ls -ah /home、ll -d /etc
cdcd [目录路径]cd ~:切换到家目录;cd ..:切换到上一级;cd .:当前目录;cd -:上一次目录;cd /:根目录切换工作目录cd /usr/local
pwdpwd [选项]-P:显示真实物理路径(忽略符号链接)显示当前工作目录路径pwd -P
mkdirmkdir [选项] 目录名-p:递归创建多级目录创建目录mkdir test、mkdir -p /data/logs
touchtouch [选项] 文件名-d "时间":修改时间戳创建空文件或修改时间戳touch file.txt、touch -d "2024-01-01 12:00" file.txt
cpcp [选项] 源 目标-r/R:递归复制目录;-p:保留属性;-f:强制覆盖;-v:显示过程复制文件/目录cp file.txt /tmp/、cp -r /home/test /data/
mvmv [选项] 源 目标-f:强制覆盖;-v:显示过程移动/重命名文件/目录mv file.txt file_new.txt、mv /tmp/file.txt /home/
rmrm [选项] 文件/目录-r/R:递归删除目录;-f:强制删除;-v:显示过程删除文件/目录(无法直接恢复)rm file.txt、rm -rf /tmp/test(慎用)
catcat [选项] 文件名-n:显示行号;-b:只给非空行显行号查看短文件内容cat /etc/hosts、cat -n file.txt
moremore 文件名空格:下一页;Enter:下一行;q:退出分页查看长文件内容more /var/log/messages
lessless 文件名↑/↓:上下滚行;PageUp/PageDown:翻页;/关键词:向下搜索;q:退出分页查看长文件(功能更强)less /etc/profile
tailtail [选项] 文件名-n 数字:显示末尾n行;-f:实时监控查看文件末尾内容(日志监控常用)tail /var/log/nginx/access.log、tail -f /var/log/messages

二、系统管理命令

命令语法常用选项/用法功能说明示例
toptop [选项]P:按CPU排序;M:按内存排序;k:终止进程;q:退出实时监控系统资源(CPU、内存、进程)top
psps [选项]ps aux:查看所有进程;ps -ef:查看完整进程信息查看系统进程快照ps aux
killkill [信号量] PID15(默认):正常终止;9:强制终止;1:重启进程通过PID终止进程kill 1234、kill -9 1234(慎用)
killallkillall [选项] 进程名-9:强制终止所有同名进程通过进程名终止进程killall -9 nginx
freefree [选项]-h:人性化显示大小查看系统内存使用情况free -h
dfdf [选项]-h:人性化显示;-T:显示文件系统类型查看磁盘分区使用情况df -hT
dudu [选项] 目录/文件-h:人性化显示;-s:只显示总大小;-c:汇总总大小查看目录/文件占用磁盘空间du -sh /home、du -hc /tmp/*

三、用户与权限管理命令

命令语法常用选项/用法功能说明示例
useradduseradd [选项] 用户名-m:自动创建家目录;-s:指定登录shell;-g:指定主组;-G:指定附加组创建新用户useradd -m -s /bin/bash -g work test
passwdpasswd [用户名]root可改任意用户密码;普通用户只改自身密码设置/修改用户密码passwd test(root)、passwd(普通用户)
userdeluserdel [选项] 用户名-r:删除用户同时删除家目录删除用户userdel -r test
groupaddgroupadd 组名-创建用户组groupadd work
chmodchmod [选项] 权限 目标-R:递归修改权限;数字方式(如755);符号方式(如u+rwx)修改文件/目录权限(r=4,w=2,x=1)chmod 755 file.sh、chmod -R 777 /data(慎用)
chownchown [选项] 所有者:所属组 目标-R:递归修改修改文件/目录的所有者和所属组chown test:work file.txt、chown -R test:work /home/test

四、网络管理命令

命令语法常用选项/用法功能说明示例
ifconfigifconfig [网络接口名]-查看/配置网络接口(旧版)ifconfig、ifconfig eth0
ipip 子命令ip addr:查看IP;ip link:查看链路状态;ip route:查看路由表查看/配置网络接口(新版,推荐)ip addr show eth0
pingping [选项] 目标IP/域名-c 数字:指定ping次数测试网络连通性ping www.baidu.com、ping -c 4 192.168.1.1
netstatnetstat [选项]netstat -anpt:显示所有TCP连接及进程查看网络连接状态(旧版)netstat -anpt
ssss [选项]ss -anpt:功能同netstat -anpt(效率更高)查看网络连接状态(新版,替代netstat)ss -anpt
nmtuinmtui交互操作:
1. 上下键选择选项;
2. Enter确认;
3. ESC退出
图形化交互配置网络(CentOS7+,nmcli的可视化版)nmtui(打开配置界面)、nmtui edit eth0(编辑eth0网卡)
nmclinmcli [子命令]常用子命令:
- device:查看/管理网卡设备;
- connection:查看/管理网络连接;
- general:查看网络通用信息;
常用操作:nmcli c show(查看连接)、nmcli c up/down 连接名(启用/禁用连接)
命令行配置NetworkManager网络(CentOS7+主流)nmcli device status(查看网卡状态)、nmcli connection show(查看所有网络连接

五、其他常用命令

命令语法常用选项/用法功能说明示例
sudosudo [选项] 命令-以其他用户身份执行命令(默认root)sudo ls /root
findfind 路径 [选项] 条件-name "文件名":按名查找;-type f/d:按类型;-size ±大小:按大小;-mtime ±天数:按修改时间查找文件/目录find /home -name "*.txt"、find /tmp -size +50M -type f
grepgrep [选项] "关键词" 目标-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
datedate [选项] [格式]date "+%Y-%m-%d %H:%M:%S":指定格式;-s "时间":设置系统时间查看/设置系统时间date "+%Y-%m-%d %H:%M:%S"、date -s "2024-05-20 14:30:00"(root)

六、系统日志查看命令

命令语法常用选项/用法功能说明示例
journalctljournalctl [选项]-u 服务名:查看指定服务日志;-f:实时监控;--since/--until:按时间筛选;-n 数字:显示最近n行查看systemd系统日志(CentOS7+)journalctl -u nginx、journalctl -f、journalctl --since "1 hour ago"
dmesgdmesg [选项]-h:人性化显示;-T:显示人类可读时间戳查看内核启动/硬件相关日志dmesg -T
lastlast [选项]-n 数字:显示最近n条记录;lastlog:查看所有用户最后登录时间查看用户登录历史日志last -n 10、lastlog
grepgrep [选项] "关键词" 日志文件-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(定时任务日志)

温馨提示

  1. 核心日志路径参考:/var/log/messages(系统通用日志)、/var/log/secure(安全/登录日志)、/var/log/cron(定时任务日志)
  2. 所有命令可通过“命令 --help”查看详细用法(如ls --help)
  3. 复杂命令可通过man手册查看完整文档(如man ls,按q退出)