### Linux基础命令语言详解
#### 一、系统控制与时间管理命令
- **shutdown**: 用于关闭或重启系统。
- `shutdown -h now`: 立即关机。
- `shutdown -r now`: 立即重启。
- `shutdown -h 10`: 在10分钟后关机。
- 在执行`shutdown`命令后,可以使用`ctrl+c`来取消关机操作。
- `shutdown -h +4`: 设置4分钟后关机。
- `shutdown -r 10`: 在10分钟后重启。
- **exit**: 退出当前Shell或终端。
- **reboot**: 重启系统。
- **date**: 查看或设置系统日期和时间。
- `date`: 显示当前系统时间。
- `date 05050955`: 设置系统时间为5月5日9点55分。
- **cal**: 显示日历。
- `cal`: 显示当前月份的日历。
- `cal 4`: 显示4月份的日历。
#### 二、目录与文件操作命令
- **pwd**: 显示当前工作目录。
- **tar**: 归档工具,用于打包或解包文件。
- `tar -xzf OOo_3.2.0_LinuxX86-64_install_wJRE_zh-CN.tar.gz`: 解压缩OpenOffice安装包。
- **cd**: 改变当前工作目录。
- `cd /usr`: 进入/usr目录。
- `cd ~`: 回到用户家目录。
- `cd ..`: 上一级目录。
- **ls**: 列出目录内容。
- `ls -a`: 显示所有文件和目录,包括隐藏的。
- `ls -l`: 显示详细信息,如权限、修改时间等。
- `ls -d directory`: 只列出目录信息。
- `ls -t`: 按修改时间排序显示文件。
- `ls -R`: 递归显示目录及其子目录中的文件。
- `ls -al`: 详细列出当前目录的所有文件和目录。
- `ls -dl /home`: 详细列出/home目录的信息。
- **rm**: 删除文件或目录。
- `rm list`: 删除名为list的文件。
- `rm -f file`: 强制删除文件。
- `rm temp2 > file`: 将temp2的内容重定向到file中。
- **cat**: 显示文件内容。
- `cat -n install.log`: 显示install.log的内容,并为每一行编号。
- `cat > f1`: 创建一个新文件f1,并进入输入模式。按Ctrl+D保存并退出。
- `cat f1`: 显示f1的内容。
- `cat f1 f2 > f3`: 将f1和f2的内容合并到f3中。
- `cat > f1`: 附加内容到f1文件中。
- `cat ftab`: 显示整个f文件的内容。
- `cat f1 | more`: 使用more分页显示f1的内容。
- `more /root/install.log`: 分页显示/root/install.log的内容。
- `less /root/install.log`: 类似于more,但功能更强大。
- **tail** 和 **head**: 显示文件尾部或头部的若干行。
- `tail -n 10 install.log`: 显示install.log最后10行。
- `head -n 10 install.log`: 显示install.log前10行。
#### 三、帮助与文档查看命令
- **man**: 手册页,用于查看命令的帮助文档。
- `man ls`: 查看ls命令的手册页。
- **more**: 分页显示文本文件。
- `ls --help | more`: 查看ls命令的帮助信息,并通过more分页显示。
- **clear**: 清除屏幕内容。
#### 四、文件搜索与通配符命令
- **wc**: 统计文件中的行数、单词数和字符数。
- `wc -c filename`: 统计filename中的字符数。
- `wc -l *.png`: 统计当前目录下所有.png文件的总行数。
- `ls a?`: 匹配以a开头的文件名。
- `ls [abc]*`: 匹配以a、b或c开头的文件名。
- `ls [!abc]*`: 匹配不以a、b或c开头的文件名。
- `ls [a-z]*`: 匹配以小写字母开头的文件名。
#### 五、Shell与环境配置
- **history**: 显示已执行过的命令历史记录。
- `history 5`: 显示最近执行的5个命令。
- `!201000`: 重复执行历史记录中的第201000条命令。
- `!!`: 重复执行上一条命令。
- **alias**: 定义命令别名。
- `alias ls="ls --color"`: 设置ls命令的别名,使它默认带有颜色显示。
- `alias ei='vi /etc/inittab'`: 设置vi编辑/etc/inittab的别名ei。
- 修改`.bashrc`文件可以使这些设置在每次登录时生效。
#### 六、文本编辑器Vi/Vim
- **vi/vim**: 强大的文本编辑器。
- **vi的基本操作**:
- `vi filename`: 打开或创建文件进行编辑。
- 命令模式下,按下`i`键进入插入模式。
- 在插入模式下,可以使用`Esc`键回到命令模式。
- `:wq`: 保存并退出。
- `:q!`: 不保存强制退出。
- **vi的高级特性**:
- `:set nu`: 显示行号。
- `:set nonu`: 关闭行号显示。
- `:1,20 con 3`: 复制第1到20行,并将它们粘贴到第3行之后。
- `:1,20 m 3`: 移动第1到20行到第3行之后。
- `:1,20 d`: 删除第1到20行。
- `:1,20 s/old/new/g`: 将第1到20行中的所有"old"替换为"new"。
#### 七、用户与组管理
- **用户管理**:
- `/etc/passwd`: 存储用户的非敏感信息,如用户名、用户ID、主目录等。
- `/etc/shadow`: 存储用户的密码信息以及其他敏感信息,如密码过期日期。
- `useradd`: 添加新用户。
- `useradd -c "Tom's Account" -d /home/tom -s /bin/bash tom`: 添加用户tom,设置全名、家目录和Shell。
- `passwd`: 更改用户密码。
- `passwd tom`: 更改用户tom的密码。
- **组管理**:
- `/etc/group`: 存储组的相关信息,如组名、组ID和组成员。
- `/etc/gshadow`: 存储组的敏感信息,如组密码。
- `groupadd`: 添加新组。
- `groupadd developers`: 添加名为developers的新组。
- `gpasswd`: 管理组成员。
- `gpasswd -a tom developers`: 将用户tom添加到developers组。
#### 八、初始化配置文件
- **/etc/inittab**: 系统初始化配置文件。
- `id:3:initdefault`: 设置系统的默认运行级别为3。
- `si:sysinit:/etc/rc.d/init.d/rc.sysinit`: 在启动时执行的初始化脚本。
- `ca::ctrlaltdel:/sbin/shutdown -t3 -r now`: 当按下Ctrl+Alt+Del组合键时触发系统重启。
以上是Linux基础命令的详细介绍,这些命令涵盖了文件系统操作、文本处理、用户管理等多个方面,对于初学者来说是非常有用的入门资料。熟练掌握这些命令能够大大提高工作效率,并为进一步学习更复杂的Linux技术打下坚实的基础。