Linux 命令行的核心能力不是记住所有参数,而是掌握 “路径、文件、文本、进程、权限、帮助” 几类基本操作。遇到不熟悉的命令时,应优先查帮助并在安全目录中试验。

# 命令基本格式

一般格式:

1
command [options] [arguments]

示例:

1
ls -la /etc

含义:

  • ls :命令。
  • -la :选项,等价于 -l -a
  • /etc :参数,表示要查看的目录。

常见帮助方式:

1
2
3
4
command --help
man command
type command
which command

例子:

1
2
3
4
ls --help
man ls
type cd
which python

type 可以判断一个名字是 Shell 内建命令、别名、函数,还是外部可执行文件。

# 路径与目录命令

# pwd :显示当前目录

1
pwd

pwd 是 print working directory 的缩写,用于确认当前工作目录。

# cd :切换目录

1
2
3
4
cd /etc
cd ..
cd ~
cd -

常见用法:

命令含义
cd /etc切换到绝对路径 /etc
cd ..返回上一级目录
cd ~返回当前用户家目录
cd -回到上一次所在目录

路径类型:

1
2
cd /usr/local/bin   # 绝对路径
cd ../logs # 相对路径

绝对路径从 / 开始,相对路径从当前目录开始。

# ls :列出目录内容

1
2
3
4
5
6
ls
ls -l
ls -a
ls -lh
ls -R
ls /etc

常用选项:

选项含义
-l长格式显示权限、所有者、大小、时间
-a显示隐藏文件
-h-l 配合,以 KB/MB/GB 显示大小
-R递归列出子目录
-t按修改时间排序

示例:

1
ls -lah

隐藏文件以 . 开头,例如 .bashrc.ssh

# mkdir :创建目录

1
2
mkdir notes
mkdir -p projects/linux/logs

-p 表示父目录不存在时一并创建。

# rmdir :删除空目录

1
rmdir empty_dir

rmdir 只能删除空目录。删除非空目录通常使用 rm -r ,但这是破坏性操作,必须确认路径。

# 文件创建与查看

# touch :创建空文件或更新时间

1
2
touch note.txt
touch a.txt b.txt

如果文件不存在, touch 创建空文件;如果文件已存在,更新时间戳。

# cat :输出文件内容

1
2
cat note.txt
cat a.txt b.txt

cat 适合查看短文件或拼接文件。长文件不建议直接 cat ,容易刷屏。

# less :分页查看文件

1
less /var/log/syslog

常用操作:

按键含义
Space下一页
b上一页
/keyword搜索
n下一个匹配
q退出

# headtail

1
2
3
4
5
head file.txt
head -n 20 file.txt
tail file.txt
tail -n 50 file.txt
tail -f app.log

tail -f 常用于实时观察日志。

# 文件复制、移动与删除

# cp :复制

1
2
3
cp source.txt backup.txt
cp -r dir1 dir2
cp -i source.txt target.txt

常用选项:

选项含义
-r递归复制目录
-i覆盖前询问
-v显示过程
-a归档模式,尽量保留权限、时间等属性

# mv :移动或重命名

1
2
mv old.txt new.txt
mv file.txt /tmp/

mv 可以移动文件,也可以改名。

# rm :删除

1
2
3
rm file.txt
rm -i file.txt
rm -r dir

危险命令示例:

1
2
rm -rf /
rm -rf *

rm 删除后通常不会进入回收站。使用 rm -rrm -f 前必须确认当前目录和目标路径。

# 文本搜索与处理

# grep :按内容搜索

1
2
3
4
grep "error" app.log
grep -i "error" app.log
grep -n "error" app.log
grep -R "TODO" src/

常用选项:

选项含义
-i忽略大小写
-n显示行号
-R递归搜索目录
-v反向匹配
-E使用扩展正则

# wc :统计

1
2
3
4
wc file.txt
wc -l file.txt
wc -w file.txt
wc -c file.txt

含义:

  • -l :行数。
  • -w :单词数。
  • -c :字节数。

# sortuniq

