前言
在服务器运维、软件开发和系统管理中,Linux命令行是一个非常重要的工具。掌握常用的Linux命令可以大大提高工作效率。本文将介绍日常工作中最常用的Linux命令及其使用方法。
目录
文件和目录操作命令
ls - 列出目录内容
ls命令用于列出目录内容。
# 列出当前目录下的文件和子目录ls# 列出详细信息(包括权限、大小、修改时间等)ls -l# 显示所有文件(包括隐藏文件)ls -a# 组合使用,显示所有文件的详细信息ls -al# 按文件大小排序ls -lhS# 按时间排序ls -lt
pwd - 显示当前工作目录
pwd命令用于显示当前所在的完整路径。
# 显示当前工作目录pwd
cd - 切换目录
cd命令用于切换目录。
# 进入用户主目录cd ~# 返回上级目录cd ..# 回到上一次访问的目录cd -# 进入指定目录cd /path/to/directory
mkdir - 创建目录
mkdir命令用于创建新目录。
# 创建单个目录mkdir directory_name# 递归创建多级目录mkdir -p dir1/dir2/dir3# 创建多个同级目录mkdir dir1 dir2 dir3
touch - 创建空文件或更新时间戳
touch命令用于创建空文件或更新文件的时间戳。
# 创建一个空文件touch filename.txt# 更新文件的时间戳为当前时间touch existing_file.txt
cp - 复制文件或目录
cp命令用于复制文件或目录。
# 复制文件cp source_file.txt destination_file.txt# 复制目录(需要-r参数)cp -r source_directory/ destination_directory/# 复制时保留原文件属性cp -p source_file.txt destination_file.txt# 交互式复制(复制前确认)cp -i source_file.txt destination_file.txt
mv - 移动或重命名文件
mv命令用于移动文件或重命名文件。
# 重命名文件mv old_name.txt new_name.txt# 移动文件到另一个目录mv file.txt /path/to/directory/# 移动并重命名mv file.txt /path/to/directory/new_name.txt# 移动整个目录mv /path/to/source_directory /path/to/destination/
rm - 删除文件或目录
rm命令用于删除文件或目录。
# 删除文件rm file.txt# 强制删除(不提示确认)rm -f file.txt# 删除目录及其内容rm -r directory/# 交互式删除(逐一确认)rm -i file1.txt file2.txt# 安全删除(推荐组合使用)rm -ri directory/ # 递归删除目录时逐个确认
文件查看和编辑命令
cat - 查看、连接文件
cat命令用于查看小文件内容、连接文件。
# 查看文件内容cat file.txt# 查看多个文件内容cat file1.txt file2.txt# 显示行号cat -n file.txt# 创建新文件cat > newfile.txt # 输入内容后按Ctrl+D保存
less - 分页查看文件
less命令用于分页查看大文件内容。
# 分页查看文件less large_file.txt# 常用快捷键:# 空格键 - 向下翻页# b - 向上翻页# q - 退出# /keyword - 搜索关键词# n - 下一个匹配项
head - 查看文件开头
head命令用于查看文件开头几行。
# 查看文件前10行(默认)head file.txt# 查看文件前N行head -n 20 file.txt # 或 head -20 file.txt
tail - 查看文件末尾
tail命令用于查看文件末尾几行。
# 查看文件最后10行(默认)tail file.txt# 查看文件最后N行tail -n 20 file.txt # 或 tail -20 file.txt# 实时监控文件末尾变化(常用于日志文件)tail -f log_file.log# 从第N行开始显示到文件末尾tail -n +100 file.txt # 显示从第100行到文件末尾的内容
nano - 简单文本编辑器
nano是一个简单易用的文本编辑器。
# 打开或创建文件进行编辑nano file.txt# 常用快捷键:# Ctrl+O - 保存文件# Ctrl+X - 退出# Ctrl+W - 搜索文本# Ctrl+K - 剪切行# Ctrl+U - 粘贴行
vi/vim - 高级文本编辑器
vi和vim是功能强大的文本编辑器。
# 打开文件vim file.txt# 三种模式:# 1. 命令模式 - 默认模式,用于执行编辑命令# 2. 插入模式 - 按i进入,用于输入文本# 3. 底线命令模式 - 按:进入,用于保存、退出等# 常用命令:# i - 进入插入模式# x - 删除当前字符# dd - 删除当前行# yy - 复制当前行# p - 粘贴# :w - 保存# :q - 退出# :wq - 保存并退出# :q! - 强制退出不保存
系统信息查询命令
uname - 系统信息
uname命令用于显示系统信息。
# 显示内核名称uname# 显示所有系统信息uname -a# 显示内核版本uname -r# 显示操作系统uname -o# 显示主机名uname -n
top - 实时查看系统资源
top命令用于实时查看系统资源使用情况。
# 查看系统资源使用情况top# 按CPU使用率排序(默认)# 按内存使用率排序:按Shift+M# 杀死进程:按k,然后输入PID# 退出:按q
free - 显示内存使用情况
free命令用于显示内存和交换空间使用情况。
# 显示内存使用情况free# 以人类可读格式显示(MB/GB)free -h# 以特定单位显示free -m # MBfree -g # GB
df - 显示磁盘使用情况
df命令用于显示文件系统的磁盘空间使用情况。
# 显示磁盘使用情况df# 以人类可读格式显示df -h# 显示inode使用情况df -i
du - 显示目录大小
du命令用于显示目录或文件的磁盘使用情况。
# 显示当前目录下各文件和子目录大小du# 以人类可读格式显示du -h# 只显示总计du -sh# 显示指定目录的大小du -sh /path/to/directory/
ps - 显示进程状态
ps命令用于显示当前进程的状态。
# 显示当前用户的进程ps# 显示所有进程的详细信息ps aux# 显示进程树ps auxf# 根据CPU使用率排序ps aux --sort=-%cpu# 根据内存使用率排序ps aux --sort=-%mem
网络相关命令
ping - 测试网络连通性
ping命令用于测试网络连通性和延迟。
# 持续ping某个主机ping google.com# ping指定次数ping -c 5 google.com# 设置ping间隔(秒)ping -i 2 google.com
netstat - 网络连接状态
netstat命令用于显示网络连接、路由表、接口统计等信息。
# 显示所有连接netstat -a# 显示TCP连接netstat -t# 显示UDP连接netstat -u# 显示监听端口netstat -l# 显示端口和程序PIDnetstat -tulpn# 查找使用指定端口的程序netstat -tulnp | grep :80
wget - 下载文件
wget命令用于从网络下载文件。
# 下载单个文件wget https://example.com/file.zip# 限制下载速度wget --limit-rate=200k https://example.com/file.zip# 断点续传wget -c https://example.com/large_file.iso# 后台下载wget -b https://example.com/file.zip
curl - 数据传输工具
curl命令用于传输数据,支持多种协议。
# 获取网页内容curl https://www.google.com# 下载文件curl -O https://example.com/file.zip# 显示传输进度curl -# -O https://example.com/file.zip# 发送POST请求curl -X POST -d "param1=value1¶m2=value2" https://api.example.com
进程管理命令
kill - 终止进程
kill命令用于发送信号给进程,通常用于终止进程。
# 终止指定PID的进程kill PID# 强制终止进程kill -9 PID# 使用进程名终止进程killall process_name# 根据进程名搜索并终止pkill process_name
jobs - 显示后台任务
jobs命令用于显示当前shell会话中的作业。
# 显示所有作业jobs# 显示作业详细信息jobs -l# 将后台作业转到前台fg %job_number# 将前台作业放到后台运行bg %job_number
压缩与解压命令
tar - 归档命令
tar命令用于打包和压缩文件。
# 创建.tar归档文件tar -cvf archive.tar file1 file2 directory/# 解压.tar文件tar -xvf archive.tar# 创建.tar.gz压缩文件tar -czvf archive.tar.gz directory/# 解压.tar.gz文件tar -xzvf archive.tar.gz# 创建.tar.bz2压缩文件tar -cjvf archive.tar.bz2 directory/# 查看归档文件内容tar -tvf archive.tar
zip/unzip - ZIP格式压缩解压
# 创建ZIP压缩文件zip -r archive.zip directory/# 解压ZIP文件unzip archive.zip# 解压到指定目录unzip archive.zip -d /path/to/directory/
gzip/gunzip - GZ格式压缩解压
# 压缩文件gzip file.txt # 结果是file.txt.gz# 解压文件gunzip file.txt.gz# 或者gzip -d file.txt.gz
权限管理命令
chmod - 修改文件权限
chmod命令用于修改文件或目录的权限。
# 使用数字方式设置权限chmod 755 file.sh # rwxr-xr-xchmod 644 file.txt # rw-r--r--chmod 600 private.txt # rw-------# 使用符号方式设置权限chmod u+x file.sh # 为文件所有者添加执行权限chmod g+w file.txt # 为组添加写权限chmod o-r file.txt # 为其他用户移除读权限chmod a+r file.txt # 为所有人添加读权限
chown - 修改文件所有者
chown命令用于修改文件或目录的所有者。
# 更改文件所有者chown username file.txt# 更改所有者和组chown username:groupname file.txt# 递归更改目录及内部所有文件的所有者chown -R username:groupname directory/
chgrp - 修改组
chgrp命令用于修改文件或目录的所属组。
# 修改文件所属组chgrp groupname file.txt# 递归修改目录及内部所有文件的组chgrp -R groupname directory/
查找命令
find - 查找文件
find命令用于在目录树中查找文件。
# 在指定目录下查找文件find /path/to/search -name "filename"# 查找文件(忽略大小写)find /path/to/search -iname "FILENAME"# 查找特定类型的文件find /path/to/search -type f -name "*.txt"find /path/to/search -type d -name "dir_name"# 查找大于100MB的文件find /path/to/search -size +100M# 查找最近7天修改过的文件find /path/to/search -mtime -7# 查找最近7天访问过的文件find /path/to/search -atime -7# 查找空文件find /path/to/search -empty# 对找到的文件执行命令find /path/to/search -name "*.log" -exec rm {} \;
grep - 文本搜索
grep命令用于在文件中搜索文本模式。
# 在文件中搜索文本grep "pattern" file.txt# 忽略大小写搜索grep -i "pattern" file.txt# 递归搜索目录中的所有文件grep -r "pattern" /path/to/directory/# 显示匹配行的行号grep -n "pattern" file.txt# 显示匹配行的前后几行grep -A 3 -B 3 "pattern" file.txt # 显示匹配行前后各3行grep -C 3 "pattern" file.txt # 同上# 反向搜索(显示不匹配的行)grep -v "pattern" file.txt# 统计匹配行数grep -c "pattern" file.txt
which - 查找命令位置
which命令用于查找命令的完整路径。
# 查找命令的位置which pythonwhich gccwhich npm
locate - 快速查找文件
locate命令通过数据库快速查找文件。
# 查找文件locate filename# 更新查找数据库sudo updatedb
总结
以上是Linux中最常用的命令及其基本用法。熟练掌握这些命令对于Linux系统管理和开发工作非常重要。建议在实际工作中多加练习,逐步熟悉每个命令的各种参数和用法。
实用技巧
- 使用
command_name --help获取帮助信息