从今天开始汇总一些linux的常用命令,不会太全,这个博客(一)只介绍帮助命令、目录命令和文件操作命令,这个入门基础命令适合linux的初学者,也方便山东科技大学的linux操作系统、docker等涉及到linux命令的查找。
目录
一、帮助命令
1.1 man命令
man命令其实很简单,我们以下的命令会有各自的使用方式,man这个命令呢就可以理解为查看一个命令的使用手册,给大家看一个简单的,这里就不赘述了。用man ls查看ls命令的各种用法
[root@localhost /]# man ls
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
-b, --escape
print C-style escapes for nongraphic characters
1.2 help命令
也是帮助命令查询的,比如我想查查上述的man命令什么意思
[root@localhost /]# man -help
Usage: man [OPTION...] [SECTION] PAGE...
-C, --config-file=FILE use this user configuration file
-d, --debug emit debugging messages
-D, --default reset all options to their default values
--warnings[=WARNINGS] enable warnings from groff
Main modes of operation:
-f, --whatis equivalent to whatis
-k, --apropos equivalent to apro
二、目录操作命令
2.1 ls命令
这个太基础了,你们一定一定会用到!!!废话不多说了
ls可以显示当前目录下的文件和目录,配合不同的参数,会产生不同的显示效果
2.1.1 ll命令
ll命令就是这个样子
咱们摘出来一个刨析一下:
lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin
1、第一个l,代表一个软连接文件,你可以把它当成你windows里的快捷方式,明明你的快捷方式在桌面,咋还能打开你d盘的应用呢?这就是可以和linux的软连接类比。其它文件如下图所示:
- | 普通文件 |
d | 目录文件 |
p | 管理文件 |
l | 连接文件 |
b | 块设备文件 |
c | 字符设备文件 |
2、rwx(所有者权限)rwx(组用户权限,以后后面会提组group的概念)rwx(其它用户quan)
r | 可读 |
w | 可写 |
x | 可执行 |
- | 无权限 |
3、权限后面有一个小点 . ,有可能带有acl访问控制列表)如果有acl,细粒度的划分文件权限(比如给一个人开个小灶啥的,有的话就是+
4、点后面的数字,对于普通文件,代表链接数,对于目录文件,代表子目录数,一般新建一个空目录都为2,因为一个空目录都还有两个隐藏文件,一个.,一个..。一会儿会有命令介绍这个隐藏文件
5、后面有两个root,一个代表用户名,一个代表组名,说明是root组里的root用户创建的,这个后期会有博客介绍。
6、后面是文件大小,单位字节,后面会有命令可以更好的查看文件大小
7、后面的是时间和文件名字,这个不多说了
2.1.2 用grep+正则表达式过滤展示
ll | grep ^d,过滤所有的目录文件
同理,还有ll /etc | grep confa$,就是为了列举/etc 目录下全部都是扩展名为conf文件的,这个不在列举了。
2.1.3 ls -a命令显示隐藏文件
刚才说了,一个建一个新目录,会自带两个隐藏文件,一个点,一个点点。
[root@localhost /]# ll -a
total 24
dr-xr-xr-x. 18 root root 236 Dec 4 06:05 .
dr-xr-xr-x. 18 root root 236 Dec 4 06:05 ..
lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Dec 3 02:55 boot
ll -at,后面加个t呢,就是按照时间排序。
2.1.4 ls -lh 命令显示文件大小
这个文件大小是按照普通人的思维来看的,h:human,比如
[root@localhost /]# ls -lh
total 24K
lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin
dr-xr-xr-x. 5 root root 4.0K Dec 3 02:55 boot
drwxr-xr-x. 19 root root 3.2K Dec 4 17:41 dev
drwxr-xr-x. 145 root root 8.0K Dec 4 17:41 etc
文件大小后面就有单位了
2.2 cd命令
这个大家都知道吧,cd +目录地址 就是到那个地址呗
2.3 pwd命令
这个挺重要的,比如你cd过来cd过去,当你不知道在哪了,或者需要复制路径的时候,pwd一下
[root@localhost fonts]# pwd
/boot/grub2/fonts
[root@localhost fonts]#
2.4 mkdir命令
mkdir 文件名字,在当前目录下建一个目录文件
[root@localhost /]# mkdir vrlab
[root@localhost /]# ll
total 24
drwxr-xr-x. 2 root root 6 Dec 4 17:57 vrlab
但是仅仅mkdir只能创建一级目录,我想顺便在vrlab目录下再直接建一个lmy和zqr
2.4.1mkdir -p命令
mkdir后面加个-p就可了
[root@localhost /]# mkdir -p vrlab/lmy vrlab/zqr
[root@localhost /]# ll vrlab/
total 0
drwxr-xr-x. 2 root root 6 Dec 4 18:00 lmy
drwxr-xr-x. 2 root root 6 Dec 4 18:00 zqr
[root@localhost /]#
2.5 rmdir命令
删除目录,比如我想删刚才那个有两个子目录的vrlab,我直接用rmdir vrlab/试试
[root@localhost /]# rmdir vrlab/
rmdir: failed to remove 'vrlab/': Directory not empty
[root@localhost /]#
不让删,是因为里面不是空目录,里面还有lmy和zqr两个目录
我们加个-p,rmdir是连续递归删除目录,当子目录被删除后使它也成为空目录的话,则顺便一并删除.
[root@localhost /]# rmdir vrlab/lmy/ vrlab/zqr/
这里给大家解释一下吧,其实rmdir是只能删除空目录,-p以后,是递归删除子目录,然后使他成为一个空目录,然后再干掉这个空目录
三、文件操作命令
3.1 touch命令
创建一个空文件 :touch 文件名,这个比较简单
[root@localhost /]# touch vrlabfile
[root@localhost /]# ll
total 24
-rw-r--r--. 1 root root 0 Dec 4 18:18 vrlabfile
还有一些小参数供参考:-a 改变文件的读取时间记录,-m 改变文件的修改时间记录
-d 更改文件的日期时间。
3.2 cp命令
把文件data.txt 复制成data2.txt
[root@localhost /]# touch data.txt
[root@localhost /]# cp data.txt data1.txt
[root@localhost /]# ll
total 24
lrwxrwxrwx. 1 root root 7 Aug 12 2018 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Dec 3 02:55 boot
-rw-r--r--. 1 root root 0 Dec 4 18:31 data1.txt
-rw-r--r--. 1 root root 0 Dec 4 18:31 data.txt
data1.txt复制到/tmp/data目录下,可以重命名,如果cp data1.txt /tmp/lmy,就是将data1.txt复制到/tmp目录下后重命名为lmy
[root@localhost /]# cp data1.txt /tmp/
[root@localhost /]# cd /tmp/
[root@localhost tmp]# ll
total 12
-rw-r--r--. 1 root root 40 Dec 4 18:37 data1.txt
cp -r 把/vrlab/lmy 目录内的内容复制到/tmp/data目录下
[root@localhost /]# cp -r /vrlab/ /tmp/data
[root@localhost /]# cd /tmp/data/
[root@localhost data]# ll
total 0
drwxr-xr-x. 2 root root 6 Dec 4 18:51 vrlab
注意一下:cp-ir,是如果已经存在目标端文件,则提示是否要覆盖
3.3 mv命令
移动或更名现有的文件和目录
重命名,将vrlab重命名为vrlab123
[root@localhost /]# mv vrlab vrlab123
[root@localhost /]# ll
drwxr-xr-x. 2 root root 6 Dec 4 18:06 vrlab123
移动文件,将/目录下的vrlab123目录移动到/tmp下面,mv 目录名 目录名
[root@localhost /]# mv vrlab123/ /tmp/
[root@localhost /]# cd /tmp/
[root@localhost tmp]# ll
total 12
drwxr-xr-x. 2 root root 6 Dec 4 18:06 vrlab123
此时/目录下的文件已经被移动到/tmp目录下面
如果本来目标路径里面有一个文件名字和你要移动的文件名字一样的文件,用-b参数,要求你确认一下,然后再产生一个备份,这个~就是备份的文件。
[root@localhost /]# mv -b vrlab123/ /tmp/
mv: overwrite '/tmp/vrlab123'? y
[root@localhost /]# cd /tmp/
[root@localhost tmp]# ll
total 12
drwxr-xr-x. 2 root root 6 Dec 4 22:13 vrlab123
drwxr-xr-x. 2 root root 6 Dec 4 18:06 vrlab123~
3.4 rm命令
rm 参数+目标路径
这个命令我们常用的是rm -f和rm -r,但是有个需要吐槽的地方,rm -f人们都说是删库跑路,其实这个说法是错误的,rm -rf删除的是元数据信息,什么是元数据信息呢,就是你的文件名,时间戳等,而你的数据内容还在文件系统中,不然一个很大的文件,rm -f怎么能怎么能秒删除呢。
这个不给大家演示了,想删什么就rm -f什么就ok。
rm *是删除当前目录下的所有文件,rm -f *.txt,是删除所有的txt文件
3.5 cat命令
cat命令是查看文件的命令,你用vi编辑了一个文件的内容,然后用cat查看一下,然后就能出来你这个文件的内容了,这里单纯的cat不说了,讲讲几个小技巧。
more命令,cat 文件名 | more
这样能更方面的查看你这个文件的内容,当你的命令非常非常多的时候,后面带个more能逐页查看内容。
将lmy1.txt文件的内容附加到lmy2.txt上,是 cat lmy1.txt >> lmy2.txt
[root@localhost tmp]# cat lmy111 >> lmy666
[root@localhost tmp]# cat lmy666
fkdsaklfjlkjsdalk
fdsklafkls
fjskldajfkls
fjsdklfjlksa
flksdjflk:wq
jfjdks
hhh
要是不想附加,想直接代替,就是cat lmy1.txt >> lmy2.txt,这个不多说了。
如果,你想清空你这个我文件,可以直接 cat /dev/null > lmy1.txt,/dev/null是空设备。
3.6 head命令
head 参数 文件名字
head -n 显示前几行的内容
[root@localhost tmp]# head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
3.7 grep命令
用于查找内容包含指定的范本样式的文件,如果发现某些文件的内容所指定的范本样式,预设grep指令会把含有关键字的那一列显示出来。
搜索vrlab.txt文件中字符串linux并输出
[root@localhost ~]# vim vrlab.txt
linux888
linux999
linux123
48392hjh
fdsk
linux000
fjkds
linfah
[root@localhost ~]# grep linux vrlab.txt
linux888
linux999
linux123
linux000
[root@localhost ~]#
搜索/etc/passwd文件中字符串root的并输出其以下两行内容,这个不方便演示,但是要知道-A[显示行数]除显示符合样本样式的那一列之外,并显示该行之后的内容
[root@localhost ~]# grep -A 2 root /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@localhost ~]#
3.8 tree命令
以树状图的形式列出文件目录结构
[root@localhost /]# mkdir -p vrlab/lmy1 vrlab/lmy2 vrlab/lmy3/lmh666
[root@localhost /]# tree vrlab/
vrlab/
├── lmy1
├── lmy2
└── lmy3
└── lmh666
4 directories, 0 files
这个地方比较重要,给大家说几个参数吧,不演示了
-a | 显示所有文件和目录 |
-d | 显示目录名称而非内容 |
-l | 限制目录显示层级 |
-f | 在每个文件或目录之前,显示完整的相对路径 |
-p | 显示权限标识 |
-s | 列出文件或目录大小 |