菜鸟科技网

Linux日常命令有哪些常用技巧?

文件和目录操作

这是最常用、最核心的命令,几乎每天都会用到。

Linux日常命令有哪些常用技巧?-图1
(图片来源网络,侵删)

ls (List)

# 列出当前目录下的文件和文件夹
ls
# 列出详细信息(权限、所有者、大小、修改日期等)
ls -l
# 列出所有文件,包括以 . 开头的隐藏文件
ls -a
# 结合 -l 和 -a,显示隐藏文件的详细信息
ls -la
# 按文件大小排序,从大到小(-h 以人类可读格式显示大小,如 K, M, G)
ls -lhS
# 按修改时间排序,最新的在最前面
ls -lt

cd (Change Directory)

切换当前工作目录。

# 进入用户主目录 (等同于 cd ~)
cd
# 进入指定目录
cd /var/log
# 进入上一级目录
cd ..
# 进入当前用户的家目录
cd ~
# 进入上一个工作目录
cd -

pwd (Print Working Directory)

显示当前所在的完整路径。

pwd
# 输出: /home/username

cp (Copy)

复制文件或目录。

# 复制文件 file1.txt 到 file2.txt
cp file1.txt file2.txt
# 复制文件到另一个目录
cp file1.txt /path/to/directory/
# 复制整个目录(需要加上 -r 或 -R 递归选项)
cp -r /path/to/source_dir /path/to/destination_dir

mv (Move)

移动文件或目录,也用于重命名。

Linux日常命令有哪些常用技巧?-图2
(图片来源网络,侵删)
# 移动文件到另一个目录
mv file1.txt /path/to/directory/
# 重命名文件
mv old_name.txt new_name.txt
# 移动并重命名
mv /path/to/file1.txt /path/to/new_location/file2.txt
# 强制覆盖,不提示(谨慎使用!)
mv -f file1.txt file2.txt

rm (Remove)

删除文件或目录。

# 删除文件
rm file1.txt
# 强制删除,不提示(非常危险!)
rm -f file1.txt
# 递归删除目录及其下所有内容(同样危险!)
rm -r directory_name
# 递归删除并强制,删除目录时不逐一确认(极度危险!)
rm -rf directory_name

警告: rm -rf 是 Linux 中最危险的命令之一,一旦执行无法恢复,请务必小心使用。

mkdir (Make Directory)

创建新目录。

# 创建一个新目录
mkdir new_folder
# 创建多级嵌套目录(-p 确保父目录存在,不存在则创建)
mkdir -p path/to/nested/directory

touch

创建一个空文件,或更新已有文件的时间戳。

Linux日常命令有哪些常用技巧?-图3
(图片来源网络,侵删)
# 创建一个空文件
touch new_file.txt

cat (Concatenate)通常用于小文件。

# 在终端中显示 file.txt 的全部内容
cat file.txt
# 将 file1.txt 和 file2.txt 的内容合并并输出到 screen.txt
cat file1.txt file2.txt > screen.txt

less / more

分页查看文件内容,适用于大文件。

  • less 功能更强大,可以前后翻页、搜索等,推荐使用。
  • more 功能较简单,只能向后翻。
    # 使用 less 查看 file.txt,按 q 退出
    less file.txt

在 less 中搜索: 输入 / 关键词,然后按 n 查找下一个,N 查找上一个


