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

一、文件处理命令
1.1 目录操作命令
增:创建目录 mkdir [选项] <目录名>
-
-p
:递归创建目录。意思是在目录 a 下创建一个目录 b,但目录 a 也不存在,这种情况就要使用-p
删:rmdir <目录名>
只能删除空目录。正因为这限制,rmdir
基本上不使用,用 rm -r <目录名>
代替.
改:
查:pwd
查看当前的路径
其他:
-
cd <路径>
转到某个路径下
1.2 文件操作命令
增:touch <文件名>
在当前路径创建一个文件
删:rm [选项] <目录或文件>
删除文件,其中选项有:
-
-r
删除目录 -
-f
强制删除,即加了-f
删除操作的过程种不出现确认操作。
改:
-
cp [选项] <原文件或目录> <目标目录>
复制命令,其中选项有:
-
-r
复制目录 -
-p
连带文件属性复制。不加该选项,复制后的文件最后修改时间和一些隐藏属性与原文件不一样。 -
-d
若原文件是链接文件,则复制链接属性 -
-a
相当于上面三种选项合并,即-pdr
-
mv [原文件或目录] [目标目录]
(move)剪切或改名。当原文件的路径与目标路径相同则为改名;反之则为剪切
查:locate
、find
-
locate <文件名>
在后台数据库中按文件名模糊搜索,搜索速度很快,与find
相比要快
- 后台数据库位于 /var/lib/mlocate。不同版本的 OS,文件名可能不同。
- 对于新创建但没有更新到后台数据库的文件是不能被
locate
找到 -
updatedb
更新数据库 -
locate
搜索范围和规则在 /etc/updatedb.conf 配置文件中 - 缺点:只能按文件名搜索
-
find
详见下方

1.3 链接文件操作
硬链接:相当于为某个文件创建了一个指针。特点:
- 拥有相同的 i 节点和存储 block 块,可以看做是同一个文件
- 可通过 i 节点识别是不是是硬链接
- 不能跨分区
- 不能为目录创建硬链接
- 删除任意文件,硬链接能正常使用
ln <原文件名> <目标路径>
创建硬链接
软链接:相当于 windows 的快捷方式。特点:
- 软链接拥有自己的 i 节点和 block 块,但是数据块种保存原文件的文件名和 i 节点号,并没有实际的文件数据。
- 软链接文件的十位权限信息都是 *lrwxrwxrwx
- 删除原文件,软链接不能使用
ln -s <原文件绝对路径> <目标路径>
创建软链接,后面的两个参数必须是绝对路径。不然创建的软链接只会在目标路径下找原文件。
二、搜索命令

2.1 文件搜索 locate 和 find
locate
详见上述。
locate
总结一下:
- 搜索范围在后台数据库,故此搜索速度也很快
- 只能按照文件名搜索
find [搜索范围(即搜索路径)] [搜索条件]
搜索文件,特点:
- 搜索功能强大,也造成搜索速度很慢并非常耗费系统资源
- 不使用通配符的话,
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 <命令名>
查看命令所在路径和命令的别名
补充:
- shell 内置命令是不能通过上述两个命令找到的,比如
cd
命令
三、帮助命令
3.1 帮助命名 man
man [选项] <命令>
查看命令的帮助文档
-
-f
查看命令的帮助文档有哪些级别,与whatis <命令>
功能相同 -
-k
查看所有包含命令名的帮助文档

