文件与目录操作

ls -lh
以人类可读方式显示文件大小

ls -ltr
按时间排序

cd -
返回上一个目录

tree
树型结构显示目录,需要安装

stat file
查看文件详细信息

basename /path/file.txt
获取文件名

dirname /path/file.txt
获取文件路径

文件查看与处理

cat -n file
显示行号

tac file
反向输出文件

less -N file
分页并显示行号

strings file
提取二进制文件中的字符串

split -l 1000 big.txt part_
按行切割文件

sort file
排序

uniq file
去重

diff file1 file2
比较两个文件

cmp file1 file2
比较两个文件是否相同

权限与用户管理

chmod 644 file
rw-r–r–

chmod u+x file
给用户添加执行权限

umask
查看默认权限掩码

chgrp group file
修改文件所属组

groups user
查看用户所属组

useradd newuser
添加用户

usermod -aG sudo u
将用户加入sudo组

userdel -r user
删除用户及家目录

groupadd dev
新建用户组

系统信息与硬件

uname -r
查看内核版本

cat /etc/os-release
系统版本信息

hostnamectl
查看主机信息

uptime -p
只显示运行时长

lsblk
显示磁盘挂载

blkid
查看磁盘 UUID

mount /dev/sdb1 /mnt
挂载磁盘

umount /mnt
卸载磁盘

lscpu
CPU 信息

lsusb
USB 设备

lspci
PCI 设备

进程与任务管理

ps -ef | grep ssh
查找进程

pgrep -u user
查看用户进程 PID

kill -15 1234
优雅终止进程

kill -9 1234
强制终止

pkill nginx
杀死 nginx 进程

top -u user
查看用户进程

htop
更友好的进程监控

jobs
后台任务

fg %1
任务恢复前台

bg %1
后台继续运行

磁盘与文件系统

df -Th
查看磁盘文件系统类型

du -sh *
查看当前目录下文件大小

ls -lh /var/log
查看日志大小

ncdu
图形化磁盘分析工具(需安装)

fsck /dev/sdb1
检查文件系统

mount -o remount,rw /
重新挂载为可写

压缩与解压

tar -cvf a.tar dir/
打包

tar -xvf a.tar
解包

tar -czvf a.tar.gz dir
打包并压缩

tar -xzvf a.tar.gz
解压缩

zip -r a.zip dir/
压缩 zip

unzip a.zip -d dir/
解压到目录

xz -z file
压缩为 .xz

xz -d file.xz
解压

网络与传输

ping -c 4 baidu.com
ping 4 次

curl -I http://url
查看响应头

curl -O http://url/file
下载文件

wget -c http://url/file
断点续传下载

scp file user@ip:/dir/
上传文件

scp user@ip:/dir/file ./
下载文件

rsync -avz src/ dest/
高效同步文件

ssh user@ip
远程登录

ssh -p 2222 user@ip
指定端口

网络管理与排错

ifconfig
查看网卡信息(旧)

ip addr show
查看网卡信息(推荐)

ip route
查看路由表

netstat -tulnp
查看端口

ss -lntp
新版端口查看

traceroute baidu.com
路由跟踪

dig baidu.com
DNS 解析

nslookup baidu.com
DNS 查询

telnet ip port
测试端口连通性

软件包管理

Ubuntu/Debian系

apt update
apt upgrade
apt install pkg
apt remove pkg
dpkg -i file.deb
安装本地包

CentOS/RedHat系

yum install pkg
yum remove pkg
yum update
rpm -ivh file.rpm
安装本地包

日志与系统监控

journalctl -xe
查看系统日志

tail -f /var/log/syslog
实时日志

tail -f /var/log/messages
last
登录历史

w
登录用户及进程

uptime
系统负载

vmstat 2
每 2 秒显示内存/CPU

iostat -x 1
磁盘 IO

sar -u 1 10
CPU 性能监控

Shell快捷与工具

!!
执行上一条命令

!ls
执行最近的 ls 命令

history | grep xx
搜索历史命令

alias ll=’ls -l’
设置别名

unalias ll
删除别名

echo PATHPATH查看环境变量

export VAR=123
设置环境变量


  • 新建普通文件的默认权限为666(rw-rw-rw-).umask值027指定屏蔽的权限:所有者部分(0)无屏蔽,组部分(2)屏蔽写权限(w),其他部分(7)屏蔽所有权限(rwx)。计算实际权限:默认权限666&~umask=640(二进制110110110 AND 111101000=110100000,即rw-r—–)。因此,权限为rw-r—–(640)

  • 在linux文件系统中,硬链接不能指向目录(只能指向文件),以防止文件系统循环等问题;而软链接可以指向文件或目录。硬链接共享inode,软连接独立inode。删除原始文件后硬链接可访问数据,软链接失效。硬链接不能跨文件系统,软链接可以。

  • shutdown -r now-r表示重启(reboot),now表示立即执行。标准的重启指令

  • reboot,直接调用系统重启功能,等同于shutdown -r now

  • init 6,通过切换系统运行级别(runlevel)到6,表示重启,是传统的SysV初始化系统的重启方式,在大多数Linux发行版本中仍兼容

  • halt,停止系统运行并关闭电源(相当于关机),不会触发重启

  • 通过文件目录可以实现从文件名到文件物理地址的转化

  • SIGTERM是用于优雅终止进程的标准信号,它允许进程捕获该信号、执行清理操作(如释放资源)并正常退出

  • SIGKILL是强制终止,不可被进程捕获或忽略