目录
1. 文件和目录管理
ls
- 列出目录内容
ls
:列出当前目录下的文件和目录。ls -l
:以长格式列出文件和目录,显示文件类型、权限、所有者、组、大小、修改日期和时间以及文件名。ls -a
:列出所有文件,包括隐藏文件(以.
开头的文件)。ls -la
:以长格式列出所有文件,包括隐藏文件。ls -R
:递归列出目录及其子目录的内容。
示例:
ls # 列出当前目录下的文件和目录
ls -l # 以长格式列出文件和目录
ls -a # 列出所有文件,包括隐藏文件
ls -la # 以长格式列出所有文件,包括隐藏文件
ls -R /path/to/directory # 递归列出指定目录及其子目录的内容
cd
- 更改目录
cd /path/to/directory
:切换到指定目录。cd ..
:返回上一级目录。cd ~
:返回用户主目录。cd -
:返回上次所在的目录。
示例:
cd /home/user/documents # 切换到指定目录
cd .. # 返回上一级目录
cd ~ # 返回用户主目录
cd - # 返回上次所在的目录
pwd
- 显示当前工作目录
pwd
:显示当前工作目录的路径。
示例:
pwd # 显示当前工作目录的路径
mkdir
- 创建目录
mkdir new_directory
:创建一个新目录。mkdir -p path/to/new_directory
:递归创建多级目录,如果中间的目录不存在也会被创建。
示例:
mkdir new_directory # 创建一个新目录
mkdir -p path/to/new_directory # 递归创建多级目录
rmdir
- 删除空目录
rmdir empty_directory
:删除一个空目录。
示例:
rmdir empty_directory # 删除一个空目录
rm
- 删除文件或目录
rm file.txt
:删除文件。rm -r directory
:递归删除目录及其内容。rm -rf directory
:强制递归删除目录及其内容(危险操作,不提示确认)。
示例:
rm file.txt # 删除文件
rm -r directory # 递归删除目录
rm -rf directory # 强制递归删除目录
cp
- 复制文件或目录
cp file.txt new_file.txt
:复制文件。cp -r directory new_directory
:递归复制目录及其内容。
示例:
cp file.txt new_file.txt # 复制文件
cp -r directory new_directory # 递归复制目录
mv
- 移动或重命名文件或目录
mv file.txt new_file.txt
:重命名文件。mv file.txt /path/to/new_location
:移动文件到新的位置。
示例:
mv file.txt new_file.txt # 重命名文件
mv file.txt /path/to/new_location # 移动文件
touch
- 创建空文件或更新文件的时间戳
touch new_file.txt
:创建一个空文件。touch existing_file.txt
:更新现有文件的访问和修改时间戳。
示例:
touch new_file.txt # 创建一个空文件
touch existing_file.txt # 更新现有文件的时间戳
2. 文件内容查看
cat
- 连接并显示文件内容
cat file.txt
:显示文件内容。cat file1.txt file2.txt > combined.txt
:将多个文件内容合并到一个新文件中。
示例:
cat file.txt # 显示文件内容
cat file1.txt file2.txt > combined.txt # 将多个文件内容合并到一个新文件
more
- 分页显示文件内容
more file.txt
:分页显示文件内容,按回车键逐行显示,按空格键逐屏显示。
示例:
more file.txt # 分页显示文件内容
less
- 分页显示文件内容(功能比 more
更强大)
less file.txt
:分页显示文件内容,支持向前和向后翻页,按q
键退出。
示例:
less file.txt # 分页显示文件内容
head
- 显示文件的前几行
head -n 10 file.txt
:显示文件的前10行。
示例:
head -n 10 file.txt # 显示文件的前10行
tail
- 显示文件的后几行
tail -n 10 file.txt
:显示文件的后10行。tail -f file.txt
:实时显示文件的新增内容,常用于查看日志文件。
示例:
tail -n 10 file.txt # 显示文件的后10行
tail -f /var/log/syslog # 实时显示系统日志文件的新增内容
3. 文件搜索
grep
- 在文件中搜索指定文本
grep "search_term" file.txt
:在文件中搜索指定文本。grep -r "search_term" /path/to/search
:递归搜索目录中的文件,查找包含指定文本的文件。
示例:
grep "error" file.txt # 在文件中搜索 "error" 文本
grep -r "error" /var/log # 递归搜索 /var/log 目录中的文件,查找包含 "error" 文本的文件
find
- 在文件系统中查找文件和目录
find /path/to/search -name "file_pattern"
:按名称查找文件。find /path/to/search -type d -name "directory_pattern"
:按名称查找目录。find /path/to/search -size +1M
:查找大于1MB的文件。
示例:
find /home/user -name "*.txt" # 在 /home/user 目录中查找扩展名为 .txt 的文件
find /home/user -type d -name "backup*" # 在 /home/user 目录中查找名称以 "backup" 开头的目录
find / -size +100M # 查找根目录下大于100MB的文件
4. 文件权限管理
chmod
- 修改文件或目录的权限
chmod 755 file.txt
:修改文件权限为755(所有者可读写执行,组用户和其他用户可读执行)。chmod u+x file.txt
:给文件所有者增加执行权限。
示例:
chmod 755 script.sh # 修改脚本文件的权限为755
chmod u+x script.sh # 给脚本文件所有者增加执行权限
chown
- 修改文件的所有者
chown user:group file.txt
:修改文件的所有者和组。
示例:
chown john:users file.txt # 将文件的所有者修改为 john,组修改为 users
chgrp
- 修改文件的所属组
chgrp group file.txt
:修改文件的所属组。
示例:
chgrp admin file.txt # 将文件的所属组修改为 admin
5. 系统管理
ps
- 显示当前运行的进程
ps aux
:显示所有进程的详细信息,包括进程ID、用户、CPU和内存使用率、启动时间和命令行。
示例:
ps aux | grep ssh # 显示所有与 ssh 相关的进程
top
- 动态显示系统资源使用情况
top
:动态显示系统资源使用情况,包括CPU和内存使用率、进程信息等。
示例:
top # 动态显示系统资源使用情况
kill
- 终止进程
kill process_id
:终止指定进程。kill -9 process_id
:强制终止指定进程(不建议频繁使用,可能导致数据丢失)。
示例:
kill 12345 # 终止进程ID为 12345 的进程
kill -9 12345 # 强制终止进程ID为 12345 的进程
shutdown
和 reboot
- 关机和重启
shutdown -h now
:立即关机。reboot
:重启系统。
示例:
shutdown -h now # 立即关机
reboot # 重启系统
6. 网络管理
ifconfig
和 ip
- 查看和配置网络接口信息
ifconfig
:查看网络接口信息(旧命令,部分系统已不再支持)。ip addr show
:查看网络接口信息(新命令,推荐使用)。
示例:
ifconfig # 查看网络接口信息
ip addr show # 查看网络接口信息
ping
- 测试与主机的连通性
ping host_name_or_ip
:测试与主机的连通性,按Ctrl+C
停止。
示例:
ping google.com # 测试与 google.com 的连通性
wget
和 curl
- 从网络下载文件
wget URL
:从指定URL下载文件。curl -O URL
:从指定URL下载文件,并保存为原文件名。
示例:
wget https://example.com/file.zip # 下载文件
curl -O https://example.com/file.zip # 下载文件并保存为原文件名
7. 压缩和归档
tar
- 用于压缩和解压文件和目录
tar -czvf archive.tar.gz directory
:压缩目录为.tar.gz
文件。tar -xzvf archive.tar.gz
:解压.tar.gz
文件。
示例:
tar -czvf backup.tar.gz /home/user/documents # 压缩 /home/user/documents 目录为 backup.tar.gz
tar -xzvf backup.tar.gz # 解压 backup.tar.gz 文件
zip
和 unzip
- 用于压缩和解压 ZIP 文件
zip archive.zip file1 file2
:将多个文件压缩为一个.zip
文件。unzip archive.zip
:解压.zip
文件。
示例:
zip backup.zip file1.txt file2.txt # 将 file1.txt 和 file2.txt 压缩为 backup.zip
unzip backup.zip # 解压 backup.zip 文件
8. 文本处理
sed
- 流编辑器,用于文本处理和替换
sed 's/old_text/new_text/' file.txt
:替换文件中的文本。
示例:
sed 's/error/warning/g' file.txt # 将文件中的 "error" 替换为 "warning"
awk
- 用于文本处理和数据提取
awk '{print $1}' file.txt
:提取文件中的第一列数据。
示例:
awk '{print $1}' file.txt # 提取文件中的第一列数据
9. 用户和组管理
useradd
- 添加新用户
useradd new_user
:添加新用户。useradd -m new_user
:添加新用户并创建主目录。useradd -s /bin/bash new_user
:添加新用户并指定登录shell。
示例:
useradd john # 添加新用户 john
useradd -m jane # 添加新用户 jane 并创建主目录
useradd -s /bin/bash bob # 添加新用户 bob 并指定登录shell为 /bin/bash
passwd
- 修改用户密码
passwd new_user
:修改新用户的密码。
示例:
passwd john # 修改用户 john 的密码
usermod
- 修改用户信息
usermod -g new_group new_user
:修改用户所属组。usermod -d /new/home/directory new_user
:修改用户的主目录。usermod -L new_user
:锁定用户账户。usermod -U new_user
:解锁用户账户。
示例:
usermod -g admin john # 将用户 john 的所属组修改为 admin
usermod -d /home/jane jane # 修改用户 jane 的主目录为 /home/jane
usermod -L john # 锁定用户 john 的账户
usermod -U john # 解锁用户 john 的账户
userdel
- 删除用户
userdel new_user
:删除用户。userdel -r new_user
:删除用户及其主目录。
示例:
userdel john # 删除用户 john
userdel -r jane # 删除用户 jane 及其主目录
groupadd
- 添加新组
groupadd new_group
:添加新组。
示例:
groupadd admin # 添加新组 admin
groupdel
- 删除组
groupdel new_group
:删除组。
示例:
groupdel admin # 删除组 admin
10. 其他常用命令
man
- 查看命令的手册页
man command
:查看命令的手册页,按q
键退出。
示例:
man ls # 查看 ls 命令的手册页
which
- 查找命令的路径
which command
:查找命令的路径。
示例:
which ls # 查找 ls 命令的路径
whereis
- 查找命令的路径和相关文件
whereis command
:查找命令的路径和相关文件(如 man 手册页)。
示例:
whereis ls # 查找 ls 命令的路径和相关文件
df
- 显示磁盘使用情况
df -h
:以人类可读的格式显示磁盘使用情况。
示例:
df -h # 显示磁盘使用情况
du
- 显示目录的磁盘使用情况
du -h directory
:以人类可读的格式显示目录的磁盘使用情况。
示例:
du -h /home/user # 显示 /home/user 目录的磁盘使用情况
ln
- 创建硬链接或符号链接
ln source_file link_name
:创建硬链接。ln -s source_file link_name
:创建符号链接。
示例:
ln file.txt hardlink.txt # 创建硬链接
ln -s /path/to/file.txt symlink.txt # 创建符号链接
clear
- 清除终端屏幕
clear
:清除终端屏幕。
示例:
clear # 清除终端屏幕
echo
- 输出文本
echo "Hello, World!"
:输出文本。echo $PATH
:输出环境变量的值。
示例:
echo "Hello, World!" # 输出文本
echo $PATH # 输出 PATH 环境变量的值
附加命令
history
- 查看命令历史
history
:查看命令历史记录。!command_number
:重新执行历史记录中的某条命令。
示例:
history # 查看命令历史记录
!123 # 重新执行历史记录中的第123条命令
env
- 查看环境变量
env
:查看当前环境变量。env | grep PATH
:过滤并显示包含PATH
的环境变量。
示例:
env # 查看当前环境变量
env | grep PATH # 过滤并显示包含 PATH 的环境变量
export
- 设置环境变量
export VARIABLE=value
:设置环境变量。export PATH=$PATH:/new/path
:将新路径添加到PATH
环境变量中。
示例:
export MYVAR=hello # 设置环境变量 MYVAR 为 hello
export PATH=$PATH:/usr/local/bin # 将 /usr/local/bin 添加到 PATH 环境变量中
source
- 重新加载配置文件
source ~/.bashrc
:重新加载用户的.bashrc
配置文件。source /etc/profile
:重新加载系统的/etc/profile
配置文件。
示例:
source ~/.bashrc # 重新加载用户的 .bashrc 配置文件
source /etc/profile # 重新加载系统的 /etc/profile 配置文件