[Linux]常见命令

以下所有内容均摘抄自 Linux达人养成计划 I

[Linux]常见命令_第1张图片
命令生效的顺序

一、文件处理命令

1.1 目录操作命令

:创建目录 mkdir [选项] <目录名>

  • -p :递归创建目录。意思是在目录 a 下创建一个目录 b,但目录 a 也不存在,这种情况就要使用 -p

rmdir <目录名> 只能删除空目录。正因为这限制,rmdir 基本上不使用,用 rm -r <目录名> 代替.

pwd 查看当前的路径

其他

  1. cd <路径> 转到某个路径下

1.2 文件操作命令

touch <文件名> 在当前路径创建一个文件

rm [选项] <目录或文件> 删除文件,其中选项有:

  • -r 删除目录
  • -f 强制删除,即加了 -f 删除操作的过程种不出现确认操作。

  1. cp [选项] <原文件或目录> <目标目录> 复制命令,其中选项有:
  • -r 复制目录
  • -p 连带文件属性复制。不加该选项,复制后的文件最后修改时间和一些隐藏属性与原文件不一样。
  • -d 若原文件是链接文件,则复制链接属性
  • -a 相当于上面三种选项合并,即 -pdr
  1. mv [原文件或目录] [目标目录] (move)剪切或改名。当原文件的路径与目标路径相同则为改名;反之则为剪切

locatefind

  1. locate <文件名> 在后台数据库中按文件名模糊搜索,搜索速度很快,与 find 相比要快
  • 后台数据库位于 /var/lib/mlocate。不同版本的 OS,文件名可能不同。
  • 对于新创建但没有更新到后台数据库的文件是不能被 locate 找到
  • updatedb 更新数据库
  • locate 搜索范围和规则在 /etc/updatedb.conf 配置文件中
  • 缺点:只能按文件名搜索
  1. find 详见下方
[Linux]常见命令_第2张图片
/etc/updatedb.conf 配置文件

1.3 链接文件操作

硬链接:相当于为某个文件创建了一个指针。特点:

  1. 拥有相同的 i 节点和存储 block 块,可以看做是同一个文件
  2. 可通过 i 节点识别是不是是硬链接
  3. 不能跨分区
  4. 不能为目录创建硬链接
  5. 删除任意文件,硬链接能正常使用

ln <原文件名> <目标路径> 创建硬链接

软链接:相当于 windows 的快捷方式。特点:

  1. 软链接拥有自己的 i 节点和 block 块,但是数据块种保存原文件的文件名和 i 节点号,并没有实际的文件数据。
  2. 软链接文件的十位权限信息都是 *lrwxrwxrwx
  3. 删除原文件,软链接不能使用

ln -s <原文件绝对路径> <目标路径> 创建软链接,后面的两个参数必须是绝对路径。不然创建的软链接只会在目标路径下找原文件。

二、搜索命令

[Linux]常见命令_第3张图片
常见的搜索命令

2.1 文件搜索 locate 和 find

locate 详见上述。

locate 总结一下:

  1. 搜索范围在后台数据库,故此搜索速度也很快
  2. 只能按照文件名搜索

find [搜索范围(即搜索路径)] [搜索条件] 搜索文件,特点:

  • 搜索功能强大,也造成搜索速度很慢并非常耗费系统资源
  • 不使用通配符的话,find 执行的是精确搜索,而不是模糊搜索
  • 通配符 '*'(匹配任意字符)、'?'(匹配任意一个字符)、'[]'(匹配任意一个括号内的字符)
  • 常见搜索条件 :
[Linux]常见命令_第4张图片
find 常见的搜索条件
[Linux]常见命令_第5张图片
find 多条件搜索
# find / -name install.log  // 在根目录按文件名搜索文件名为 install.log 文件
# find /root -name "install.log*"  // 在 /root 路径下搜索文件名以 install.log 开头的文件
# find /root -name "install.log?"
# find /root -name "*[cd]"  // 在 /root 路径下搜索文件名以 c 或者 d 结尾的文件

2.2 字符串搜索命令 grep

grep [选项] <字符串> <文件名> 在文件中匹配包含搜索字符串的字符串。

  • -v 取反
  • -i 忽略大小字
# grep "size" install.log

2.3 命令搜索命令 whereis 与 which

