目录
yum / dnf(适用于CentOS/Fedora/RHEL)
文件和目录管理
ls
功能:列出目录内容。
常用选项:
-l
:长格式显示,包括权限、所有者、大小和修改时间。-a
:显示所有文件,包括隐藏文件(以.
开头)。-h
:以人类可读的格式显示文件大小(与-l
结合使用)。-R
:递归列出子目录内容。
示例:
ls -lah /home/user
cd
功能:更改当前工作目录。
用法:
cd [目录路径]
示例:
cd /var/log
cd ~ # 切换到当前用户的主目录
cd .. # 返回上一级目录
pwd
功能:显示当前工作目录的完整路径。
用法:
pwd
示例:
/home/user/Documents
mkdir
功能:创建新目录。
常用选项:
-p
:递归创建目录,即创建多级目录。
示例:
mkdir new_folder
mkdir -p parent_folder/child_folder
rmdir
功能:删除空目录。
示例:
rmdir empty_folder
touch
功能:创建空文件或更新现有文件的时间戳。
示例:
touch newfile.txt
cp
功能:复制文件或目录。
常用选项:
-r
:递归复制目录及其内容。-i
:在覆盖文件前提示确认。-p
:保留文件的属性(权限、时间戳等)。
示例:
cp source.txt destination.txt
cp -r source_folder/ destination_folder/
mv
功能:移动或重命名文件或目录。
示例:
mv oldname.txt newname.txt
mv /path/to/file /new/path/
rm
功能:删除文件或目录。
常用选项:
-r
:递归删除目录及其内容。-f
:强制删除,不提示确认。-i
:删除前提示确认。
示例:
rm file.txt
rm -rf folder_to_delete/
find
功能:在目录结构中搜索文件和目录。
常用选项:
-name
:按名称搜索。-type
:按类型搜索(f:文件,d:目录)。-size
:按大小搜索。-mtime
:按修改时间搜索。
示例:
find /home/user -name "*.txt"
find /var/log -type f -size +10M
locate
功能:快速查找文件或目录(依赖于系统的文件数据库,需定期更新,如通过
updatedb
)。
示例:
locate nginx.conf
tree
功能:以树状图显示目录结构。
示例:
tree /home/user
注意:可能需要先安装,例如在Debian/Ubuntu上:
sudo apt install tree
文件查看与编辑
cat
功能:连接文件并输出到标准输出(通常是终端)。
常用选项:
-n
:为所有输出的行编号。-E
:在每行结尾显示$
符号。示例:
cat file.txt
cat -n file.txt
less
功能:分页查看文件内容,支持向前和向后翻页。
示例:
less largefile.log
常用快捷键:
Space
:下一页b
:上一页/pattern
:搜索模式q
:退出
more
功能:分页查看文件内容(功能较
less
简单)。
示例:
more file.txt
head
功能:显示文件的开头部分。
常用选项:
-n
:指定显示的行数(默认10行)。
示例:
head -n 20 file.txt
tail
功能:显示文件的结尾部分。
常用选项:
-n
:指定显示的行数(默认10行)。-f
:实时监控文件新增内容(如日志文件)。
示例:
tail -n 50 logfile.log
tail -f /var/log/syslog
nano
功能:简单易用的命令行文本编辑器。
示例:
nano file.txt
常用快捷键:
Ctrl + O
:保存Ctrl + X
:退出Ctrl + K
:剪切一行Ctrl + U
:粘贴
vi
/vim
功能:功能强大的命令行文本编辑器,适用于编程和高级编辑。
基本模式:
- 普通模式:默认模式,用于浏览和操作文本。
- 插入模式:编辑文本。
- 命令模式:执行保存、退出等命令。
示例:
vim file.txt
常用命令:
i
:进入插入模式Esc
:返回普通模式:w
:保存文件:q
:退出:wq
:保存并退出:q!
:强制退出不保存
文件权限与所有权
chmod
功能:更改文件或目录的权限。
用法:
chmod [选项] 模式 文件
模式表示:
- 符号模式:
u
(用户)、g
(组)、o
(其他)、a
(所有人) ++
(添加)、-
(移除)、=
(赋值) + 权限(r
、w
、x
)。 - 八进制模式:如
755
,每位表示用户、组、其他的权限。
示例:
chmod u+x script.sh # 给文件所有者添加执行权限
chmod 755 myprogram # 设置权限为rwxr-xr-x
chmod -R 644 /var/www/html # 递归设置权限
chown
功能:更改文件或目录的所有者和/或所属组。
用法:
chown [选项] [新所有者][:新组] 文件
示例:
chown user:group file.txt # 更改所有者为user,所属组为group
chown -R user /var/www/html # 递归更改所有者
chgrp
功能:更改文件或目录的所属组。
用法:
chgrp [选项] 新组 文件
示例:
chgrp developers project/
chgrp -R staff /var/log
文本处理
grep
功能:在文件中搜索匹配的文本模式。
常用选项:
-i
:忽略大小写。-r
/-R
:递归搜索目录。-n
:显示匹配行的行号。-v
:反转匹配,显示不匹配的行。-E
:使用扩展正则表达式。
示例:
grep "error" /var/log/syslog
grep -i "warning" *.log
grep -r "TODO" ./src
awk
功能:强大的文本处理工具,适用于模式扫描和处理。
基本用法:
awk 'pattern {action}' 文件
示例:
# 打印文件的第一列
awk '{print $1}' file.txt
# 打印包含"error"的行的第二列
awk '/error/ {print $2}' log.txt
# 统计文件的行数、单词数和字符数
awk 'END {print NR, NF, length}' file.txt
sed
功能:流编辑器,用于处理和转换文本。
常用用法:
- 替换文本:
s/pattern/replacement/
- 删除行:
d
- 插入行:
i
- 追加行:
a
示例:
# 替换文件中的"foo"为"bar"
sed 's/foo/bar/g' file.txt
# 删除包含"delete"的行
sed '/delete/d' file.txt
# 将修改后的内容保存到新文件
sed 's/foo/bar/g' file.txt > newfile.txt
cut
功能:按列或字符提取文本。
常用选项:
-d
:指定分隔符。-f
:指定要提取的字段。-c
:按字符位置提取。
示例:
# 提取以逗号分隔的第二列
cut -d',' -f2 file.csv
# 提取每行的前10个字符
cut -c1-10 file.txt
sort
功能:对文本行进行排序。
常用选项:
-n
:按数值排序。-r
:逆序排序。-u
:去重后排序。
示例:
sort file.txt
sort -nr numbers.txt
sort -u names.txt
uniq
功能:报告或忽略重复的行。
常用选项:
-c
:计数重复行的出现次数。-d
:仅显示重复的行。-u
:仅显示唯一的行。
示例:
sort file.txt | uniq
sort file.txt | uniq -c
wc
功能:统计字、行、字符数。
常用选项:
-l
:行数。-w
:字数。-c
:字符数。-m
:字节数。
示例:
wc -l file.txt # 行数
wc -w file.txt # 字数
wc -c file.txt # 字符数
wc -lwm file.txt # 行数、字数、字符数
diff
功能:比较两个文件或目录的不同。
常用选项:
-u
:以统一格式显示差异。-r
:递归比较目录。-c
:以上下文格式显示差异。
示例:
diff file1.txt file2.txt
diff -u file1.txt file2.txt
diff -r dir1/ dir2/
patch
功能:根据
diff
生成的补丁文件修改文件。
用法:
patch < patchfile.diff
示例:
diff -u original.txt modified.txt > changes.patch
patch original.txt < changes.patch
系统信息
uname
功能:显示系统信息。
常用选项:
-a
:显示所有信息。-r
:内核版本。-s
:操作系统名称。
示例:
uname -a
uname -r
top
功能:实时显示系统的进程信息和系统资源使用情况。
常用快捷键:
q
:退出。M
:按内存使用排序。P
:按CPU使用排序。k
:杀死进程。
示例:
top
htop
功能:
top
的增强版,提供更友好的用户界面和更多功能。
示例:
htop
注意:可能需要先安装:
sudo apt install htop
ps
功能:显示当前系统的进程信息。
常用选项:
-e
/-A
:显示所有进程。-f
:全格式显示。-u
:按用户过滤。-aux
:显示所有详细信息。
示例:
ps aux
ps -ef
ps -u username
df
功能:显示文件系统的磁盘空间使用情况。
常用选项:
-h
:以人类可读的格式显示。-T
:显示文件系统类型。
示例:
df -h
df -Th
du
功能:估算文件和目录的磁盘使用情况。
常用选项:
-h
:以人类可读的格式显示。-s
:总结。-d
:指定显示目录深度。
示例:
du -h /var/log
du -sh *
du -h -d 1 /home/user
free
功能:显示系统的内存使用情况。
常用选项:
-h
:以人类可读的格式显示。-m
:以MB为单位显示。-g
:以GB为单位显示。
示例:
free -h
uptime
功能:显示系统已运行时间、当前时间、登录用户数和负载平均值。
示例:
uptime
dmesg
功能:显示系统启动信息和内核消息。
常用选项:
-H
:以人类可读的格式显示。-T
:显示时间戳。
示例:
dmesg | less
dmesg -H
进程管理
ps
功能:显示当前系统的进程信息。
示例:
ps aux
ps -ef
top
/htop
功能:实时显示系统的进程信息和系统资源使用情况。
示例:
top
htop
kill
功能:发送信号到指定进程,通常用于终止进程。
用法:
kill [信号] PID
常用信号:
-15
(默认):优雅终止。-9
:强制终止。
示例:
kill 1234
kill -9 1234
killall
功能:根据进程名称发送信号到所有匹配的进程。
用法:
killall [信号] 进程名称
示例:
killall firefox
killall -9 firefox
pkill
功能:根据进程名称或其他属性发送信号到进程。
用法:
pkill [选项] 模式
示例:
pkill firefox
pkill -9 firefox
pkill -u username
bg
功能:将当前暂停的作业放到后台继续运行。
示例:
bg %1
fg
功能:将后台作业调回前台。
示例:
fg %1
jobs
功能:显示当前Shell的作业列表。
示例:
jobs
网络管理
ifconfig
/ip
功能:显示或配置网络接口信息。
ifconfig
示例:
ifconfig
ifconfig eth0 up
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
ip
示例:
ip addr show
ip link set eth0 up
ip addr add 192.168.1.100/24 dev eth0
注意:ip
命令是现代Linux系统中推荐使用的网络管理工具,ifconfig
逐渐被弃用。
ping
功能:测试与目标主机的网络连通性。
用法:
ping [选项] 目标主机
示例:
ping google.com
ping -c 4 192.168.1.1 # 发送4个数据包
netstat
/ss
功能:显示网络连接、路由表和接口统计信息。
netstat
示例:
netstat -tuln # 显示所有监听的TCP和UDP端口
netstat -anp # 显示所有连接及其PID
ss
示例:
ss -tuln
ss -anp
注意:ss
命令是netstat
的现代替代品,速度更快,功能更强大。
ssh
功能:通过SSH协议远程登录到另一台计算机。
用法:
ssh [选项] 用户@主机
示例:
ssh user@192.168.1.100
ssh -p 2222 user@server.com
scp
功能:通过SSH协议在本地主机和远程主机之间复制文件。
用法:
scp [选项] 源 目标
示例:
scp file.txt user@remote:/path/to/destination/
scp -r folder/ user@remote:/path/to/destination/
wget
功能:从网络上下载文件。
常用选项:
-c
:断点续传。-O
:指定输出文件名。-r
:递归下载。
示例:
wget https://example.com/file.zip
wget -c https://example.com/file.zip
wget -O newname.zip https://example.com/file.zip
curl
功能:与服务器进行数据传输,支持多种协议(HTTP, HTTPS, FTP等)。
常用选项:
-O
:保存下载文件。-L
:跟随重定向。-I
:只获取HTTP头部。
示例:
curl -O https://example.com/file.zip
curl -L https://example.com
curl -I https://example.com
ftp
功能:通过FTP协议进行文件传输。
示例:
ftp ftp.example.com
注意:FTP传输未加密,建议使用SFTP或scp
。
dig
功能:查询DNS信息。
示例:
dig example.com
dig MX example.com # 查询MX记录
traceroute
功能:跟踪数据包到目标主机的路径。
示例:
traceroute google.com
注意:可能需要安装:
sudo apt install traceroute
包管理
不同的Linux发行版使用不同的包管理工具,以下是几种常见的包管理工具及其基本用法。
apt
(适用于Debian/Ubuntu及其衍生版)
更新包列表:
sudo apt update
升级已安装的包:
sudo apt upgrade
安装新软件包:
sudo apt install package_name
删除软件包:
sudo apt remove package_name
搜索软件包:
apt search keyword
显示软件包信息:
apt show package_name
yum
/dnf
(适用于CentOS/Fedora/RHEL)
更新包列表:
sudo yum check-update
sudo dnf check-update
升级已安装的包:
sudo yum update
sudo dnf upgrade
安装新软件包:
sudo yum install package_name
sudo dnf install package_name
删除软件包:
sudo yum remove package_name
sudo dnf remove package_name
搜索软件包:
yum search keyword
dnf search keyword
pacman
(适用于Arch Linux及其衍生版)
更新包列表并升级系统:
sudo pacman -Syu
安装新软件包:
sudo pacman -S package_name
删除软件包:
sudo pacman -R package_name
搜索软件包:
pacman -Ss keyword
zypper
(适用于openSUSE)
更新包列表并升级系统:
sudo zypper refresh
sudo zypper update
安装新软件包:
sudo zypper install package_name
删除软件包:
sudo zypper remove package_name
搜索软件包:
zypper search keyword
用户管理
adduser
/useradd
功能:创建新用户。
adduser
示例(更为用户友好):
sudo adduser username
useradd
示例:
sudo useradd -m -s /bin/bash username
sudo passwd username # 设置密码
deluser
/userdel
功能:删除用户。
deluser
示例:
sudo deluser username
userdel
示例:
sudo userdel username
sudo userdel -r username # 删除用户及其主目录
usermod
功能:修改用户信息。
常用选项:
-aG
:将用户添加到附加组。-s
:更改登录Shell。-d
:更改主目录。
示例:
sudo usermod -aG sudo username # 将用户添加到sudo组
sudo usermod -s /bin/zsh username # 更改用户的Shell
sudo usermod -d /new/home username # 更改用户的主目录
passwd
功能:更改用户密码。
示例:
passwd # 修改当前用户的密码
sudo passwd username # 修改指定用户的密码
su
功能:切换用户。
用法:
su [选项] [用户名]
示例:
su - # 切换到root用户
su - username # 切换到指定用户
sudo
功能:以超级用户或其他用户身份执行命令。
示例:
sudo apt update
sudo systemctl restart nginx
配置:通过编辑/etc/sudoers
文件或使用visudo
命令进行配置,允许特定用户或组使用sudo
。
磁盘管理
fdisk
功能:磁盘分区工具。
用法:
sudo fdisk /dev/sdX
常用操作:
m
:显示帮助。n
:新建分区。d
:删除分区。p
:显示分区表。w
:保存更改并退出。
示例:
sudo fdisk /dev/sda
mkfs
功能:创建文件系统。
常用文件系统类型:
mkfs.ext4
:创建ext4文件系统。mkfs.xfs
:创建XFS文件系统。mkfs.vfat
:创建FAT32文件系统。
示例:
sudo mkfs.ext4 /dev/sda1
sudo mkfs.xfs /dev/sda2
mount
功能:挂载文件系统。
用法:
sudo mount [选项] 设备 挂载点
示例:
sudo mount /dev/sda1 /mnt
sudo mount -t ext4 /dev/sda1 /mnt
umount
功能:卸载文件系统。
用法:
sudo umount 挂载点或设备
示例:
sudo umount /mnt
sudo umount /dev/sda1
lsblk
功能:列出所有块设备的信息。
示例:
lsblk
lsblk -f # 显示文件系统类型
blkid
功能:显示或查找块设备的属性,如UUID和文件系统类型。
示例:
sudo blkid
df
和du
df
:显示文件系统的磁盘空间使用情况。
示例:
df -h
du
:估算文件和目录的磁盘使用情况。
示例:
du -sh /home/user
du -h -d 1 /var
压缩与归档
tar
功能:创建和提取归档文件。
常用选项:
-c
:创建归档。-x
:提取归档。-v
:显示过程。-f
:指定归档文件。-z
:使用gzip压缩。-j
:使用bzip2压缩。
示例:
# 创建tar.gz归档
tar -czvf archive.tar.gz /path/to/directory
# 提取tar.gz归档
tar -xzvf archive.tar.gz
# 创建tar.bz2归档
tar -cjvf archive.tar.bz2 /path/to/directory
# 提取tar.bz2归档
tar -xjvf archive.tar.bz2
gzip
/gunzip
功能:压缩和解压缩文件。
示例:
gzip file.txt # 压缩为file.txt.gz
gunzip file.txt.gz # 解压缩
bzip2
/bunzip2
功能:使用bzip2算法压缩和解压缩文件,通常比gzip有更好的压缩率。
示例:
bzip2 file.txt # 压缩为file.txt.bz2
bunzip2 file.txt.bz2 # 解压缩
zip
/unzip
功能:创建和解压缩ZIP格式的压缩文件。
示例:
zip archive.zip file1.txt file2.txt
unzip archive.zip
注意:可能需要先安装:
sudo apt install zip unzip
其他常用命令
echo
功能:在终端输出文本或变量的值。
示例:
echo "Hello, World!"
echo $HOME
date
功能:显示或设置系统日期和时间。
示例:
date
date +"%Y-%m-%d %H:%M:%S"
history
功能:显示Shell命令历史。
示例:
history
history | grep ssh
alias
功能:为命令创建别名。
用法:
alias 别名='实际命令'
示例:
alias ll='ls -lah'
alias gs='git status'
注意:将别名添加到~/.bashrc
或~/.zshrc
以使其永久生效。
crontab
功能:定时任务调度工具。
常用用法:
crontab -e
:编辑当前用户的crontab。crontab -l
:列出当前用户的crontab。crontab -r
:删除当前用户的crontab。
示例:
crontab -e
示例任务(每晚2点备份):
0 2 * * * /usr/bin/rsync -av /home/user /backup/
chmod
/ chown
功能:更改文件权限和所有权(已在文件权限与所有权章节中详细介绍)。
sudo
功能:以超级用户或其他用户身份执行命令(已在用户管理章节中详细介绍)。