Linux常用命令详解

发布于:2025-08-19 ⋅ 阅读:(16) ⋅ 点赞:(0)

1. 文件和目录管理

命令 功能 参数/用法 示例
ls 列出目录内容(文件/子目录)。
  • -l: 长格式显示(详细信息:权限、所有者、大小、时间)。

  • -a: 显示所有文件(包括隐藏文件,以 . 开头)。

  • -h: 与 -l 结合使用,以人类可读的格式显示文件大小(如 K, M, G)。

  • -t: 按修改时间排序(最新在前)。

  • -r: 反向排序。

ls -l(详细列表)

ls -a(显示隐藏文件)

cd 切换当前工作目录。
  • cd /path/to/directory (绝对路径)

  • cd relative/path (相对路径)

  • cd 或 cd ~: 切换到当前用户的家目录。

  • cd ..: 切换到上级目录。

  • cd -: 切换到上一个工作目录。

cd /home/user(进入目录)

cd ..(返回上一级)

pwd 显示当前工作目录的路径。 pwd
mkdir 创建新目录。
  • -p: 递归创建目录(创建路径中不存在的父目录)。

mkdir new_folder(创建目录)

mkdir -p a/b/c(递归创建多级目录)

rm 删除文件或目录。
  • -r 或 -R: 递归删除目录及其内容(极其危险!)。

  • -f: 强制删除,不提示确认(更危险!)。

  • -i: 删除前提示确认(推荐使用)。

rm file.txt(删除文件)

rm -r folder(递归删除目录)

cp 复制文件或目录。
  • -r 或 -R: 递归复制目录及其内容。

  • -i: 覆盖前提示确认。

  • -v: 显示复制过程的详细信息。

cp source.txt destination.txt(复制文件)

cp -r folder1 folder2(复制目录)

mv 移动文件/目录或重命名。
  • -i: 覆盖前提示确认。

  • -v: 显示移动过程的详细信息。

mv old_name new_name(重命名)

mv file.txt /tmp/(移动文件)

touch 创建空文件或更新文件时间戳。 touch new_file.txt(创建文件)

2. 文件搜索和文本查看

命令 功能 参数/用法 示例
find 搜索文件或目录。
  • find /path/to/search -name "filename" (按文件名查找)

  • find . -type f -name "*.txt" (在当前目录及子目录查找所有 .txt 文件)

  • find /var/log -mtime -1 (在 /var/log 下查找 24 小时内修改过的文件)

  • find . -size +10M (查找当前目录下大于 10MB 的文件)

  • find . -name "temp*" -exec rm {} \; (查找并删除匹配的文件 - 谨慎使用)

find /home -name "*.txt"(搜索所有 .txt 文件)
which 用于查找可执行文件的确切位置
  • -a:显示所有匹配项(需配合-a选项使用)。 ‌2

  • -n:指定最小文件名长度(需配合-n参数使用)。 ‌2

  • -p:与-n参数相同,但包含路径。 ‌2

  • --version:显示版本信息。 ‌4

which python  (显示具体位置)

whereis

快速定位二进制文件、源代码文件和手册页(man pages)位置的命令
  • -b: 只查找二进制文件(可执行文件)    
  • -s:只查找源代码文件    
  • -m:只查找手册页(man pages)    
  • -u:查找不常见(非标准)位置的文件    
  • -f:在指定路径后使用,表示接下来是文件名    
cat 查看文件内容或合并文件。

cat file.txt(显示文件内容)

cat file1.txt file2.txt(合并两个文件)

less/
more
分页查看文件内容。
  • Space: 向下翻一页。

  • b: 向上翻一页。

  • Enter: 向下翻一行。

  • /pattern: 向前搜索 pattern

  • ?pattern: 向后搜索 pattern

  • n: 跳转到下一个匹配项。

  • N: 跳转到上一个匹配项。

  • q: 退出。

less file.txt(支持上下翻页)
head 查看文件开头部分。
  • -n : 指定显示的行数(例如 -n 20 显示前 20 行)。

head -n 10 file.txt(显示前10行)
tail 查看文件末尾部分。
  • -n : 指定显示的行数(例如 -n 20 显示后 20 行)。

  • -f跟随模式,持续显示文件尾部新增的内容(监控日志必备)。按 Ctrl+C 退出。

tail -n 20 file.txt(显示后20行)

tail -f log.txt(实时监控日志)

grep 在文件中搜索文本。
  • -i: 忽略大小写。

  • -r 或 -R: 递归搜索目录中的文件。

  • -n: 显示匹配行号。

  • -v: 反向选择,只显示包含匹配模式的行。

  • -l: 只显示包含匹配项的文件名。

  • -E: 使用扩展正则表达式 (等同于 egrep)。

grep "error" file.txt(查找包含 "error" 的行)

grep -r "keyword" /path/(递归搜索目录)

