### Linux系统命令详解
Linux作为一款强大的开源操作系统,在服务器领域占据着极其重要的地位。了解和掌握Linux命令是每个系统管理员和开发人员的基本技能之一。本文将详细介绍一系列常用的Linux命令及其用法,帮助读者更好地理解和使用这些命令。
#### 1. 查看系统信息
- **arch**: 显示机器的处理器架构。
- 例如:`arch`
- **uname -m**: 同样用于显示机器的处理器架构。
- 示例:`uname -m`
- **uname -r**: 显示当前正在使用的内核版本。
- 示例:`uname -r`
- **dmidecode -q**: 显示硬件系统部件(SMBIOS/DMI)信息。
- 示例:`dmidecode -q`
#### 2. 硬件信息查询
- **hdparm -i /dev/hda**: 罗列一个磁盘的架构特性。
- 示例:`hdparm -i /dev/hda`
- **hdparm -tT /dev/sda**: 在磁盘上执行测试性读取操作。
- 示例:`hdparm -tT /dev/sda`
- **cat /proc/cpuinfo**: 显示CPU信息。
- 示例:`cat /proc/cpuinfo`
- **cat /proc/interrupts**: 显示中断信息。
- 示例:`cat /proc/interrupts`
- **cat /proc/meminfo**: 检查内存使用情况。
- 示例:`cat /proc/meminfo`
- **cat /proc/swaps**: 显示哪些swap被使用。
- 示例:`cat /proc/swaps`
- **cat /proc/version**: 显示内核版本。
- 示例:`cat /proc/version`
- **cat /proc/net/dev**: 显示网络适配器及统计信息。
- 示例:`cat /proc/net/dev`
- **cat /proc/mounts**: 显示已加载的文件系统。
- 示例:`cat /proc/mounts`
- **lspci -tv**: 列出PCI设备。
- 示例:`lspci -tv`
- **lsusb -tv**: 显示USB设备。
- 示例:`lsusb -tv`
#### 3. 时间与日期管理
- **date**: 显示系统日期和时间。
- 示例:`date`
- **cal 2007**: 显示2007年的日历。
- 示例:`cal 2007`
- **date MM DD HH MM YYYY.SS**: 设置日期和时间。
- 示例:`date 04 12 17 00 2007.00`
- **clock -w**: 将时间修改保存到BIOS。
- 示例:`clock -w`
#### 4. 系统启动与关机
- **shutdown -h now**: 关闭系统。
- 示例:`shutdown -h now`
- **init 0**: 使用运行级别方式关闭系统。
- 示例:`init 0`
- **telinit 0**: 使用telinit方式关闭系统。
- 示例:`telinit 0`
- **shutdown -c**: 取消预定的系统关闭。
- 示例:`shutdown -c`
- **shutdown -r now**: 重启系统。
- 示例:`shutdown -r now`
- **reboot**: 直接重启系统。
- 示例:`reboot`
- **logout**: 注销当前用户会话。
- 示例:`logout`
#### 5. 文件与目录操作
- **cd /home**: 进入 `/home` 目录。
- 示例:`cd /home`
- **cd ..**: 返回上级目录。
- 示例:`cd ..`
- **cd ~**: 进入个人的主目录。
- 示例:`cd ~`
- **pwd**: 显示当前工作路径。
- 示例:`pwd`
- **ls**: 查看目录中的文件。
- 示例:`ls`
- **ls -F**: 查看目录中的文件,带有标识符。
- 示例:`ls -F`
- **ls -l**: 显示文件和目录的详细信息。
- 示例:`ls -l`
- **ls -a**: 显示隐藏文件。
- 示例:`ls -a`
- **ls *[0-9]***: 显示包含数字的文件名和目录名。
- 示例:`ls *[0-9]*`
- **tree**: 显示文件和目录由根目录开始的树形结构。
- 示例:`tree`
- **mkdir dir1**: 创建一个叫做 `dir1` 的目录。
- 示例:`mkdir dir1`
- **mkdir dir1 dir2**: 同时创建两个目录。
- 示例:`mkdir dir1 dir2`
- **mkdir -p tmp/dir1/dir2**: 创建一个目录树。
- 示例:`mkdir -p tmp/dir1/dir2`
- **rm -f file1**: 删除一个叫做 `file1` 的文件。
- 示例:`rm -f file1`
- **rmdir dir1**: 删除一个叫做 `dir1` 的空目录。
- 示例:`rmdir dir1`
- **rm -rf dir1**: 删除一个叫做 `dir1` 的目录及其中的所有内容。
- 示例:`rm -rf dir1`
- **mv dir1 new_dir**: 重命名或移动一个目录。
- 示例:`mv dir1 new_dir`
- **cp file1 file2**: 复制一个文件。
- 示例:`cp file1 file2`
- **cp dir/* .**: 复制一个目录下的所有文件到当前工作目录。
- 示例:`cp dir/* .`
- **cp -a /tmp/dir1 .**: 复制一个目录到当前工作目录。
- 示例:`cp -a /tmp/dir1 .`
- **cp -a dir1 dir2**: 复制一个目录。
- 示例:`cp -a dir1 dir2`
- **ln -s file1 lnk1**: 创建一个指向文件或目录的软链接。
- 示例:`ln -s file1 lnk1`
- **ln file1 lnk1**: 创建一个指向文件或目录的硬链接。
- 示例:`ln file1 lnk1`
- **touch -t YYMMDDHHMM file1**: 修改一个文件或目录的时间戳。
- 示例:`touch -t 0712250000 file1`
#### 6. 文件搜索
- **find / -name "file1"**: 从 `/` 开始进入根文件系统搜索文件和目录。
- 示例:`find / -name "file1"`
- **find / -user user1**: 搜索属于用户 `user1` 的文件和目录。
- 示例:`find / -user user1`
- **find /home/user1 -name "*.bin"**: 在目录 `/home/user1` 中搜索带有 `.bin` 结尾的文件。
- 示例:`find /home/user1 -name "*.bin"`
- **find /usr/bin -type f -atime +100**: 搜索在过去100天内未被使用过的执行文件。
- 示例:`find /usr/bin -type f -atime +100`
- **find /usr/bin -type f -mtime -10**: 搜索在10天内被创建或者修改过的文件。
- 示例:`find /usr/bin -type f -mtime -10`
- **find / -name "*.rpm" -exec chmod 755 '{}' \;**: 搜索以 `.rpm` 结尾的文件并定义其权限。
- 示例:`find / -name "*.rpm" -exec chmod 755 '{}' \;`
- **find / -xdev -name "*.rpm"**: 搜索以 `.rpm` 结尾的文件,忽略光驱、捷盘等可移动设备。
- 示例:`find / -xdev -name "*.rpm"`
以上命令涵盖了Linux系统中常见的操作需求,包括系统信息查询、硬件信息查询、时间日期管理、启动与关机操作、文件与目录操作以及文件搜索等方面。熟练掌握这些命令有助于提高工作效率,更好地管理和维护Linux系统。