记录下常用的Linux 命令,常见选项和用法,方便用时查找。
文件和目录操作
ls
- 列出目录内容
ls # 列出当前目录下的文件和目录
ls -l # 以长格式显示(包括权限、所有者、大小等)
ls -a # 显示所有文件,包括隐藏文件(以 . 开头)
ls -lh # 以人类可读的格式显示文件大小
ls -R # 递归列出子目录内容
cd
- 更改目录
cd /path/to/directory # 切换到指定目录
cd .. # 返回到上一级目录
cd ~ # 切换到当前用户的主目录
cd - # 切换到上一次所在的目录
pwd
- 显示当前工作目录
pwd # 输出当前所在的工作目录路径
cp
- 复制文件或目录
cp file1 file2 # 复制文件 file1 到 file2
cp -r directory1 directory2 # 递归复制目录 directory1 到 directory2
cp -i file1 file2 # 复制时提示覆盖确认
cp -v file1 file2 # 复制时显示详细信息
mv
- 移动或重命名文件或目录
mv file1 file2 # 将文件 file1 重命名为 file2,或移动到 file2 位置
mv directory1 /path/ # 移动目录 directory1 到指定路径
mv -i file1 file2 # 移动或重命名时提示覆盖确认
mv -v file1 file2 # 显示详细的移动或重命名信息
rm
- 删除文件或目录
rm file1 # 删除文件 file1
rm -r directory1 # 递归删除目录及其内容
rm -i file1 # 删除文件前进行确认
rm -rf directory1 # 强制递归删除目录,不提示确认
mkdir
- 创建目录
mkdir new_directory # 创建新目录
mkdir -p /path/to/directory # 递归创建所需的目录
rmdir
- 删除空目录
rmdir directory1 # 删除空目录
touch
- 创建新文件或更新文件的时间戳
touch newfile.txt # 创建一个空文件或更新文件的修改时间
find
- 搜索文件和目录
find /path -name filename # 按名称查找文件
find /path -type d -name dirname # 查找目录
find /path -mtime -7 # 查找最近 7 天内修改过的文件
find /path -size +100M # 查找大于 100MB 的文件
find /path -exec command {} \; # 查找到文件后执行命令
文件内容查看和编辑
cat
- 显示文件内容
cat file.txt # 显示文件内容
cat file1.txt file2.txt # 依次显示多个文件的内容
cat file1.txt > file2.txt # 将文件1的内容复制到文件2
cat file1.txt >> file2.txt # 将文件1的内容追加到文件2
cat -n file.txt # 显示内容时同时输出行号
less
- 分页查看文件内容
less file.txt # 分页显示文件内容
- 使用上下方向键或
PageUp
和PageDown
翻页。- 输入
q
退出查看。- 输入
/pattern
查找内容。
more
- 分页显示文件内容
more file.txt # 分页显示文件内容
- 使用空格键翻页。
- 使用
q
退出查看。- 使用
/pattern
查找内容。
head
- 显示文件的前几行
head file.txt # 显示文件的前10行
head -n 20 file.txt # 显示文件的前20行
head -c 100 file.txt # 显示文件的前100字节
tail
- 显示文件的后几行
tail file.txt # 显示文件的最后10行
tail -n 20 file.txt # 显示文件的最后20行
tail -f file.txt # 实时跟踪文件内容的更新
nano
- 简单的文本编辑器
nano file.txt # 在 nano 编辑器中打开文件
- 使用箭头键导航,
Ctrl + O
保存文件,Ctrl + X
退出。
vi
/vim
- 强大的文本编辑器
vi file.txt # 使用 vi 编辑器打开文件
vim file.txt # 使用 vim 编辑器打开文件
i
进入插入模式进行编辑。Esc
返回命令模式。:w
保存文件,:q
退出编辑器。
权限和所有权管理
chmod
- 更改文件权限
chmod 755 file1 # 设置文件权限为 rwxr-xr-x
chmod -R 644 directory1 # 递归更改目录及其内容的权限
chown
- 更改文件所有者
chown user file1 # 更改文件的所有者
chown user:group file1 # 更改文件的所有者和所属组
chown -R user:group directory1 # 递归更改目录及其内容的所有者和所属组
系统管理
top
- 实时显示系统资源使用情况
top # 实时查看系统进程和资源使用
ps
- 显示当前正在运行的进程
ps # 列出当前会话中的进程
ps aux # 显示系统中所有进程的信息
ps -ef # 使用标准格式显示所有进程
kill
- 终止进程
kill PID # 终止指定 PID 的进程
kill -9 PID # 强制终止指定 PID 的进程
killall process_name # 终止所有指定名称的进程
df
- 显示磁盘使用情况
df # 显示文件系统的磁盘空间使用情况
df -h # 以人类可读的格式显示
du
- 显示目录或文件的磁盘使用量
du # 显示当前目录下每个文件和目录的大小
du -h # 以人类可读的格式显示
du -sh directory1 # 显示目录的总大小
free
- 显示内存使用情况
free # 显示系统内存使用情况
free -h # 以人类可读的格式显示
uname
- 显示系统信息
uname # 显示系统类型
uname -a # 显示所有系统信息
reboot
- 重启系统
reboot # 重启系统
shutdown
- 关闭系统
shutdown now # 立即关闭系统
shutdown -r now # 立即重启系统
shutdown +10 "message" # 在10分钟后关闭系统,并显示消息
网络管理
ping
- 测试网络连接
ping example.com # 测试到指定域名或 IP 地址的网络连接
ping -c 4 example.com # 发送指定次数的 ping 请求
ifconfig
- 配置网络接口(旧版)
ifconfig # 显示网络接口信息
ifconfig eth0 up # 启用网络接口
ifconfig eth0 down # 禁用网络接口
ip
- 查看和配置网络接口、路由等
ip a # 显示所有网络接口的地址信息
ip link set eth0 up # 启用网络接口
ip route show # 显示路由表
ip addr add 192.168.1.1/24 dev eth0 # 配置 IP 地址
netstat
- 显示网络连接、路由表等
netstat # 显示网络连接、路由表等信息
netstat -tuln # 显示所有监听的端口
curl
- 与服务器交互,下载文件
curl http://example.com # 获取指定 URL 的内容
curl -O http://example.com/file # 下载文件并保存为原文件名
curl -L http://example.com # 跟随重定向
wget
- 下载文件
wget http://example.com/file # 下载文件
wget -c http://example.com/file # 断点续传
文件压缩和解压缩
tar
- 打包和解包文件
tar -cvf archive.tar directory/ # 打包目录为 tar 文件
tar -xvf archive.tar # 解包 tar 文件
tar -czvf archive.tar.gz directory/ # 打包并压缩目录为 tar.gz 文件
tar -xzvf archive.tar.gz # 解压缩并解包 tar.gz 文件
gzip
/gunzip
- 压缩和解压缩文件
gzip file1 # 压缩文件为 file1.gz
gunzip file1.gz # 解压缩 file1.gz
zip
/unzip
- 压缩和解压缩 zip 文件
zip archive.zip file1 file2 # 将多个文件压缩为 zip 文件
unzip archive.zip # 解压缩 zip 文件
包管理
apt-get
- Debian/Ubuntu 系统中的包管理工具
apt-get update # 更新包列表
apt-get
upgrade # 升级已安装的包
apt-get install package_name # 安装新包
apt-get remove package_name # 卸载包
yum
- CentOS/RHEL 系统中的包管理工具
yum update # 更新所有包
yum install package_name # 安装新包
yum remove package_name # 卸载包
其他
man
- 查看命令的手册页
man ls # 查看 `ls` 命令的手册页
echo
- 输出文本或变量值
echo "Hello, World!" # 输出字符串
echo $HOME # 输出环境变量的值
history
- 显示命令历史
history # 显示命令历史
history -c # 清空命令历史
alias
- 为命令创建别名
alias ll='ls -l' # 创建一个 `ll` 的别名,用于执行 `ls -l`
unalias ll # 删除别名