[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 内部命令帮助文档。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,再用gzip
或bz2
压缩 - 打包压缩 :
tar -cvf <打包文件名> <原文件>
,其中选项-c
代表打包,-v
代表显示过程,-f
代表指定打包后的文件。然后对 tar 文件用gzip
或bz2
压缩 - 解压缩解包:先用
gunzip
或bunzip2
解压缩,再用tar -xvf <tar文件>
解打包。 -
tar -zcvf <压缩文件名.tar.gz> <原文件>
将打包压缩合并成一条命令 -
tar -zxvf <压缩文件名.tar.gz> <原文件>
把解压解包合并成一条命令。 -
tar
命令可以同时打包多个文件,如tar -zcvf temp.tar.gz temp1 temp2
即将 temp1,temp2 文件打包盒压缩成一个文件。 -
-c
代表打包;-x
代表解包;-t
代表测试,即仅看看包里的内容
五、关机和重启命令

但是在 shell 输入 shutdown -r 05:30
会发现 shell 卡在那等待重启而无法再输入命令。应改成
[root@localhost ~]# shutdown -r 05:30 & // & 代表将这命令置于后台执行,不占用当前 shell
以下命令都不如 shutdown
命令安全。了解即可

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

查看当前系统的运行级别命令 :runlevel
设置系统开机时初始的运行级别的方式:修改 /etc/inittab 文件
六、挂载命令
挂载:为物理设备分配挂载点,挂载点是一个目录。物理设备只要分配了挂载点后才能使用。比如插入 U 盘时想要使用 U 盘,则先为 U 盘分配挂载点,才能访问 U 盘。
挂载
mount
:查看系统中已经挂载的设备
-
-a
: 根据 /etc/fstab 配置文件,自动挂载。其中 在系统开机时会根据 /etc/fstab 配置文件进行自动挂载一些必要的设备。

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

七、用户登陆查看命令


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

-
||
只会判断紧挨着的命令;&&
会判断前面的命令,不限于最近的命令

- 举例,
netstat -an | grep "ESTABLISHED" | wc -l
- 要保证命令1 的正常输出能够符合命令2 的输入。
九、用户/组管理命令
用户的管理:
-
useradd <用户名>
创建用户,并将用户加入到组名与用户名相同的组。-
useradd -g <组名> <用户名>
: 创建用户并加入指定的组中 -
useradd -d <家目录> <用户名>
: 创建用户并指定其的家目录
-
-
usermod
修改用户信息 -
userdel <用户名>
: 删除用户,不会删除用户的家目录。-
userdel -r <用户名>
: 删除用户及其家目录
-
-
passwd
-
passwd -l <用户名>
: 对该用户上锁,禁止其操作 -
passwd -u <用户名>
: 解锁
-
用户组的管理:
-
groupadd <组名>
创建组 -
groupmod [选项] <参数> <旧组名>
: 修改组信息-
groupmod -n <新组名> <旧组名>
: 修改组名 -
groupmod -g <新组编号> <旧组名>
: 修改组名
-
-
groupdel <组名>
删除组。必须删除组之前,保证组内没有成员
其他命令 :
-
su <用户名>
切换用户。root 用户切换到普通用户是不需要密码。 -
id <用户名>
: 显示用户名信息 -
groups <用户名>
: 显示用户的组信息
十. 其他命令
-
别名 :
-
alias
查看系统已定义的别名; -
alias <别名>='<原命令>'
为命令取别名; -
unalias <别名>
删除别名 - 以上的修改当系统重启后就不存在了。故此需要把一些别名写入当前用户其中一个配置文件 ~/.bashrc 让其永久生效。
-
-
历史命令:
-
history
查看当前用户所有历史命令,包括了缓存中和历史命令保存文件 ~/.bash_history 中的历史命令。 -
-w
: 把缓存中的历史命令写入到历史命令保存文件 ~/.bash_history 中。一般来说,缓存中的历史命令会在用户正常退出时自动同步到 ~/.bash_history 文件中。 - 使用 !字串 会执行最后一条以该字串开头的命令
-
-
输出重定向:
命令 > 文件
与命令 >> 文件
-
>
覆盖,>>
追加 -
2
代表标准错误输出重定向,当使用标准错误输出重定向是>
左右两侧都不能有空格 -
&
代表标准输出和标准错误同时重定向到一个文件
输出重定向
-


[root@localhost ~]# aaa=123
[root@localhost ~]# echo $aaa
123
- 查看磁盘分区使用情况 :
df
-
-a
显示所有文件系统的磁盘使用情况 -
-h
磁盘大小的容量进行人性化显示 -
-T
显示磁盘的文件类型
-
sudo 与 su
sudo :允许普通用户使用 root 权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。
问 :如何赋予普通用户执行 sudo 权限呢?
答 :
- 使用
visudo
命令修改 /etc/sudoers 文件; - 在文件中为指定用户添加
%user ALL = (ALL)ALL
,保存退出
wget
用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录
命令执行位置
对于 root 用户执行的命令位置应该在 /usr/bin;对于一般用户执行的命令位置在 /usr/local/bin。可使用 whereis <命令名>
检验。
网友评论