whereis [选项] <命令名> 查看命令所在路径和帮助文档所在位置

  • -b 只查找可执行文件
  • -m 只查找帮助文件

which <命令名> 查看命令所在路径和命令的别名

补充

  1. shell 内置命令是不能通过上述两个命令找到的,比如 cd 命令

三、帮助命令

3.1 帮助命名 man

man [选项] <命令> 查看命令的帮助文档

  • -f 查看命令的帮助文档有哪些级别,与 whatis <命令> 功能相同
  • -k 查看所有包含命令名的帮助文档
[Linux]常见命令_第6张图片
命令的级别
[root@localhost ~]# man -f passwd  // 查看 passwd 的帮助的级别,有 1 级和 5 级
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
passwd [sslpasswd]   (1ssl)  - compute password hashes
[root@localhost ~]# man 1 passwd  // 查看 passwd 帮助文档
[root@localhost ~]# man 5 passwd  // 查看 passwd 配置文件

3.2 其他帮助命令

  • <命令> --help
  • help 查看 shell 内部命令帮助文档。Shell 内部命令是找不到可执行文件且不能用 man 查看 Shell 内部命令的帮助文档。

四、压缩/解压命令

五种常见的压缩格式:.zip; .gz; .bz2; .tar.gz; .tar.bz2

PS : 扩展名一定要写对,不是为了系统(因为系统不需要扩展名),是为了让用户明白使用了哪种压缩格式。

对于 .zip 格式:

  • 与 window 的 .zip 相同
  • 压缩 :zip <压缩文件名> <原文件> 或者 zip -r <压缩文件名> <原目录>
  • 解压缩 :unzip <压缩文件>

对于 .gzip 格式:

  • 压缩 :gzip <原文件>gzip -r <原目录> 这命令只会压缩该目录下的文件
  • 解压缩 :gunzip <压缩文件>gunzip -r <目录>,后者是解压缩该目录下的 gzip 压缩文件

对于 .bz2 格式:

  • 压缩: bzip2 <原文件>bzip2 -k <原文件>,后者保留原文件。bzip2 不能压缩目录
  • 解压缩:bunzip2 <压缩文件>,加 -k 保留压缩文件

对于 .tar.gz.tar.bz2 格式:

  • 为了解决 gzip 不能压缩目录的问题。解决方案是先将目录打包成 tar,再用 gzipbz2 压缩
  • 打包压缩 :tar -cvf <打包文件名> <原文件>,其中选项 -c 代表打包,-v 代表显示过程,-f 代表指定打包后的文件。然后对 tar 文件用 gzipbz2 压缩
  • 解压缩解包:先用 gunzipbunzip2 解压缩,再用 tar -xvf 解打包。
  • tar -zcvf <压缩文件名.tar.gz> <原文件> 将打包压缩合并成一条命令
  • tar -zxvf <压缩文件名.tar.gz> <原文件> 把解压解包合并成一条命令。
  • tar 命令可以同时打包多个文件,如 tar -zcvf temp.tar.gz temp1 temp2 即将 temp1,temp2 文件打包盒压缩成一个文件。
  • -c 代表打包;-x 代表解包;-t 代表测试,即仅看看包里的内容

五、关机和重启命令

[Linux]常见命令_第7张图片
shutdown 命令

但是在 shell 输入 shutdown -r 05:30 会发现 shell 卡在那等待重启而无法再输入命令。应改成

[root@localhost ~]# shutdown -r 05:30 &  // & 代表将这命令置于后台执行,不占用当前 shell

以下命令都不如 shutdown 命令安全。了解即可

[Linux]常见命令_第8张图片
其他关机重启命令

你可能会注意到 init 后面 0 和 6。这数字代表系统的运行级别

[Linux]常见命令_第9张图片
init 命令后的系统运行级别

查看当前系统的运行级别命令 :runlevel

设置系统开机时初始的运行级别的方式:修改 /etc/inittab 文件

六、挂载命令

挂载:为物理设备分配挂载点,挂载点是一个目录。物理设备只要分配了挂载点后才能使用。比如插入 U 盘时想要使用 U 盘,则先为 U 盘分配挂载点,才能访问 U 盘。

挂载

