8gu-操作系统
操作系统指令
文件和目录操作
这是最常用的一类命令,用于管理文件系统中的文件和文件夹。
命令 | 描述 | 常用示例 |
---|---|---|
ls |
列出目录中的文件和子目录。 | ls -l (显示详细信息), ls -a (显示所有文件,包括隐藏文件), ls -lh (人性化显示文件大小) |
cd |
切换当前工作目录。 | cd /var/log (切换到 /var/log 目录), cd .. (切换到上级目录), cd ~ (切换到当前用户的家目录), cd - (切换到上一次所在的目录) |
pwd |
显示当前工作目录的完整路径。 | pwd |
cp |
复制文件或目录。 | cp source.txt destination.txt (复制文件), cp -r source_dir/ destination_dir/ (递归复制整个目录) |
mv |
移动或重命名文件和目录。 | mv old_name.txt new_name.txt (重命名), mv file.txt /tmp/ (移动文件到 /tmp 目录) |
rm |
删除文件或目录。 | rm file.txt (删除文件), rm -r directory/ (递归删除目录), rm -rf directory/ (强制递归删除,此操作非常危险,请谨慎使用!) |
mkdir |
创建新目录。 | mkdir new_folder (创建单个目录), mkdir -p project/src/main (递归创建多层目录) |
touch |
创建一个空文件或更新文件的时间戳。 | touch new_file.log |
find |
在文件系统中搜索文件和目录。 | find /home -name "*.txt" (在 /home 目录下查找所有 .txt 文件), find . -type d (查找当前目录下的所有子目录) |
cat |
查看文件内容、合并文件。 | cat /etc/hosts (查看文件内容), cat file1.txt file2.txt > merged.txt (合并文件) |
head |
查看文件的开头部分。 | head -n 20 error.log (查看日志文件的前20行) |
tail |
查看文件的末尾部分。 | tail -n 50 access.log (查看日志的最后50行), tail -f error.log (实时跟踪文件更新,常用于看日志) |
文本处理
这些命令通常与管道符 |
结合使用,形成强大的数据处理流水线。
命令 | 描述 | 常用示例 |
---|---|---|
grep |
在文本中搜索匹配的行。 | grep "error" /var/log/syslog (在日志中查找包含 "error" 的行), `ps -ef |
sed |
流编辑器,用于对文本进行替换、删除、插入等操作。 | sed 's/old_text/new_text/g' file.txt (替换文件中的文本), `cat file.txt |
awk |
功能强大的文本分析工具,擅长按列处理数据。 | awk '{print $1, $3}' access.log (打印日志文件中的第1列和第3列), `df -h |
sort |
对文本行进行排序。 | sort names.txt (对文件内容排序), `ls -l |
uniq |
报告或省略重复的行。 | `sort names.txt |
wc |
统计文件的行数、单词数和字符数。 | wc -l file.txt (统计行数), wc -w file.txt (统计单词数) |
cut |
从文件的每一行剪切指定部分。 | cut -d':' -f1 /etc/passwd (以冒号为分隔符,提取第一列内容) |
系统信息和监控
用于查看系统状态和管理正在运行的进程。
命令 | 描述 | 常用示例 |
---|---|---|
ps |
显示当前正在运行的进程。 | ps -ef 或 ps aux (显示所有进程的详细信息) |
top |
实时动态地显示系统进程信息。 | top (按 q 退出) |
htop |
top 的增强版,交互式进程查看器(可能需要单独安装)。 |
htop |
kill |
向进程发送信号,通常用于终止进程。 | kill 12345 (终止 PID 为 12345 的进程), kill -9 12345 (强制终止进程) |
df |
显示磁盘空间使用情况。 | df -h (以易于阅读的格式显示) |
du |
显示目录或文件的磁盘使用空间。 | du -sh /var/log (查看 /var/log 目录的总大小) |
free |
显示系统内存的使用情况。 | free -h (以易于阅读的格式显示) |
uname |
显示系统内核和操作系统信息。 | uname -a (显示所有信息) |
uptime |
显示系统已经运行了多长时间。 | uptime |
网络操作
用于网络配置、诊断和数据传输。
命令 | 描述 | 常用示例 |
---|---|---|
ping |
测试与另一台主机的网络连接。 | ping google.com |
ifconfig / ip |
显示或配置网络接口。 | ip addr show (现代 Linux 系统推荐), ifconfig (旧系统) |
netstat / ss |
显示网络连接、路由表、接口统计等信息。 | netstat -tuln 或 ss -tuln (查看所有监听的 TCP/UDP 端口) |
curl |
强大的网络数据传输工具,支持多种协议。 | curl https://www.google.com (获取网页内容), curl -o logo.png https://www.google.com/logo.png (下载文件) |
wget |
非交互式的网络下载工具。 | wget https://example.com/file.zip (下载文件) |
ssh |
安全地远程登录到另一台主机。 | ssh user@hostname |
scp |
在本地和远程主机之间安全地复制文件。 | scp local_file.txt user@remote:/home/user/ (上传文件) |
权限管理
用于控制文件和目录的访问权限。
命令 | 描述 | 常用示例 |
---|---|---|
chmod |
修改文件或目录的权限。 | chmod 755 script.sh (设置文件权限为 rwxr-xr-x), chmod +x script.sh (为文件添加执行权限) |
chown |
修改文件或目录的所有者和所属组。 | chown user:group file.txt |
sudo |
以超级用户(或其他用户)的身份执行命令。 | sudo apt-get update (以 root 权限更新软件包列表) |
掌握以上这些命令,你就可以高效地完成绝大多数日常的 Shell 操作了。