1
2
3
sort names.txt
sort names.txt | uniq
sort names.txt | uniq -c

uniq 只能合并相邻重复行,所以通常先 sortuniq

# 管道与重定向

# 管道

管道把前一个命令的标准输出交给后一个命令作为标准输入:

1
2
3
ps aux | grep nginx
grep "404" access.log | wc -l
cat names.txt | sort | uniq -c

# 输出重定向

1
2
echo "hello" > hello.txt
echo "world" >> hello.txt

区别:

写法含义
>覆盖写入
>>追加写入

# 错误重定向

1
2
command 2> error.log
command > output.log 2>&1

2> 表示重定向标准错误。

# 进程命令

# ps :查看进程

1
2
3
ps
ps aux
ps -ef

常见字段:

字段含义
USER进程所属用户
PID进程编号
%CPUCPU 占用
%MEM内存占用
COMMAND启动命令

查找指定进程:

1
ps aux | grep nginx

# top :动态查看系统状态

1
top

常用操作:

  • q :退出。
  • P :按 CPU 排序。
  • M :按内存排序。

# kill :发送信号

1
2
kill PID
kill -9 PID

默认发送 TERM 信号,允许进程清理后退出。 -9KILL ,强制终止,通常作为最后手段。

# 后台任务

1
2
3
4
command &
jobs
fg
bg

& 将命令放到后台执行, jobs 查看当前 Shell 的后台任务。

# 权限相关命令

# chmod :修改权限

1
2
3
chmod u+x script.sh
chmod 755 script.sh
chmod 644 notes.txt

数字权限:

数字权限
4read
2write
1execute

常见组合:

权限含义
755所有者可读写执行,其他人可读执行
644所有者可读写,其他人只读
600只有所有者可读写

# chown :修改所有者

1
2
sudo chown alice file.txt
sudo chown alice:dev file.txt

# sudo :以授权身份执行

1
2
sudo command
sudo -l

sudo -l 查看当前用户可执行的授权命令。

# 系统信息命令

1
2
3
4
5
6
7
8
uname -a
hostname
whoami
id
df -h
du -sh *
free -h
uptime

常见用途:

命令用途
uname -a查看内核和系统信息
whoami查看当前用户名
id查看 UID、GID、所属组
df -h查看文件系统磁盘空间
du -sh *查看当前目录下各项大小
free -h查看内存
uptime查看运行时间和负载

# 压缩与归档

# tar

打包:

1
tar -cf archive.tar dir/

解包:

1
tar -xf archive.tar

打包并 gzip 压缩:

1
tar -czf archive.tar.gz dir/

解压 gzip 包:

1
tar -xzf archive.tar.gz

常用选项:

选项含义
-c创建归档
-x解开归档
-f指定文件名
-z使用 gzip
-v显示过程

# 网络基础命令

1
2
3
4
ip addr
ping example.com
curl https://example.com
ss -tulnp

用途:

命令用途
ip addr查看网络接口和 IP 地址
ping测试网络连通性
curl发送 HTTP 请求或下载内容
ss -tulnp查看监听端口和进程

ss 常用于排查端口占用:

1
sudo ss -tulnp | grep 80

# 命令组合示例

# 统计日志中 404 次数

1
grep " 404 " access.log | wc -l

# 查看当前目录最大文件

1
du -sh * | sort -h

# 找出占用内存较高的进程

1
ps aux | sort -k4 -nr | head

# 实时查看服务日志中的错误

1
tail -f app.log | grep -i "error"

# 初学者常见误区

  • 不确认当前目录就执行 rm -r
  • cat 当作查看大日志的工具,导致终端刷屏。
  • 不区分 >>> ,误覆盖文件。
  • 遇到权限问题就盲目 sudo ,没有先理解文件所有者和权限。
  • 只背命令,不会查 man--help
  • 把管道和重定向混淆。

建议养成习惯:

1
2
3
pwd
ls -lah
command --help

先确认环境,再执行修改性命令。

更新于

请我喝[茶]~( ̄▽ ̄)~*

梦前辈 微信支付

微信支付

梦前辈 支付宝

支付宝