目前我对linux这个操作系统的了解就是很适合后端开发,开源免费又好用,学它准没错,下面就主要说linux的十条常见指令。
1.pwd
显示当前所在目录,无常用选项
[hqy@VM-24-5-centos ~]$ pwd
/home/hqy
当我们一开始登录账号时就会进入到对应的家目录,普通用户均在/home下建立自己的家目录,
而root账号登录时所在目录则与普通用户所在目录不同。
[root@VM-24-5-centos ~]# pwd
/root
可以配合cd命令使用,当我们cd进入某个目录的时候,可以用pwd检验是否进入该目录中
2.ls
指令格式:ls+[选项]+文件或者目录名
查看目录或者文件信息,对于目录,ls则列出该目录下的子目录和文件,对于文件,则列出文件名以及其他信息
单独的ls和ls -l指令默认列出当前目录下的子目录和文件
可加文件名和目录名,表示指定列出该文件或目录的信息。但是文件和目录都必须是当前目录的子目录或者子文件。
常见选项
(1)-a:
可显示带.和带..开头的隐藏文件,我们可以用后面学的touch命令创建以点(.)开头的文件,此时用ls都是无法显示该文件的。
在目录中一般都有.和..文件,..文件是帮我们定位到上级目录的文件,可用cd+..返回上级目录
.文件是定位当当前目录的文件。
(2)-l
红色框中是第一列,表示文件类型,蓝色框中后面提到文件和目录权限再细说。
紧跟其后的是大小和日期以及文件名或叫目录名
(3)-d
有时候我们不想显示目录下的文件,而是显示目录本身,可用该选项。
(4)-F
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- d2
|-- test.c
`-- test.txt
2 directories, 3 files
[hqy@VM-24-5-centos ~]$ ls -F
a.out* d1/ d2/ test.c test.txt
在每个文件名目录名后显示,*表示是普通可执行文件,/表示是目录,文件无显示,此外@表示符号链接,|表示FIFOs, “=”表示套接字
当我们一开始接触这些命令时,可在linux在尽情使用,但是敲得命令多了会占用整个屏幕,我们可以输入命令clear,清空屏幕,之后继续尝试指令输入会更加直观。
3.cd
进入目录,不能进入文件
下面举例一些例子,方便我们熟悉cd命令
(1)cd ..返回上级目录
[root@VM-24-5-centos ~]# pwd
/root 当前在/root目录下
[root@VM-24-5-centos ~]# cd .. 如上ls命令中所述,..可以返回上一级目录
[root@VM-24-5-centos /]# pwd
/ 但是之后无法再cd ..返回上级目录,这说明/是根目录
(2)cd ~返回家目录
[hqy@VM-24-5-centos ~]$ pwd
现在所处的目录是我这个账号的家目录
/home/hqy
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- test.c
`-- test.txt
1 directory, 3 files
[hqy@VM-24-5-centos ~]$ cd d1
当我们进入到其它目录想快速返回到家目录
[hqy@VM-24-5-centos d1]$ pwd
/home/hqy/d1
[hqy@VM-24-5-centos d1]$ cd ~
cd /home/hqy也可以但不如cd ~ 方便
[hqy@VM-24-5-centos ~]$ pwd
/home/hqy
如上,我们从其它目录返回到用户的家目录了
(3)cd -返回最近访问的目录
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- d2
|-- test.c
`-- test.txt
2 directories, 3 files
[hqy@VM-24-5-centos ~]$ cd d1
先进入d1目录
[hqy@VM-24-5-centos d1]$ cd ../d2
然后进入到d2目录下
[hqy@VM-24-5-centos d2]$ cd - 此时我们若是想直接返回到刚刚的目录下,可用cd -
/home/hqy/d1
并且还会自动显示出目录
(4)当我们要进入某个目录的时候,可以用cd+绝对路径,也可以用相对路径,相对路径就是相对当前目录的路径,我们举例来谈谈。
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- d2
|-- test.c
`-- test.txt
[hqy@VM-24-5-centos ~]$ cd d1 先进入d1目录
[hqy@VM-24-5-centos d1]$ cd ../d2 此时若想进入相对当前d1目录的上一级目录/home/hqy
下的d2目录, 可用cd ../d2,..表示上一级目录,
../d2表示去上一级目录下查找d2目录。
上述例子中cd ../d2和cd ~有些时候作用是类似的,但我猜测在实际工作当中,两者差别会越来越大。注意:cd只是在当前目录下查找要进入的目录。
4.touch
创建文件,选项也不少,但大多感觉没有太多触动,比如更改文件时间
5.mkdir
创建目录
选项
-p可递归式创建目录
但是有时候我们想创建一个子目录但是它却无父目录,按一般思路可能要先创建它的父目录,再创建子目录,这样会比较麻烦,此时-p选项就可以帮助我们快速创建目录。如下。
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- test.c
`-- test.txt
0 directories, 3 files
[hqy@VM-24-5-centos ~]$ mkdir -p d1/d2/d3
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
| `-- d2
| `-- d3
|-- test.c
`-- test.txt
3 directories, 3 files
[hqy@VM-24-5-centos ~]$
6.rmdir
前面我们学了创建目录,现在我们就来学学删除目录
功能是:删除空目录(若是root账号一般会反复提醒)
-p当子目录被删除后父目录也变成空目录,那就把空目录一起删除了
7.rm
可删除文件和目录
选项:
(1)-r
删除目录及其下的所有文件,rm不可直接删除目录,要加-r才可
(2)-f
强制删除
(3)-i
删除前逐一询问是否要删除,当然在root账号下,不带该选项也会问。
8.man
常用选项
num
要解释这个选项的意思首先要来说说man手册,手册嘛,分章节,第一章是普通的命令,第三章是库函数....等等,如果我们仅仅只是man ls的话,它是默认到第一章节开始查找,而num的作用就是可以指定章节查找,毕竟到后面我们应该都知道我们要查找的是指令还是库函数,有这个选项可以提高效率。
linux的指令非常多,如果加上选项组合,非常繁杂,比如我们在vs上敲代码的时候,不知道这个函数属于什么头文件就会去查文档,在linux中也有查文档操作,也就是man指令,使用如下,
[hqy@VM-24-5-centos ~]$ man ls
man后跟要查阅的指令,就会跳转到指令的详细介绍页面
按q即可退出。
9.cp
功能:
复制文件到某个目录下(会清空目标文件中的内容)
可以同时复制多个文件或目录给一个文件和目录(后称目标文件和目标目录),但此时要求目标文件和目标目录存在,并且多个文件只能复制给一个目录,而不能复制给一个文件。但是如果只复制一个文件给目录d3或者文件,哪怕d3不存在也会帮忙创建。
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- d2
|-- test.c
`-- test.txt
2 directories, 3 files
[hqy@VM-24-5-centos ~]$ cp test.c d3
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- d2
|-- d3
|-- test.c
`-- test.txt
选项:
-f
强制复制文件,取消提示,但是有时候加了-f也无效果,甚至不加-f本来也没提示(由此我总结了个linux学习方法,大概知道就行了,抠细节没用,因为这个细节在不同环境下是不同的)
-i
覆盖文件时会询问用户,当然root账号不加该选项也会询问
-r
递归处理被复制目录下面的子目录和文件,,和mkdir中的-r选项是类似的,若要复制的不是目录,源文件或者符号链接的,都会视为普通文件处理。
-R
递归处理被复制目录下面的子目录和文件,与-r是类似的,我想区别可能就是对于其它文件例如管道文件,块设备文件的处理会不一样,毕竟-r选项中的均视为普通文件处理太绝对了,猜都能猜到不合理。
10.mv
格式:mv+[选项]+文件名/目录+文件名/目录
功能:所有的mv命令结果都是剪切并重命名
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- test.c
`-- test.txt
1 directory, 3 files
[hqy@VM-24-5-centos ~]$ mv test.c d1/test1
将test.c剪切到d1目录中,并且重命名为test1
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
| `-- test1
`-- test.txt
1 directory, 3 files
[hqy@VM-24-5-centos ~]$ cd d1
进入d1目录中,因为我们要对test1文件进行操作就,就要到该文件的目录中去
[hqy@VM-24-5-centos d1]$ mv test1 ../test.c
将test1文件剪切到上级目录,并且重命名为test.c
若不加../,只是mv test1 test,c,则是默认剪切到当前目录
若不加test.c,只是mv test1 ../则是剪切到上级目录,名字不变
[hqy@VM-24-5-centos d1]$ cd ..
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- test.c
`-- test.txt
1 directory, 3 files
[hqy@VM-24-5-centos ~]$
十条指令,字数不多,看书看博客终究还是不够,大家一定要多多尝试。