Linux 基础命令

3 阅读5分钟

一、如何查看命令的帮助

1. man – 手册页

man 命令名

显示命令的详细手册,包含名称、语法、选项说明、示例、相关文件等。

  • q 退出
  • / 搜索关键字,n 下一匹配
  • 示例:man ls

2. --help-h – 快速参考

命令名 --help

大多数命令支持该选项,输出简短的用法和常用选项列表,适合快速查阅。
示例:ls --helpgrep -h

3. info – 更详细的文档

info 命令名

提供比 man 更结构化的超文本格式,尤其适用于 GNU 工具(如 targcc)。
q 退出,方向键导航。

4. help – 查看 Shell 内置命令

help 内置命令名

用于查看 Shell 内置命令(如 cdechojobs)的帮助。
示例:help cd

5. type – 判断命令类型

type 命令名

输出命令是内置、外部程序还是别名,从而决定使用哪种帮助方式。
示例:type cdcd is a shell builtin


二、文件与目录操作命令

1. pwd – 显示当前工作目录

pwd

输出当前所在的绝对路径。

2. ls – 列出目录内容

ls [选项] [文件/目录]

常用选项:

  • -l:长格式显示
  • -a:显示隐藏文件
  • -h:人类可读的大小
  • -t:按修改时间排序
  • -R:递归子目录

示例:ls -la

3. cd – 切换目录

cd [目录路径]
  • cd ~:回到主目录
  • cd ..:上一级
  • cd -:返回上次目录

4. mkdir – 创建目录

mkdir [选项] 目录名
  • -p:递归创建多级目录
  • -m:设置权限
    示例:mkdir -p project/src

5. rmdir – 删除空目录

rmdir [选项] 目录名

只能删除空目录,非空需用 rm -r

6. touch – 创建空文件或更新时间戳

touch [选项] 文件名

文件不存在则创建空文件,存在则更新访问和修改时间。

7. cp – 复制文件或目录

cp [选项] 源 目标
  • -r:递归复制目录
  • -i:覆盖前询问
  • -a:归档模式(保留属性)
    示例:cp -r dir1/ dir2/

8. mv – 移动或重命名

mv [选项] 源 目标

在同一目录下是重命名,跨目录是移动。

9. rm – 删除文件或目录

rm [选项] 文件/目录
  • -r:递归删除目录
  • -f:强制删除(危险)
  • -i:交互确认

⚠️ 警告rm -rf 请谨慎使用。

10. ln – 创建链接

ln [选项] 目标 链接名
  • 默认创建硬链接(共享 inode)
  • -s:创建软链接(符号链接)
    示例:ln -s /usr/bin/python3 python

三、文件内容查看与处理

1. cat – 连接并显示文件内容

cat [选项] 文件...
  • -n:显示行号
  • -A:显示所有特殊字符
    示例:cat file1.txt file2.txt > merged.txt

2. tac – 反向显示文件内容

tac [选项] 文件名

常用选项

  • -b:在分隔符之前连接(默认在之后)。
  • -r:将分隔符解释为正则表达式。
  • -s 分隔符:指定字符串作为分隔符(默认是换行符)。

注解
taccat 的反向操作,它将文件按行倒序输出,即最后一行先显示,第一行最后显示。常用于查看最新日志条目(配合 headtail)、反转数据流等场景。如果希望按字节或自定义分隔符反转,可以通过 -s 选项控制。

示例

# 基本用法:反向输出文件内容
tac file.txt

# 查看日志最新部分(先显示最后 10 行,再反向显示)
tail -n 10 app.log | tac

# 使用自定义分隔符(例如按 '---' 分割段落并反向)
tac -s '---' notes.txt

注意事项

  • tac 不是所有 Unix 系统的标准命令,但在 Linux 中通常可用(属于 GNU coreutils)。
  • 若系统没有 tac,可以用 sed '1!G;h;$!d'awk '{a[NR]=$0} END{for(i=NR;i>0;i--) print a[i]}' 模拟。

3. more / less – 分页查看

less 功能更强大,支持上下箭头、搜索(/)、退出(q)。
示例:less /var/log/syslog

4. head / tail – 查看头部或尾部

head -n 20 file.txt
tail -f /var/log/nginx/error.log   # 实时跟踪

5. grep – 文本搜索

grep [选项] 模式 [文件]
  • -i:忽略大小写
  • -r:递归搜索目录
  • -n:显示行号
  • -v:反向匹配
    示例:grep -r "error" /var/log/

6. wc – 统计行、词、字节

wc -l file.txt   # 行数
grep "error" log.txt | wc -l

7. sort – 排序

sort -n -k2 data.txt   # 按第二列数值排序

8. uniq – 去重(常与 sort 结合)

sort list.txt | uniq -c

四、权限与所有者管理

1. chmod – 修改权限

chmod [选项] 模式 文件
  • 符号模式:chmod u+x script.sh
  • 数字模式:chmod 644 file.txt
  • -R:递归修改

2. chown – 修改所有者和组

chown [选项] 所有者[:组] 文件

示例:chown -R www-data:www-data /var/www

3. chgrp – 修改组

4. umask – 设置默认权限掩码

umask 027

五、进程与程序管理

1. ps – 显示进程状态

ps aux        # BSD 风格
ps -ef        # System V 风格
ps aux | grep nginx

2. top / htop – 动态监控

top 实时刷新,按 P 按 CPU 排序,按 M 按内存排序,按 q 退出。

3. kill – 发送信号

kill -15 PID   # 正常终止
kill -9 PID    # 强制杀死
killall -9 firefox

4. jobs, fg, bg – 作业控制

  • jobs:查看后台任务
  • fg %任务编号:调至前台
  • bg %任务编号:放至后台运行

5. &nohup – 后台运行

command &                     # 后台运行(可能随终端关闭而终止)
nohup command > out.log 2>&1 & # 终端关闭后继续运行

6. nice / renice – 调整优先级

nice -n 10 ./task.sh
renice -n 5 -p 12345

六、压缩与打包

1. tar – 打包与解包

tar -cvf archive.tar dir/               # 打包
tar -czvf archive.tar.gz dir/           # 打包并 gzip 压缩
tar -xzvf archive.tar.gz -C /target     # 解压到指定目录

2. gzip / gunzip – 单文件压缩

gzip file.txt      # 生成 file.txt.gz
gunzip file.txt.gz

3. zip / unzip – 跨平台压缩

zip -r project.zip project/
unzip project.zip -d /target

七、其他常用命令

1. find – 查找文件

find . -name "*.log" -type f -mtime -7
find /var -size +100M -exec ls -lh {} \;

2. which / whereis – 查找命令位置

which ls          # /usr/bin/ls
whereis ls        # 显示二进制、源码、手册路径

3. echo – 输出文本

echo "Hello"
echo $PATH