sed 流编辑器,用于对输入流(文件或管道)进行基本的文本转换(替换、删除、插入等)。非常强大,常用于脚本。
  • sed 's/old/new/' file.txt (将每行中第一个 old 替换为 new)

  • sed 's/old/new/g' file.txt (将每行中所有 old 替换为 new - g 表示全局)

  • sed '2d' file.txt (删除第 2 行)

  • sed -i.bak 's/old/new/g' file.txt (直接修改原文件 file.txt 并创建备份 file.txt.bak - 谨慎使用 -i)

说明: s 表示替换,d 表示删除。正则表达式常用。

awk 强大的文本处理和数据提取工具,本身就是一种编程语言。擅长处理结构化文本(如 CSV、日志)。
  • awk '{print $1}' data.txt (打印每行的第一列)

  • awk -F':' '{print $1, $7}' /etc/passwd (使用 : 作为分隔符,打印用户名和 shell,同 cut 示例)

  • awk '$3 > 100 {print $0}' data.csv (打印第三列值大于 100 的所有行)

  • awk 'END {print NR}' file.txt (打印文件总行数)


3. 系统信息与监控

命令 功能 参数/用法 示例
uname 显示系统内核信息。
  • -a: 显示所有信息 (all)。

  • -s: 内核名称 (如 Linux)。

  • -r: 内核发行版本 (如 5.4.0-150-generic)。

  • -m: 硬件架构 (如 x86_64)。

  • -n: 网络节点主机名。

uname -a(显示所有信息)
top 实时查看系统资源使用情况。
  • P: 按 CPU 使用率排序。

  • M: 按内存使用率排序。

  • k: 终止进程(需输入 PID)。

  • q: 退出。

top(按CPU/内存排序进程)
ps 查看当前运行的进程。
  • ps aux: BSD 风格,显示所有用户的所有进程详细信息(常用)。

  • ps -ef: System V 风格,效果类似 ps aux

  • ps -u username: 显示特定用户的进程。

输出字段: USER, PID (进程ID), %CPU, %MEM, VSZ (虚拟内存大小), RSS (常驻内存大小), TTY (终端), STAT (状态), START (启动时间), TIME (CPU 时间), COMMAND (命令)。

ps aux(显示所有进程)
df 显示磁盘空间使用情况。
  • -h: 以人类可读格式显示(G, M, K)。

  • -T: 显示文件系统类型。

df -h(以易读格式显示磁盘使用率)
free 显示内存和交换分区使用情况。
  • -h: 以人类可读格式显示(G, M)。

  • -m: 以 MB 为单位显示。

free -h(以易读格式显示内存)
du 显示目录或文件的磁盘占用。
  • -h: 以人类可读格式显示。

  • -s: 只显示总计(summary),不列出子目录详情。

  • --max-depth=N: 指定显示目录的深度。