#### 11. `head` / `tail`
查看文件的开头或结尾部分。
```bash
# 查看文件的前 10 行
head file.txt
# 查看文件的前 20 行
head -n 20 file.txt
# 查看文件的最后 10 行
tail file.txt
# 查看文件的最后 20 行
tail -n 20 file.txt
# 实时查看文件的最新内容(常用于查看日志)
tail -f /var/log/syslog

find

在目录树中搜索文件。

# 在当前目录及其子目录下查找所有名为 file.txt 的文件
find . -name "file.txt"
# 在 /home 目录下查找所有 .log 文件
find /home -name "*.log"
# 查找过去 7 天内被修改过的文件
find . -mtime -7
# 查找大于 100MB 的文件
find . -type f -size +100M

文本处理

grep (Global Regular Expression Print)

在文本中搜索匹配的行。

# 在 file.txt 中搜索包含 "error" 的行
grep "error" file.txt
# 搜索时忽略大小写
grep -i "Error" file.txt
# 显示匹配行的行号
grep -n "error" file.txt
# 递归地在当前目录的所有文件中搜索
grep -r "error" .

sed (Stream Editor)

流编辑器,用于对文本进行替换、删除、插入等操作。

# 将 file.txt 中所有的 "old" 替换为 "new"(注意:这会直接修改文件,建议先用 -i.bak 备份)
sed 's/old/new/g' file.txt
# 安全替换:先备份原文件为 file.txt.bak,再修改
sed -i.bak 's/old/new/g' file.txt
# 删除所有包含 "temp" 的行
sed '/temp/d' file.txt

awk

强大的文本分析工具,按列处理文本。

# 打印 file.txt 的第一列
awk '{print $1}' file.txt
# 打印文件中所有包含 "error" 的行的第二列
awk '/error/ {print $2}' file.txt
# 计算文件第一列的总和
awk '{sum += $1} END {print sum}' file.txt

系统信息与管理

top / htop

实时查看系统进程和资源使用情况。

  • top: 基础版,交互式界面,按 q 退出。
  • htop: 更强大的版本,彩色显示,更直观,很多系统默认未安装,需用 sudo apt install htop (Ubuntu/Debian) 或 sudo yum install htop (CentOS/RHEL) 安装。

ps (Process Status)

查看当前运行的进程。

# 显示当前用户的所有进程
ps
# 显示所有进程的详细信息
ps -ef
# 显示所有进程,并以树状结构显示它们的父子关系
ps -ef --forest

kill / pkill

终止进程。

# 通过 PID (进程ID) 终止进程
kill 12345
# 强制终止进程
kill -9 12345
# 根据进程名终止进程
pkill -f nginx

df (Disk Free)

查看磁盘空间使用情况。

# 查看所有文件系统的磁盘使用情况
df -h  # -h 表示以人类可读格式显示 (K, M, G)

du (Disk Usage)

查看目录或文件的磁盘使用量。

# 查看当前目录下每个子目录的大小
du -h
# 查看当前目录的总大小
du -sh  # -s 表示总结

free

查看内存使用情况。

# 查看内存使用情况,-h 以人类可读格式显示
free -h

uname (Unix Name)

显示系统信息。

# 显示所有信息
uname -a
# 只显示内核名称
uname -s

history

查看命令历史记录。

# 显示最近使用的 1000 条命令
history
# 执行历史命令中的第 42 条命令
!42

网络相关

ping

测试网络连通性。

# 测试与 baidu.com 的网络连通性
ping baidu.com
# 按 Ctrl+C 停止

ifconfig / ip

查看和配置网络接口。

  • ifconfig: 传统命令,在一些新系统中可能被 ip 替代。
  • ip: 现代命令,功能更强大。
# 查看所有网络接口的 IP 地址信息
ip addr show
# 查看网络路由表
ip route show

netstat / ss

查看网络连接、路由表、接口统计等。

  • ssnetstat 的现代替代品,更快、信息更全。
# 查看所有监听的端口
netstat -tuln
# 使用 ss 查看,更推荐
ss -tuln
# 查看所有与某个进程相关的网络连接
ss -tulnp | grep nginx

curl / wget

从网络下载文件。

  • curl: 功能更丰富,可以与服务器进行更多交互。
  • wget: 更专注于下载,支持断点续传。
# 下载网页内容到 stdout
curl http://example.com
保存到文件
curl -o example.html http://example.com
# 下载文件
wget http://example.com/file.zip

用户和权限管理

chmod (Change Mode)

修改文件或目录的权限。

  • r (read) = 4
  • w (write) = 2
  • x (execute) = 1
  • u (user), g (group), o (others), a (all)
# 给文件所有者添加执行权限
chmod u+x script.sh
# 移除其他用户的写权限
chmod o-w file.txt
# 使用数字设置权限:所有者(rw-) = 4+2=6, 组(r--) = 4, 其他(r--) = 4
chmod 644 file.txt  # 最常见的文件权限
# 给所有用户添加读、写、执行权限
chmod 777 directory_name # 非常危险,请谨慎使用

chown (Change Owner)

修改文件或目录的所有者。

# 将 file.txt 的所有者改为 user1
sudo chown user1 file.txt
# 将 file.txt 的所有者和所属组都改为 user1
sudo chown user1:user1 file.txt

sudo (Superuser Do)

以超级用户(root)的身份执行命令。

# 以 root 身份执行更新命令
sudo apt update

su (Switch User)

切换用户。

# 切换到 root 用户
su -
# 切换到其他用户 user1
su - user1

软件包管理

不同发行版使用不同的包管理器。

Debian / Ubuntu (使用 apt)

# 更新软件包列表
sudo apt update
# 升级所有已安装的软件包
sudo apt upgrade
# 安装软件包
sudo apt install package_name
# 删除软件包
sudo apt remove package_name
# 搜索软件包
apt search package_name

CentOS / RHEL / Fedora (使用 yumdnf)

# 更新软件包缓存 (yum)
sudo yum check-update
# 升级所有软件包 (yum)
sudo yum update
# 安装软件包 (yum)
sudo yum install package_name
# 更新软件包缓存 (dnf)
sudo dnf check-update
# 升级所有软件包 (dnf)
sudo dnf update
# 安装软件包 (dnf)
sudo dnf install package_name

压缩与解压

tar

打包或解包文件,通常与 gzip/bzip2/xz 结合使用。

# 打包 directory_name 成 archive.tar
tar -cvf archive.tar directory_name
# 解包 archive.tar
tar -xvf archive.tar
# 打包并使用 gzip 压缩 (最常用)
tar -czvf archive.tar.gz directory_name
# 解包 .tar.gz 文件
tar -xzvf archive.tar.gz
# 打包并使用 bzip2 压缩
tar -cjvf archive.tar.bz2 directory_name
# 解包 .tar.bz2 文件
tar -xjvf archive.tar.bz2

记忆口诀:

  • c: 创建 (Create)
  • x: 解压 (eXtract)
  • v: 显示过程 (Verbose)
  • f: 指定文件名 (File)
  • z: gzip
  • j: bzip2
  • J: xz

zip / unzip

处理 .zip 格式的压缩文件。

# 将 directory_name 压缩为 archive.zip
zip -r archive.zip directory_name
# 解压 archive.zip
unzip archive.zip

进程与任务管理

nohup

让命令在后台持续运行,即使用户退出登录。

# 运行 script.sh,并将输出重定向到 nohup.out,即使退出终端,脚本也会继续运行
nohup ./script.sh &

jobs

查看当前终端后台运行的任务。

# 查看后台任务
jobs
# 将后台任务调到前台
fg %1  # %1 是任务ID

搜索与查找

which

查找可执行文件的位置。

# 查找 ls 命令的路径
which ls

whereis

查找二进制文件、源码和手册页的位置。

# 查找 ls 的相关信息
whereis ls

关机与重启

# 立即关机
sudo shutdown now
# 在指定时间关机 (10 分钟后)
sudo shutdown +10
# 取消计划关机
sudo shutdown -c
# 立即重启
sudo reboot
# 关闭系统并切断电源
sudo halt

总结与建议

  • 多练习: 命令行的精髓在于“用”,每天尝试用命令来完成一些简单的操作,比如创建文件、移动文件等。
  • 善用 man: 遇到不熟悉的命令,使用 man command_name (man ls) 查看它的官方手册页,这是最权威的参考资料。
  • 善用 Tab: 输入命令或文件名的前几个字母,然后按 Tab 键可以自动补全,大大提高效率。
  • 组合使用: Linux 命令的强大之处在于它们可以通过管道符 连接起来,实现复杂的功能。ps aux | grep nginx 可以用来查找 nginx 相关的进程。

希望这份清单对你有帮助!祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