mount :查看系统中已经挂载的设备

  • -a : 根据 /etc/fstab 配置文件,自动挂载。其中 在系统开机时会根据 /etc/fstab 配置文件进行自动挂载一些必要的设备。
[Linux]常见命令_第10张图片
挂载命令

在挂载光盘之前,一定要保证在光驱中放入光盘。挂载成功后,就从 /mnt/cdrom 中访问光盘。

[Linux]常见命令_第11张图片
挂载与卸载光盘示例

七、用户登陆查看命令

[Linux]常见命令_第12张图片
w 和 who 查看登陆用户信息的命令
[Linux]常见命令_第13张图片
last 和 lastlog 命令

八、多命令顺序执行和管道

[Linux]常见命令_第14张图片
多命令顺序执行
  • || 只会判断紧挨着的命令;&& 会判断前面的命令,不限于最近的命令
[Linux]常见命令_第15张图片
管道
  • 举例,netstat -an | grep "ESTABLISHED" | wc -l
  • 要保证命令1 的正常输出能够符合命令2 的输入。

九、用户/组管理命令

用户的管理:

  • useradd <用户名> 创建用户,并将用户加入到组名与用户名相同的组。
    1. useradd -g <组名> <用户名> : 创建用户并加入指定的组中
    2. useradd -d <家目录> <用户名> : 创建用户并指定其的家目录
  • usermod 修改用户信息
  • userdel <用户名> : 删除用户,不会删除用户的家目录。
    1. userdel -r <用户名> : 删除用户及其家目录
  • passwd
    1. passwd -l <用户名> : 对该用户上锁,禁止其操作
    2. passwd -u <用户名> : 解锁

用户组的管理:

  • groupadd <组名> 创建组
  • groupmod [选项] <参数> <旧组名> : 修改组信息
    1. groupmod -n <新组名> <旧组名> : 修改组名
    2. groupmod -g <新组编号> <旧组名> : 修改组名
  • groupdel <组名> 删除组。必须删除组之前,保证组内没有成员

其他命令 :

  • su <用户名> 切换用户。root 用户切换到普通用户是不需要密码。
  • id <用户名> : 显示用户名信息
  • groups <用户名> : 显示用户的组信息

十. 其他命令

  • 别名 :

    1. alias 查看系统已定义的别名;
    2. alias <别名>='<原命令>' 为命令取别名;
    3. unalias <别名> 删除别名
    4. 以上的修改当系统重启后就不存在了。故此需要把一些别名写入当前用户其中一个配置文件 ~/.bashrc 让其永久生效。
  • 历史命令:

    1. history 查看当前用户所有历史命令,包括了缓存中和历史命令保存文件 ~/.bash_history 中的历史命令。
    2. -w : 把缓存中的历史命令写入到历史命令保存文件 ~/.bash_history 中。一般来说,缓存中的历史命令会在用户正常退出时自动同步到 ~/.bash_history 文件中。
    3. 使用 !字串 会执行最后一条以该字串开头的命令
  • 输出重定向:命令 > 文件命令 >> 文件

    1. > 覆盖,>> 追加
    2. 2 代表标准错误输出重定向,当使用标准错误输出重定向是 > 左右两侧都不能有空格
    3. & 代表标准输出和标准错误同时重定向到一个文件
      [Linux]常见命令_第16张图片
      输出重定向
[Linux]常见命令_第17张图片
通配符
[Linux]常见命令_第18张图片
Bash 中其他特殊符号
[root@localhost ~]# aaa=123
[root@localhost ~]# echo $aaa
123
  • 查看磁盘分区使用情况 :df
    1. -a 显示所有文件系统的磁盘使用情况
    2. -h 磁盘大小的容量进行人性化显示
    3. -T 显示磁盘的文件类型

sudo 与 su

sudo :允许普通用户使用 root 权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。

问 :如何赋予普通用户执行 sudo 权限呢?

答 :

  1. 使用 visudo 命令修改 /etc/sudoers 文件;
  2. 在文件中为指定用户添加 %user ALL = (ALL)ALL,保存退出

wget

用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录

命令执行位置

对于 root 用户执行的命令位置应该在 /usr/bin;对于一般用户执行的命令位置在 /usr/local/bin。可使用 whereis <命令名> 检验。

你可能感兴趣的:([Linux]常见命令)