du -sh /path/to/folder(统计目录大小)
uptime 显示系统运行时间和负载。 uptime(输出类似 12:34:56 up 5 days, 1 user

4. 用户与权限管理

命令 功能 参数/用法 示例
useradd/adduser
  • 功能: 创建新用户账户。

  • useradd: 低级命令,只创建基本账户,需配合 passwd 等设置密码和主目录。

  • adduser: 更友好的交互式脚本(在某些发行版如 Debian/Ubuntu 上可用),封装了 useraddpasswd、创建主目录、设置默认 shell 等操作。推荐优先使用 adduser(如果可用)。

  • -m: 创建用户主目录(通常 /home/username)。

  • -s : 指定用户的登录 shell(如 /bin/bash)。

  • -g : 指定用户的主要组(primary group)。

  • -G : 指定用户的附加组(supplementary groups),逗号分隔。

useradd username(创建用户)
passwd 修改用户密码。
  • passwd: 更改当前登录用户自己的密码。

  • sudo passwd usernameroot 更改指定用户 username 的密码。

chown 修改文件/目录的所有者。
  • -R: 递归修改目录及其内容。

chown user:group file.txt(修改所有者和组)
chmod 修改文件/目录的权限。
  • 权限表示:

    • 字母表示法:

      • 用户类别: u (user/owner), g (group), o (others), a (all)

      • 操作符: + (添加权限), - (移除权限), = (设置权限)

      • 权限: r (read), w (write), x (execute)

      • 示例: chmod u+x script.sh (给所有者添加执行权限), chmod go-w file.txt (移除组和其他用户的写权限), chmod a=r file.txt (设置所有人只有读权限)

    • 数字表示法 (八进制): 三位数字,分别代表所有者、组、其他人的权限。

      • r=4w=2x=1。无权限=0。所需权限值相加。

      • 示例: chmod 755 script.sh (所有者: rwx=7, 组: r-x=5, 其他人: r-x=5) - 常用可执行文件权限。 chmod 644 file.txt (所有者: rw-, 组: r--, 其他人: r--) - 常用数据文件权限。

  • 常用选项: -R: 递归修改目录及其内容权限。

chmod 755 script.sh(设置权限为 rwxr-xr-x
su 切换用户身份。
  • su -: 切换到 root 用户并加载 root 的环境变量(- 或 -l 很重要)。

  • su - username: 切换到指定用户并加载其环境变量。

  • su username: 切换到指定用户但不加载其环境变量(环境可能不完整)。

su - username(切换到指定用户)
sudo 以管理员权限执行命令。 sudo apt update(更新软件包列表)

5. 网络管理

命令 功能 参数/用法 示例
ip 管理网络配置(现代替代 ifconfig)。
  • ip addr show 或 ip a: 显示所有网络接口的地址信息(最常用)。

  • ip link show: 显示链路层(物理)接口信息。

  • ip route show: 显示路由表。

ip a(显示所有网络接口)
ping 测试网络连通性。
  • -c : 发送指定数量的包后停止(如 -c 4)。

  • -i : 设置发送包之间的间隔秒数(如 -i 2 每 2 秒发一个)。

  • -w : 设置超时秒数(如 -w 10 等待 10 秒后停止)。

ping example.com(持续测试)

telnet

测试端口连通性。

telnet 223.5.183.79  6379

ssh 远程登录服务器。
  • -p : 指定远程主机的 SSH 端口(默认为 22)。

  • -i : 指定用于身份验证的私钥文件。

ssh username@host(连接远程主机)
scp 安全复制文件到远程主机。
  • 本地 -> 远程: scp local_file user@remote_host:remote_path

  • 远程 -> 本地: scp user@remote_host:remote_file local_path

  • 远程 -> 远程: scp user1@host1:file1 user2@host2:file2

  • 常用选项: -r: 递归复制目录。 -P : 指定远程 SSH 端口。

scp file.txt username@host:/remote/path(上传文件)
netstat 查看网络连接和端口状态。
  • -t: 显示 TCP 连接。

  • -u: 显示 UDP 连接。

  • -l: 仅显示监听 (listening) 的套接字。

  • -n: 以数字形式显示地址和端口号(不尝试解析主机名和服务名)。

  • -p: 显示使用套接字的进程信息(需要 root 权限)。

  • -a: 显示所有套接字(连接中和监听的)。

netstat -tuln(显示监听端口)
curl 从网络下载文件或测试API。
  • -o : 将输出保存到文件。

  • -O: 使用远程文件的名称保存到本地。

  • -L: 跟随重定向。

  • -v: 显示详细过程(verbose)。

  • -X : 指定 HTTP 请求方法 (如 GET, POST, PUT, DELETE)。

  • -H : 添加 HTTP 请求头。

  • -d : 发送 POST 请求的数据。

  • -u : 提供用户名密码认证。

curl https://example.com(获取网页内容)

6. 进程管理

命令 功能 参数/用法 示例
kill 终止指定进程。 kill 1234(终止进程ID为1234的进程)
killall 终止所有同名进程。 killall nginx(终止所有 nginx 进程)

nohup

后台运行程序 nohup ... &

nohup python script.py > /var/log/myapp.log 2>&1 &


7. 压缩与解压

命令 功能 参数/用法 示例
tar 打包/解压文件。
  • -c创建新归档文件。

  • -x解压归档文件。

  • -v详细列出处理的文件。

  • -f 指定归档文件名 (必须项)。

  • 压缩相关:

    • -z: 使用 gzip 压缩/解压缩 (.tar.gz 或 .tgz)。

    • -j: 使用 bzip2 压缩/解压缩 (.tar.bz2 或 .tbz2)。

    • -J: 使用 xz 压缩/解压缩 (.tar.xz 或 .txz)。

tar -cvf archive.tar folder/(打包)

tar -xvf archive.tar(解压)

gzip/gunzip 压缩文件。
解压 .gz 文件。
  • -dgzip -d 等同于 gunzip。 

  • -k: 保留原文件(压缩后不删除)

gzip file.txt(生成 file.txt.gz
gunzip file.txt.gz(解压为 file.txt
zip/unzip 压缩文件或目录。
解压 .zip 文件。
  • zip 用法: zip [options] archive.zip file1 file2 ... dir/

    • -r: 递归包含目录。

  • unzip 用法: unzip archive.zip [file(s)] [-d target_dir]

    • -d : 指定解压目录。

    • -l: 列出压缩包内容而不解压。

zip archive.zip file.txt(压缩文件)
unzip archive.zip(解压文件)

8. 其他实用命令

命令 功能 示例
man 查看命令手册(帮助文档)。 man ls(查看 ls 命令的用法)
history 查看命令历史记录。 history(显示最近执行的命令)
alias 创建命令别名。 alias ll='ls -l'(将 ll 设为 ls -l 的别名)
clear 清除终端屏幕。 clear(清屏)
echo 输出文本或变量。 echo "Hello, World!"(输出字符串)

9. 危险命令(谨慎使用!)

命令 功能 示例
rm -rf 递归强制删除目录及内容。 rm -rf /path/to/folder(删除目录及其所有内容)
poweroff 关闭系统。 poweroff(立即关机)
reboot 重启系统。 reboot(立即重启)

 荐一个非常好用的工具集合:在线工具集合 - 您的开发助手


网站公告

今日签到

点亮在社区的每一天
去签到