Linux 常用指令
Linux 提供了一系列强大而灵活的命令行工具,适用于系统管理、文件处理和网络操作。以下是一些常用的 Linux 命令及其用法示例。
1. 文件和目录操作
1.1 ls
- 列出目录内容
# 列出当前目录内容
ls
# 列出所有文件和目录,包括隐藏文件
ls -a
# 详细列出文件信息
ls -l
# 列出详细信息并以人类可读的格式显示文件大小
ls -lh
1.2 cd - 切换目录
# 切换到指定目录
cd /path/to/directory
# 切换到上一级目录
cd ..
# 切换到用户主目录
cd ~
1.3 pwd - 显示当前工作目录
# 显示当前所在的目录路径
pwd
1.4 mkdir - 创建目录
# 创建一个名为 newdir 的目录
mkdir newdir
# 递归创建目录路径
mkdir -p /path/to/newdir
1.5 rmdir - 删除空目录
# 删除名为 emptydir 的空目录
rmdir emptydir
1.6 rm - 删除文件和目录
# 删除一个文件
rm file.txt
# 强制删除一个目录及其所有内容
rm -rf /path/to/directory
1.7 cp - 复制文件和目录
# 复制文件到目标位置
cp source.txt /path/to/destination/
# 递归复制目录及其所有内容
cp -r /path/to/source/ /path/to/destination/
1.8 mv - 移动或重命名文件和目录
# 将文件移动到目标目录
mv file.txt /path/to/destination/
# 重命名文件
mv oldname.txt newname.txt
2. 文件内容查看
2.1 cat - 连接并显示文件内容
# 显示文件内容
cat file.txt
2.2 tac - 从最后一行开始显示文件内容
# 逆序显示文件内容
tac file.txt
2.3 less - 分页显示文件内容
# 分页查看文件内容
less file.txt
2.4 head - 显示文件的前几行
# 显示文件的前 10 行
head file.txt
# 显示文件的前 5 行
head -n 5 file.txt
2.5 tail - 显示文件的后几行
# 显示文件的后 10 行
tail file.txt
# 显示文件的后 5 行
tail -n 5 file.txt
# 动态显示文件的新增内容(适用于查看日志)
tail -f logfile.txt
2.6 grep - 搜索文件中的文本
# 在文件中搜索包含 'pattern' 的行
grep 'pattern' file.txt
# 搜索包含 'pattern' 的行,并显示行号
grep -n 'pattern' file.txt
# 递归搜索目录中的所有文件
grep -r 'pattern' /path/to/directory/
3. 权限和所有权
3.1 chmod - 修改文件权限
# 设置文件权限为 755
chmod 755 file.txt
# 递归修改目录及其内容的权限
chmod -R 755 /path/to/directory
3.2 chown - 修改文件所有者和组
# 将文件的所有者改为 user
chown user file.txt
# 将文件的所有者和组改为 user 和 group
chown user:group file.txt
# 递归修改目录及其内容的所有者和组
chown -R user:group /path/to/directory
3.3 chgrp - 修改文件组
# 将文件的组改为 group
chgrp group file.txt
# 递归修改目录及其内容的组
chgrp -R group /path/to/directory
4. 系统管理
4.1 sudo - 以超级用户身份运行命令
# 以超级用户身份运行命令
sudo command
4.2 ps - 显示当前进程
# 显示当前所有进程
ps -ef
# 显示当前用户的进程
ps -u username
4.3 top - 实时显示系统资源使用
# 启动 top 命令
top
4.4 kill - 终止进程
# 终止进程 ID 为 1234 的进程
kill 1234
# 强制终止进程 ID 为 1234 的进程
kill -9 1234
4.5 df - 显示磁盘使用情况
# 显示磁盘使用情况
df -h
4.6 du - 显示目录的磁盘使用情况
# 显示当前目录的磁盘使用情况
du -sh .
# 显示指定目录的磁盘使用情况
du -sh /path/to/directory
4.7 free - 显示内存使用情况
# 显示内存使用情况
free -h
4.8 uptime - 显示系统运行时间和负载
# 显示系统运行时间和负载
uptime
5. 网络操作
5.1 ping - 检查网络连接
# 检查到 google.com 的网络连接
ping google.com
5.2 ifconfig - 显示或配置网络接口
# 显示网络接口信息
ifconfig
5.3 wget - 下载文件
# 下载文件
wget http://example.com/file.zip
5.4 curl - 发送 HTTP 请求并获取响应
```bash
# 获取网页内容
curl http://example.com
# 下载文件
curl -O http://example.com/file.zip
5.5 scp - 安全复制文件
# 将本地文件复制到远程服务器
scp localfile.txt user@remote:/path/to/destination
# 将远程文件复制到本地
scp user@remote:/path/to/sourcefile.txt /local/path
5.6 ssh - 安全远程登录
# 连接到远程服务器
ssh user@remote
6. 压缩和解压缩
6.1 tar - 压缩和解压缩文件
# 创建 tar 压缩包
tar -cvf archive.tar /path/to/directory
# 创建 tar.gz 压缩包
tar -czvf archive.tar.gz /path/to/directory
# 解压 tar 压缩包
tar -xvf archive.tar
# 解压 tar.gz 压缩包
tar -xzvf archive.tar.gz
6.2 zip - 创建压缩文件
# 创建 zip 压缩文件
zip archive.zip file1 file2
# 递归压缩目录
zip -r archive.zip /path/to/directory
6.3 unzip - 解压 zip 文件
# 解压 zip 文件
unzip archive.zip
7. 文本处理
7.1 awk - 文本处理和数据提取
# 使用 awk 处理文本文件
awk '{ print $1 }' file.txt
7.2 sed - 流编辑器
# 使用 sed 替换文件中的文本
sed 's/oldtext/newtext/g' file.txt
7.3 sort - 排序文件内容
# 按字母顺序排序文件内容
sort file.txt
# 按数值顺序排序文件内容
sort -n file.txt
7.4 uniq - 删除重复行
# 删除重复行
uniq file.txt
7.5 diff - 比较文件差异
# 比较两个文件的差异
diff file1.txt file2.txt
7.6 wc - 统计文件的行数、字数和字符数
# 统计文件的行数、字数和字符数
wc file.txt
# 仅统计行数
wc -l file.txt
7.7 tr - 替换或删除字符
# 将文件中的所有小写字母转换为大写
tr 'a-z' 'A-Z' < file.txt
8. 搜索和查找
8.1 find - 查找文件和目录
# 查找文件
find /path/to/search -name filename
# 查找修改时间在 7 天以内的文件
find /path/to/search -mtime -7
8.2 locate - 快速查找文件
# 查找文件
locate filename
8.3 which - 显示命令的路径
# 查找命令的路径
which ls
9. 系统信息
9.1 uname - 显示系统信息
# 显示系统内核名称
uname
# 显示详细系统信息
uname -a
9.2 hostname - 显示或设置系统主机名
# 显示主机名
hostname
# 设置主机名
sudo hostname newhostname
9.3 whoami - 显示当前用户
# 显示当前用户
whoami
9.4 date - 显示或设置系统日期和时间
# 显示当前日期和时间
date
# 设置系统日期和时间(需要管理员权限)
sudo date -s "2024-06-17 10:00:00"
9.5 uptime - 显示系统运行时间和负载
# 显示系统运行时间和负载
uptime
10. 软件管理
10.1 apt-get - Debian 系统的包管理工具
# 更新包列表
sudo apt-get update
# 升级所有包
sudo apt-get upgrade
# 安装软件包
sudo apt-get install packagename
# 删除软件包
sudo apt-get remove packagename
10.2 yum - CentOS 系统的包管理工具
# 更新包列表
sudo yum update
# 安装软件包
sudo yum install packagename
# 删除软件包
sudo yum remove packagename
10.3 rpm - RedHat 系列的包管理工具
# 安装软件包
sudo rpm -ivh packagename.rpm
# 升级软件包
sudo rpm -Uvh packagename.rpm
# 删除软件包
sudo rpm -e packagename