一、文件与目录操作1.1 ls - 列出目录内容ls命令用于显示目录中的文件和子目录。默认情况下,它仅显示文件名。该命令支持多种选项,以提供更多信息。
代码语言:javascript复制ls [选项] [目录]常用选项:
ls -l:以长格式显示,包括文件的权限、所有者、文件大小和最后修改时间。代码语言:javascript复制ls -l /home/user输出示例:
代码语言:javascript复制total 12
drwxr-xr-x 2 user user 4096 Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txtls -a:显示所有文件,包括隐藏文件(以.开头的文件)。代码语言:javascript复制ls -a /home/user输出示例:
代码语言:javascript复制. .. .bashrc .profile Documents file.txtls -h:以人类可读的格式显示文件大小(如K、M、G)。代码语言:javascript复制ls -lh /home/user输出示例:
代码语言:javascript复制total 12K
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt组合使用选项:
代码语言:javascript复制ls -lah /home/user输出示例:
代码语言:javascript复制total 12K
drwxr-xr-x 3 user user 4.0K Jan 1 12:34 .
drwxr-xr-x 20 user user 4.0K Jan 1 12:34 ..
-rw-r--r-- 1 user user 220 Jan 1 12:34 .bashrc
-rw-r--r-- 1 user user 655 Jan 1 12:34 .profile
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt1.2 cd - 切换目录cd命令用于在目录之间导航。它改变当前工作目录。
代码语言:javascript复制cd [目录]示例:
切换到用户的主目录:代码语言:javascript复制cd ~切换到上一级目录:代码语言:javascript复制cd ..切换到指定目录:代码语言:javascript复制cd /home/user/Documents返回到上一次所在的目录:代码语言:javascript复制cd -1.3 pwd - 显示当前目录pwd命令显示当前工作目录的完整路径。
代码语言:javascript复制pwd示例:
代码语言:javascript复制$ pwd
/home/user/Documents1.4 mkdir - 创建目录mkdir命令用于创建新目录。
代码语言:javascript复制mkdir [选项] 目录名常用选项:
创建单个目录:代码语言:javascript复制mkdir mydir创建多级目录:代码语言:javascript复制mkdir -p parent/child/grandchild1.5 rmdir - 删除空目录rmdir命令用于删除空目录。如果目录非空,则删除失败。
代码语言:javascript复制rmdir 目录名示例:
代码语言:javascript复制rmdir mydir1.6 rm - 删除文件或目录rm命令用于删除文件或目录。删除操作是不可逆的,需谨慎使用。
代码语言:javascript复制rm [选项] 文件常用选项:
删除文件:代码语言:javascript复制rm file.txt递归删除目录及其内容:代码语言:javascript复制rm -r mydir强制删除:代码语言:javascript复制rm -f file.txt1.7 cp - 复制文件或目录cp命令用于复制文件或目录。
代码语言:javascript复制cp [选项] 源文件 目标文件常用选项:
复制文件:代码语言:javascript复制cp file1.txt file2.txt递归复制目录:代码语言:javascript复制cp -r dir1 dir21.8 mv - 移动或重命名文件或目录mv命令用于移动或重命名文件或目录。
代码语言:javascript复制mv [选项] 源文件 目标文件示例:
移动文件:代码语言:javascript复制mv file.txt /new/location/重命名文件:代码语言:javascript复制mv oldname.txt newname.txt1.9 touch - 创建空文件或更新文件时间戳touch命令用于创建新的空文件或更新现有文件的访问和修改时间。
代码语言:javascript复制touch 文件名示例:
创建新文件:代码语言:javascript复制touch newfile.txt二、文件内容查看与编辑2.1 cat - 连接并显示文件内容cat命令用于连接文件并显示其内容。它通常用于查看文件的内容,但也可用于合并文件。
代码语言:javascript复制cat [选项] 文件常用选项:
显示文件内容:代码语言:javascript复制cat file.txt显示带行号的文件内容:代码语言:javascript复制cat -n file.txt2.2 tac - 反向显示文件内容tac命令将文件内容按行反序显示。与cat相反。
代码语言:javascript复制tac 文件示例:
代码语言:javascript复制tac file.txt2.3 more - 分页显示文件内容more命令用于分页显示文件内容,适合查看长文件。
代码语言:javascript复制more 文件示例:
代码语言:javascript复制more file.txt操作提示:
按空格键翻页按Enter键逐行滚动按q退出2.4 less - 分页显示文件内容(支持向前翻页)less命令类似于more,但提供了更多功能,如向前翻页。
代码语言:javascript复制less 文件示例:
代码语言:javascript复制less file.txt操作提示:
按空格键翻页按上/下箭头键滚动按q退出2.5 head - 显示文件开头部分内容head命令显示文件的前几行内容。
代码语言:javascript复制head [选项] 文件常用选项:
显示文件的前10行:代码语言:javascript复制head -n 10 file.txt2.6 tail - 显示文件结尾部分内容tail命令显示文件的后几行内容。
代码语言:javascript复制tail [选项] 文件常用选项:
显示文件的最后10行:代码语言:javascript复制tail -n 10 file.txt实时显示文件新增内容:代码语言:javascript复制tail -f file.txt2.7 nano - 简单易用的文本编辑器nano是一个简单易用的文本编辑器,适合新手。
代码语言:javascript复制nano 文件示例:
代码语言:javascript复制nano file.txt基本操作:
Ctrl + O:保存文件Ctrl + X:退出编辑器2.8 vim - 功能强大的文本编辑器vim是一个功能强大的文本编辑器,适合高级用户。它有两种模式:普通模式和插入模式。
代码语言:javascript复制vim 文件示例:
代码语言:javascript复制vim file.txt基本操作:
进入插入模式:按i保存文件:按Esc,输入:w退出编辑器:按Esc,输入:q三、文件权限管理3.1 chmod - 修改文件权限chmod命令用于更改文件或目录的权限。权限由三部分组成:所有者、组和其他用户。
代码语言:javascript复制chmod [选项] 权限 文件权限表示法
:
数字表示法:如755符号表示法:如u+x示例:
设置文件权限为755:代码语言:javascript复制chmod 755 file.txt增加文件拥有者的执行权限:代码语言:javascript复制chmod u+x file.txt3.2 chown - 修改文件所有者chown命令用于更改文件或目录的所有者和组。
代码语言:javascript复制chown [选项] 用户:组 文件示例:
将文件所有者和所有组改为root:代码语言:javascript复制chown root:root file.txt3.3 chgrp - 修改文件所属组chgrp命令用于更改文件或目录的组。
代码语言:javascript复制chgrp [选项] 组 文件示例:
将文件的组改为staff:代码语言:javascript复制chgrp staff file.txt四、系统管理4.1 ps - 显示当前进程ps命令用于显示当前系统的进程列表。
代码语言:javascript复制ps [选项]常用选项:
显示所有进程:代码语言:javascript复制ps aux4.2 top - 实时显示系统资源使用情况top命令实时显示系统资源的使用情况,包括CPU、内存、进程等。
代码语言:javascript复制top操作提示:
按q退出4.3 kill - 终止进程kill命令用于终止进程。
代码语言:javascript复制kill [选项] 进程号示例:
终止指定进程:代码语言:javascript复制kill 12345强制终止进程:代码语言:javascript复制kill -9 123454.4 df - 显示磁盘空间使用情况df命令显示文件系统的磁盘空间使用情况。
代码语言:javascript复制df [选项]常用选项:
以人类可读格式显示:代码语言:javascript复制df -h4.5 du - 显示目录或文件的磁盘使用情况du命令显示指定目录或文件的磁盘使用情况。
代码语言:javascript复制du [选项] [文件]常用选项:
以人类可读格式显示:代码语言:javascript复制du -h显示总计:代码语言:javascript复制du -s4.6 free - 显示内存使用情况free命令显示系统内存的使用情况。
代码语言:javascript复制free [选项]常用选项:
以MB为单位显示:代码语言:javascript复制free -m五、网络管理5.1 ping - 测试网络连通性ping命令用于测试与目标主机的网络连通性。
代码语言:javascript复制ping [选项] 目标地址示例:
代码语言:javascript复制ping google.com5.2 ifconfig - 配置网络接口(旧版工具,已被ip替代)ifconfig命令用于显示和配置网络接口。
代码语言:javascript复制ifconfig [接口]示例:
显示所有网络接口:代码语言:javascript复制ifconfig5.3 ip - 显示或配置网络接口ip命令是ifconfig命令的替代工具,用于显示和配置网络接口。
代码语言:javascript复制ip addr
ip link set dev 接口名 up/down示例:
显示所有网络接口和地址:代码语言:javascript复制ip addr启用网络接口:代码语言:javascript复制ip link set dev eth0 up禁用网络接口:代码语言:javascript复制ip link set dev eth0 down5.4 netstat - 显示网络连接、路由表、接口状态等netstat命令用于显示网络连接、路由表、接口状态等信息。
代码语言:javascript复制netstat [选项]常用选项:
显示所有连接:代码语言:javascript复制netstat -an5.5 ssh - 远程登录ssh命令用于通过SSH协议远程登录到另一台机器。
代码语言:javascript复制ssh 用户名@远程主机示例:
代码语言:javascript复制ssh user@remotehost六、打包与压缩6.1 tar - 归档文件tar命令用于创建和管理归档文件。
代码语言:javascript复制tar [选项] 文件常用选项:
创建tar归档文件:代码语言:javascript复制tar -cvf archive.tar 文件解压tar归档文件:代码语言:javascript复制tar -xvf archive.tar查看tar归档文件内容:代码语言:javascript复制tar -tvf archive.tar6.2 gzip - 压缩文件gzip命令用于压缩文件。
代码语言:javascript复制gzip 文件示例:
压缩文件:代码语言:javascript复制gzip file.txt6.3 gunzip - 解压缩文件gunzip命令用于解压缩文件。
代码语言:javascript复制gunzip 文件.gz示例:
解压缩文件:代码语言:javascript复制gunzip file.txt.gz6.4 zip - 压缩文件zip命令用于将文件或目录压缩为zip格式。
代码语言:javascript复制zip [选项] 压缩包名 文件常用选项:
压缩单个文件:代码语言:javascript复制zip archive.zip file.txt递归压缩目录:代码语言:javascript复制zip -r archive.zip 目录6.5 unzip - 解压缩文件unzip命令用于解压缩zip文件。
代码语言:javascript复制unzip 压缩包名.zip示例:
解压缩文件:代码语言:javascript复制unzip archive.zip七、查找与搜索7.1 find - 查找文件find命令用于在指定目录及其子目录中查找文件。
代码语言:javascript复制find [路径] [选项] [表达式]常用选项:
按名称查找文件:代码语言:javascript复制find / -name "file.txt"按文件大小查找文件:代码语言:javascript复制find / -size +100M7.2 grep - 搜索文本grep命令用于在文件中搜索匹配的文本模式。
代码语言:javascript复制grep [选项] 模式 文件常用选项:
搜索文件中的模式:代码语言:javascript复制grep "pattern" file.txt递归搜索目录中的模式:代码语言:javascript复制grep -r "pattern" 目录7.3 locate - 快速查找文件locate命令用于快速查找文件。它基于预先构建的数据库,速度很快。
代码语言:javascript复制locate 文件名示例:
查找文件:代码语言:javascript复制locate file.txt八、其他实用命令8.1 date - 显示或设置系统日期时间date命令用于显示或设置系统日期和时间。
代码语言:javascript复制date示例:
显示当前日期时间:代码语言:javascript复制date设置系统日期时间(需管理员权限):代码语言:javascript复制date -s "2023-01-01 12:34:56"8.2 cal - 显示日历cal命令用于显示日历。
代码语言:javascript复制cal示例:
显示当前月份的日历:代码语言:javascript复制cal显示指定年份的日历:代码语言:javascript复制cal 20238.3 history - 显示命令历史history命令用于显示命令历史记录。
代码语言:javascript复制history示例:
显示所有历史记录:代码语言:javascript复制history清空历史记录:代码语言:javascript复制history -c8.4 alias - 设置命令别名alias命令用于创建命令别名,以简化命令输入。
代码语言:javascript复制alias 别名='命令'示例:
创建ll的别名为ls -l:
代码语言:javascript复制alias ll='ls -l'8.5 uname - 显示系统信息uname命令用于显示系统信息。
代码语言:javascript复制uname [选项]常用选项:
显示所有系统信息:代码语言:javascript复制uname -a8.6 man - 查看命令手册man命令用于查看命令的手册页,提供详细的命令使用信息。
代码语言:javascript复制man 命令名示例:
查看ls命令的手册页:代码语言:javascript复制man ls九、进阶命令与脚本编写9.1 awk - 文本处理工具awk是一种强大的文本处理工具,适用于格式化报告和文本提取。
代码语言:javascript复制awk '模式 {动作}' 文件示例:
打印文件中的第二列:代码语言:javascript复制awk '{print $2}' file.txt9.2 sed - 流编辑器sed是一种流编辑器,适用于对文本文件的批量编辑。
代码语言:javascript复制sed '命令' 文件示例:
将文件中的所有foo替换为bar:代码语言:javascript复制sed 's/foo/bar/g' file.txt9.3 cron - 定时任务cron用于在指定时间运行计划任务。
代码语言:javascript复制crontab -e示例:
每天凌晨2点运行备份脚本:代码语言:javascript复制0 2 * * * /path/to/backup.sh9.4 ssh-keygen - 生成SSH密钥ssh-keygen用于生成SSH公钥和私钥对。
代码语言:javascript复制ssh-keygen示例:
生成密钥对并指定文件名:代码语言:javascript复制ssh-keygen -f ~/.ssh/mykey9.5 scp - 安全复制文件scp用于通过SSH在本地和远程主机之间安全复制文件。
代码语言:javascript复制scp 源文件 目标文件示例:
将本地文件复制到远程主机:代码语言:javascript复制scp file.txt user@remotehost:/path/to/destination9.6 rsync - 同步文件和目录rsync用于在本地和远程主机之间同步文件和目录。
代码语言:javascript复制rsync [选项] 源 目标示例:
同步本地目录到远程主机:代码语言:javascript复制rsync -avz /path/to/local/ user@remotehost:/path/to/remote/9.7 iptables - 配置Linux内核防火墙iptables用于配置和管理Linux内核中的IP包过滤规则。
代码语言:javascript复制iptables [选项]示例:
允许特定端口的入站连接:代码语言:javascript复制iptables -A INPUT -p tcp --dport 22 -j ACCEPT9.8 docker - 容器管理docker用于管理应用容器,可以简化应用的部署和管理。
代码语言:javascript复制docker [选项]示例:
拉取Docker镜像:代码语言:javascript复制docker pull ubuntu运行Docker容器:代码语言:javascript复制docker run -it ubuntu /bin/bash9.9 kubernetes - 容器编排kubernetes用于自动化容器化应用的部署、管理和扩展。
代码语言:javascript复制kubectl [选项]示例:
显示当前集群中的所有Pod:代码语言:javascript复制kubectl get pods9.10 ansible - 自动化配置管理ansible用于自动化配置管理和应用部署。
代码语言:javascript复制ansible [选项]示例:
运行Ansible playbook:代码语言:javascript复制ansible-playbook playbook.yml十、总结与常见问题10.1 常见问题10.1.1 权限不足错误示例:代码语言:javascript复制bash: /etc/hosts: Permission denied解决方法:使用sudo命令提升权限。代码语言:javascript复制sudo nano /etc/hosts10.1.2 文件不存在错误示例:代码语言:javascript复制ls: cannot access 'file.txt': No such file or directory解决方法:检查文件路径是否正确,使用find或locate命令查找文件。10.1.3 命令未找到错误示例:代码语言:javascript复制bash: foo: command not found解决方法:检查命令是否正确输入,或安装相应的软件包。10.2 提高效率的技巧10.2.1 使用别名通过创建别名,可以简化常用命令的输入。
代码语言:javascript复制alias ll='ls -l'
alias gs='git status'10.2.2 使用命令历史使用history命令查看和重用以前输入的命令。
代码语言:javascript复制history使用!加上命令编号重复执行命令:
代码语言:javascript复制!4210.2.3 自动补全使用Tab键自动补全命令和文件名,可以减少输入错误和提高效率。
10.3 持续学习与进阶10.3.1 阅读手册页每个Linux命令都有详细的手册页,可以通过man命令查看。
代码语言:javascript复制man ls10.3.2 在线资源Linux Documentation Project (LDP)Stack Overflow各种Linux发行版的官方文档和社区论坛