小小白祈祷中...

引言

Linux 是一个功能强大的操作系统,广泛应用于服务器、开发和日常计算中。掌握 Linux 的基本命令,不仅能提高工作效率,还能帮助用户更好地管理系统和解决问题。

本文将详细介绍一些常用的 Linux 命令,涵盖文件和目录操作、系统信息、网络管理、权限管理等多个方面,帮助更深入地了解和使用 Linux。

请注意,由于不同 Linux 子系统的操作命令有所差异,本文所有命令在下述系统中测试通过:

1
2
3
4
5
6
7
8
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"

# 文件和目录操作命令

ls

列出目录内容。

1
2
3
4
5
6
ls                      # 列出当前目录的文件和子目录
ls -l # 以长格式(详细信息)列出文件
ls -a # 列出所有文件,包括隐藏文件(以 "." 开头)
ls -h # 配合 -l 选项,以人类可读的格式显示文件大小
ls -R # 递归列出子目录内容
ls /path/to/directory # 列出指定目录的内容

cd

切换目录。

1
2
3
4
cd /path/to/directory    # 切换到指定目录
cd .. # 返回上一级目录
cd ~ # 切换到当前用户的主目录
cd - # 切换到上次所在的目录

pwd

显示用户当前的工作目录。

1
pwd			# 显示用户当前的工作目录

mkdir

创建新目录。

1
2
mkdir new_directory         # 创建名为 `new_directory` 的目录
mkdir -p dir1/dir2/dir3 # 递归创建多级目录(父目录不存在时一起创建)

rmdir

删除空目录。

1
rmdir empty_directory       # 删除名为 `empty_directory` 的空目录

rm

删除文件或目录。

1
2
3
4
rm file.txt                 # 删除文件
rm -r directory_name # 递归删除目录及其内容
rm -f file.txt # 强制删除文件,不提示确认
rm -rf directory_name # 强制递归删除目录及其内容

cp

复制文件或目录。

1
2
3
4
cp source.txt destination.txt          # 复制文件
cp -r source_directory/ destination/ # 递归复制目录
cp -p source.txt destination.txt # 保留文件的原始权限、时间戳等属性
cp -i source.txt destination.txt # 提示确认后再覆盖目标文件

mv

移动或重命名文件或目录。

1
2
3
mv old_name.txt new_name.txt           # 重命名文件
mv file.txt /path/to/directory/ # 移动文件到指定目录
mv -i old_name.txt new_name.txt # 提示确认后再覆盖目标文件

touch

创建空文件或更新文件的时间戳。

1
2
3
touch newfile.txt                     # 创建一个空文件
touch -c file.txt # 仅更新文件时间戳,文件不存在时不创建
touch -t 202401011200 file.txt # 设置文件时间为指定时间(格式:[[CC]YY]MMDDhhmm[.ss])

文件查看和编辑命令

cat

Concatenate,主要用于显示文件内容、将文件内容合并输出到标准输出或其他文件中。

1
2
3
cat file.txt                          # 显示文件内容
cat file1.txt file2.txt > merged.txt # 合并文件
cat -n file.txt # 显示行号

less

分页查看文件内容。

1
less file.txt                         # 分页查看文件内容,支持上下移动

快捷键:

  • q:退出
  • F:实时刷新内容(适用于查看日志文件)
  • /pattern:搜索匹配的字符串

查看文件的前几行。

1
2
head -n 10 file.txt                   # 查看文件的前 10 行
head file.txt # 默认显示前 10 行

tail

查看文件的后几行。

1
2
tail -n 10 file.txt                   # 查看文件的后 10 行
tail -f file.txt # 持续输出文件新增的内容(常用于查看日志)

nano / vim

文本编辑器。

1
2
nano file.txt                         # 使用 nano 编辑文件
vim file.txt # 使用 vim 编辑文件

文件搜索和查找命令

find

在指定目录中查找文件。

1
2
3
4
5
6
find /path/to/directory -name "filename.txt"   # 按名称查找文件
find . -type d -name "mydir" # 查找名为 "mydir" 的目录
find / -size +1M # 查找大于 1MB 的文件
find / -perm 755 # 查找权限为 755 的文件
find / -mtime -7 # 查找过去 7 天内修改的文件
find / -user username # 查找属于指定用户的文件

locate

快速查找文件。

1
2
locate filename.txt       # 查找文件
updatedb # 更新数据库(需要 root 权限)

grep

在文件中搜索特定字符串。

1
2
3
4
5
grep "search_term" file.txt                   # 在文件中查找字符串
grep -r "search_term" /path/to/directory # 递归搜索目录中的文件
grep -i "term" file.txt # 忽略大小写
grep -v "term" file.txt # 排除包含 "term" 的行
grep -n "term" file.txt # 显示匹配行的行号

网络命令

ping

测试网络连接。

1
2
ping www.example.com           # 连续发送网络数据包
ping -c 5 www.example.com # 仅发送 5 个数据包

netstat

显示网络连接状态。

1
2
netstat -a             # 显示所有连接
netstat -tuln # 显示监听的端口

curl

从网络上获取数据。

1
2
3
curl http://www.example.com                 # 下载网页内容并显示
curl -O http://example.com/file.zip # 下载文件
curl -I http://example.com # 显示响应头信息

任务调度

crontab

定时任务管理。

1
2
3
crontab -e      # 编辑当前用户的定时任务
crontab -l # 查看当前用户的定时任务
crontab -r # 删除当前用户的定时任务

Cron 格式:

1
2
3
4
5
6
7
8
*  *  *  *  * command
- - - - -
| | | | |
| | | | +---- 星期几 (0 - 7) (0 和 7 都表示周日)
| | | +------- 月份 (1 - 12)
| | +---------- 日期 (1 - 31)
| +------------- 小时 (0 - 23)
+---------------- 分钟 (0 - 59)

示例:

1
0 5 * * * /path/to/script.sh       # 每天早上5点执行脚本

结论

掌握这些 Linux 命令,可以帮助你更高效地管理文件、监控系统、进行网络操作和任务调度。通过不断实践,你可以逐步深入了解 Linux 的强大功能并灵活运用到实际工作中。