shell命令大全
### Shell命令大全知识点详解 #### 一、线上查询及帮助命令 在线查询及帮助命令是初学者接触Shell时首先需要掌握的一类命令。这类命令能够帮助用户了解其他Shell命令的具体用法及其参数设置。 - **man**: 手册页查看器,是最常用的帮助命令之一,可以通过`man 命令名`来查看该命令的手册页。 - **info**: 类似于man,但提供了更多的交互性。例如,`info ls`可以查看ls命令的信息。 - **whatis**: 显示命令的一行简短描述。例如,`whatis ls`将显示关于ls命令的基本描述。 - **apropos**: 搜索手册页的关键词,帮助找到相关的命令。例如,`apropos find`可以帮助查找与find相关的命令或选项。 - **help**: 内置命令的帮助工具,通常用于查看Shell内部命令的使用方法。例如,在bash中输入`help cd`可以查看cd命令的用法。 #### 二、文件和目录操作命令 这一类命令主要用于文件和目录的操作,是日常工作中最常用的一类命令。 - **mkdir**: 创建目录。例如,`mkdir test`创建名为test的新目录。 - **rmdir**: 删除空目录。例如,`rmdir test`删除名为test的空目录。 - **rm**: 删除文件或目录。例如,`rm file.txt`删除名为file.txt的文件。 - **mv**: 移动文件或重命名文件。例如,`mv file1.txt file2.txt`将file1.txt重命名为file2.txt。 - **cp**: 复制文件或目录。例如,`cp file1.txt file2.txt`复制file1.txt到file2.txt。 - **touch**: 创建新文件或更新现有文件的时间戳。例如,`touch newfile.txt`创建一个名为newfile.txt的新文件。 - **ln**: 创建链接。例如,`ln -s source target`创建指向source的符号链接target。 #### 三、查看文件及内容处理命令 此类命令用于查看文件内容以及对文件内容进行基本处理。 - **cat**: 显示文件内容。例如,`cat file.txt`显示file.txt的内容。 - **more**: 分页显示文件内容。例如,`more file.txt`分页显示file.txt的内容。 - **less**: 类似于more,但提供更多的交互性。例如,`less file.txt`分页显示并允许前后翻页。 - **head**: 显示文件的前几行。例如,`head -n 10 file.txt`显示file.txt的前10行。 - **tail**: 显示文件的后几行。例如,`tail -n 10 file.txt`显示file.txt的最后10行。 - **grep**: 在文件中搜索匹配正则表达式的行。例如,`grep "pattern" file.txt`搜索file.txt中包含"pattern"的行。 - **sed**: 流编辑器,用于文本转换和过滤。例如,`sed 's/pattern/replacement/g' file.txt`替换file.txt中的所有"pattern"为"replacement"。 - **awk**: 强大的文本处理工具,支持复杂的文本分析和格式化。例如,`awk '{print $1}' file.txt`打印file.txt中每一行的第一列。 #### 四、文件压缩及解压缩命令 用于文件的压缩与解压缩操作。 - **gzip**: 压缩文件。例如,`gzip file.txt`压缩file.txt为file.txt.gz。 - **gunzip**: 解压文件。例如,`gunzip file.txt.gz`解压file.txt.gz为file.txt。 - **tar**: 归档工具,常用于打包多个文件为一个档案文件。例如,`tar -cvf archive.tar file1.txt file2.txt`创建包含file1.txt和file2.txt的archive.tar。 - **xz**: 高效的压缩工具。例如,`xz file.txt`压缩file.txt为file.txt.xz。 - **unxz**: 解压xz压缩文件。例如,`unxz file.txt.xz`解压file.txt.xz为file.txt。 #### 五、信息显示命令 这些命令用于显示系统信息或文件的状态等。 - **date**: 显示当前日期时间。例如,`date`显示当前的日期和时间。 - **cal**: 显示日历。例如,`cal`显示当前月份的日历。 - **df**: 显示磁盘分区的使用情况。例如,`df -h`以易于阅读的方式显示磁盘空间的使用情况。 - **du**: 查看文件或目录的磁盘使用量。例如,`du -sh /home`显示/home目录的磁盘使用量。 - **free**: 显示系统内存状态。例如,`free -m`显示以MB为单位的内存使用情况。 - **ps**: 显示运行中的进程信息。例如,`ps aux`显示所有用户的运行中的进程列表。 - **top**: 动态显示系统中各进程的资源占用状况。例如,`top`启动后显示实时更新的系统进程信息。 #### 六、搜索文件命令 用于在文件系统中搜索特定的文件或目录。 - **find**: 在指定路径下查找文件。例如,`find /home -name "*.txt"`在/home目录下查找所有的.txt文件。 - **locate**: 快速查找文件位置。例如,`locate "*.txt"`查找所有名为*.txt的文件。 - **whereis**: 查找可执行文件、源代码和手册页的位置。例如,`whereis ls`显示ls命令的可执行文件、源代码和手册页的位置。 #### 七、用户管理命令 用于管理Linux系统中的用户账户。 - **useradd**: 添加新用户。例如,`useradd john`添加名为john的新用户。 - **usermod**: 修改用户账户属性。例如,`usermod -aG wheel john`将john用户添加到wheel组。 - **passwd**: 更改用户密码。例如,`passwd john`更改john用户的密码。 - **userdel**: 删除用户账户。例如,`userdel john`删除john用户。 #### 八、基础网络操作命令 用于进行基础的网络配置和测试。 - **ping**: 测试网络连通性。例如,`ping www.example.com`测试与www.example.com的网络连通性。 - **ifconfig**: 查看或配置网络接口。例如,`ifconfig eth0 up`启动eth0网络接口。 - **ip**: 替代ifconfig,用于显示和配置网络设备。例如,`ip addr show eth0`显示eth0的地址信息。 - **nslookup**: 查询DNS信息。例如,`nslookup www.example.com`查询www.example.com的DNS记录。 - **netstat**: 显示网络连接、路由表、接口统计信息等。例如,`netstat -tuln`显示监听的TCP/UDP端口。 #### 九、深入网络操作命令 更高级的网络配置和调试工具。 - **traceroute**: 跟踪数据包到达目标主机所经过的路径。例如,`traceroute www.example.com`跟踪到达www.example.com的路径。 - **tcpdump**: 抓取网络数据包。例如,`tcpdump host www.example.com`抓取所有与www.example.com通信的数据包。 - **ss**: 显示套接字统计信息。例如,`ss -tuln`显示监听的TCP/UDP端口。 - **route**: 显示或修改路由表。例如,`route add default gw 192.168.1.1`添加默认网关。 #### 十、有关磁盘与文件系统的命令 用于管理磁盘和文件系统。 - **fdisk**: 分区磁盘。例如,`fdisk /dev/sda`管理/dev/sda的分区。 - **mkfs**: 创建文件系统。例如,`mkfs.ext4 /dev/sda1`在/dev/sda1上创建ext4文件系统。 - **mount**: 挂载文件系统。例如,`mount /dev/sda1 /mnt`挂载/dev/sda1到/mnt目录。 - **umount**: 卸载文件系统。例如,`umount /mnt`卸载/mnt目录下的文件系统。 - **mkswap**: 创建交换分区。例如,`mkswap /dev/sdb1`在/dev/sdb1上创建交换分区。 - **swapon**: 启用交换分区。例如,`swapon /dev/sdb1`启用/dev/sdb1作为交换分区。 #### 十一、系统权限及用户授权相关命令 用于管理文件权限和用户授权。 - **chmod**: 改变文件或目录的权限。例如,`chmod 755 script.sh`使script.sh具有读写执行权限。 - **chown**: 改变文件或目录的所有者。例如,`chown john:group file.txt`将file.txt的所有者改为john,并将其所属组改为group。 - **chgrp**: 改变文件或目录的所属组。例如,`chgrp group file.txt`将file.txt的所属组改为group。 #### 十二、查看系统用户登录信息的命令 用于查看当前登录的用户信息。 - **who**: 显示当前登录的用户。例如,`who`显示当前登录的所有用户。 - **w**: 显示当前登录的用户及他们的活动。例如,`w`显示包括终端类型、登录时间等信息。 - **last**: 显示登录过的用户记录。例如,`last`显示登录过的用户记录。 #### 十三、内置命令及其他 这些命令是Shell的一部分,可以直接通过Shell使用。 - **cd**: 改变当前工作目录。例如,`cd /home/john`进入/home/john目录。 - **echo**: 输出文本到标准输出。例如,`echo "Hello World"`输出"Hello World"。 - **exit**: 退出Shell。例如,`exit`退出当前Shell会话。 #### 十四、系统管理与性能监视命令 用于监控系统性能和进行系统管理任务。 - **top**: 实时显示系统中各个进程的资源占用状况。例如,`top`实时显示系统资源使用情况。 - **sar**: 系统活动报告工具,用于收集和报告系统活动信息。例如,`sar -u`显示CPU利用率报告。 - **vmstat**: 显示虚拟内存统计信息。例如,`vmstat`显示虚拟内存的统计信息。 - **iostat**: 显示磁盘I/O统计信息。例如,`iostat -d`显示磁盘I/O统计信息。 - **mpstat**: 显示多处理器系统的统计信息。例如,`mpstat`显示多处理器的统计信息。 #### 十五、关机/重启/注销和查看系统信息的命令 用于控制系统的启动、关闭和重启。 - **shutdown**: 关闭或重启系统。例如,`shutdown -h now`立即关闭系统。 - **reboot**: 重启系统。例如,`reboot`重启系统。 - **poweroff**: 关闭系统。例如,`poweroff`关闭系统。 - **logout**: 注销当前用户会话。例如,`logout`注销当前用户会话。 - **uname**: 显示系统信息。例如,`uname -a`显示详细的系统信息。 #### 十六、进程管理相关命令 用于管理和查看进程状态。 - **kill**: 发送信号给进程。例如,`kill -9 1234`发送SIGKILL信号给PID为1234的进程。 - **killall**: 发送信号给指定名称的所有进程。例如,`killall sshd`发送SIGTERM信号给所有名为sshd的进程。 - **ps**: 显示当前运行的进程信息。例如,`ps aux`显示所有用户的所有进程。 - **top**: 显示系统中各个进程的资源占用状况。例如,`top`实时显示系统资源使用情况。 以上是根据“shell命令大全”这一主题总结的详细知识点,覆盖了从基础命令到高级命令的各个方面,希望对学习和使用Shell命令有所帮助。