【Linux】常见指令汇总

简介: 【Linux】常见指令汇总

每个优秀的人,都有一段沉默的时光。

那段时光,是付出了很多努力,却得不到结果的日子,我们把它叫做扎根。7c301908822d4f84843fe70ca1cc4abf.jpeg


一、xshell的介绍+操作系统

1.1 xshell


xshell是一款支持多种网络协议,能够通过互联网远程连接主机,是一款强大的安全终端模拟软件并且具有很多创新性的设计,我们linux的学习便是通过这款软件。


Linux中指令操作几乎所有的平台都是支持的,macos,windows,linux等等,只不过指令操作是Linux上专业程序员应该要懂得。


xshell可以配置登陆的用户名和IP,主题颜色等,全屏Alt+Enter。


可以选择ssh+root+@+公网IP登录xshell,也可以直接左上角新建会话属性,配置登录时的用户名。


配置好之后我们以后直接点击连接就可以登录xshell了,不用ssh+root那样登录了,可以省下一些时间。

a0e4bf22bbef49e9bf9cafc26f18e2e2.png


登录时,我们可以选择记住用户名,这样你以后连接你创建的会话时就不需要重新再输入用户名了,直接输入密码登录就可以了。


1.2 操作系统


前言:开机的本质就是加载操作系统。

计算机的软硬件是一个层状结构。

我们平常买回来外置的键盘或鼠标,如果插到电脑上之后,其实是要等一会儿才能使用,即使你插上之后显示灯已经亮起来了,操作系统也已经开机了,但短期内还是用不了的,这是因为在我们的操作系统和硬件层之间还有一层软件层,就是驱动程序。


我们的硬件如果想要投入使用,其实是要被驱动的,这个工作就交给了我们的驱动程序。,每一套硬件都会配套一款驱动程序,所以驱动程序是直接和硬件打交道的。


再往上就是用户层了,我们平常写的代码等都是用户层的应用软件,我们是没有在操作系统里写过系统级软件的,也没有在驱动程序里写过驱动软件。


1.什么是操作系统呢?


操作系统是一款进行软硬件管理的软件!


2.操作系统的意义是什么?


操作系统对软硬件进行合理的管理(手段),以达到为上层用户提供,良好的,稳定的,安全的运行环境的目的!


所以操作系统是非常重要的,我们需要操作系统对下面的软硬件管理好,让它别老是出错,崩溃,否则没人愿意使用这款笔记本或者手机了。

4b5111ae100a4e5585357df798b7fa98.png

二、Linux下基本指令

2.1 ls(显示当前目录下的文件列表,包括目录,普通文本文件,ls+选项+目录或文件)

ls命令会显示根目录下的目录和普通文本文件

9468ced0261043c0aa8a49cb87a442fe.png

tree命令以树状形式列出当前目录下的所有文件和子目录,并且告诉我们当前路径下,还有几个目录和文件


751b14f4188e44b2ab7893511ad943c0.png

ll后面如果没有+目录或文件,那就默认显示当前路径或称之为当前目录下的详细信息


b0eaf57cc6e6454b9cbfed4e334294e8.png


2.1.1 ls -l(以list的形式,显示文件更多的属性)

进入子目录dir中,我们用ls -l显示出当前目录下文件更多的属性

cc27d6e1fdb04469bf97dc5db945efb0.png

这是根目录下文件的更多属性


ca33c279cc9b491aa9671e9dd95dffee.png


2.1.2 ls -l -a(显示更多的隐藏文件)


我们在dir目录中新建了一个隐藏目录.youcannotseeme和一个隐藏文件.seeme

如果我们使用ls -l只会显示文件的更多属性,我们看不到隐藏文件或目录,如果我们使用ls -l -a就能看到dir目录下原本就有的隐藏文件或目录和我们刚刚创建的隐藏目录和隐藏文件

80af81262a4f4b6cb3e2ebfc6b467a5f.png


当然,我们也可以将-l -a连在一起,同时将文件和目录属性以及隐藏文件或目录都给我们显示出来。

983c6db81aec49438a7fdced8bde695e.png


除此,我们也可以使用ll -a,其中的ll就相当于我们的ls -l,我们用ll,Linux也是可以识别的。

89421d23cfce441d9e30c0cc721ea071.png


当然ls -al 和ls -la 和ll -a等都是一样的操作,聪明的Linux都是可以识别的

cde32e59827640f4bed3e6190e384c9d.png


2.1.3 ll -d(不进入目录,显示目录详细信息)


如果没有-d选项,我们会列出dir目录中的子目录以及文件的详细信息,不包括隐藏文件,但如果加上-d,我们就不会进入目录,直接将目录看作文件,列出他的详细信息

6899fdfe0d044d4ea3067b1915ff5ec2.png


如果没有-d选项的话,我们会直接将根目录/中的所有子目录或文件的详细信息显示出来。带上-d选项之后我们就可以直接显示根目录本身的详细信息了,将其看作成一个文件。


01feff0cfb6e462ebc5610699f90ef91.png


2.1.4 ls -R(递归式列出所有子目录下的文件)

通过tree和ls -R两个命令的对比,我们可以看出ls -R可以以递归的形式列出当前路径下所有的子目录或文件

70e2eba6fc214c64a06c0496de4a2223.png


2.2 mkdir(在当前路径下,创建一个目录)

2.2.1 mkdir dirname(创建一个名为dirname的目录)

dir目录中的dirnext子目录就是我们通过mkdir创建出来的


85cb461e3e7f4a8ca03d4ba77d6de0b3.png


2.2.2 mkdir -p dir1/dir2/dir3(递归建立多个目录)

使用-p选项之后我们就可以递归建立多个目录了。

3b1251cf8c5b4ad68b7f13e2b9089df5.png


2.3 pwd(显示当前我所处的路径)


我们每一次登录,或者长时间没操作,建议都先执行一下pwd,确认一下自己在哪里

比如,我现在就在根目录中的子目录dir中,/root/dir这就是我当前所处的路径。

7b8c78ea91584a90a6b6570f63710b9f.png


2.4 cd (进入指定的目录)

2.4.1 cd .(进入当前目录)和cd …(进入上级目录


我们在dir目录下,新创建了一个dirnext目录,当然这个目录看起来是什么都没有的,因为我们ls过后,没发现这个目录中有什么文件或子目录,但当我们ls -l -a过后我们可以看到有两个隐藏的文件出来了,一个是.一个是…,这两个分别代表的是当前路径和上级路径。


为什么我们新建目录时,目录中会自动带有这两个隐藏文件呢?道理很简单,这就可以方便我们任意的切换路径,这种切换路径的方式也被称为相对路径,另一种切换路径的方式就是我们退回到根目录下,一层一层的往下走,这样切换路径的方式称之为绝对路径。


一下操作中我们可以看到,cd …之后我们路径就切换为/root/dir了fc9ff327c8af41c19c0301aa47e1fed0.png


fc9ff327c8af41c19c0301aa47e1fed0.png

2.4.2 cd (绝对路径)或(相对路径)


D:\linux操作系统\Linux课件.zip这就是windows下的路径,其中反斜杠\称之为windows下的路径分隔符,\用于分隔各个文件夹


/root/dir/dirnext这是Linux下的路径,其中斜杠/称之为Linux下的路径分隔符,/用于分隔各个目录


绝对路径:从根目录/(斜杠)开始找我们想要访问的目录

c5a33471fc6c4380b8156800339646b1.png

相对路径:在我们当前目录dirnext下,我们可以通过相对路径的方式直接进入到根目录/下的home目录

4de6ffffef744e7dbfe7a4ca918d7ddf.png


不管是windows还是Linux,每个文件夹或目录下都可以有新的子文件夹或者子目录,所以Linux的目录结构就是一个树的结构。


847a5f0d6c7241d181b3541bfaccd0a2.png


只要我们有cd命令,我们就可以访问到Linux下所有的路径。


6371a2f3400846fdb583c6f31f327389.png


2.4.3 cd ~(回到当前用户的家目录(工作目录))


我们刚刚是在根目录/下的home目录,我们可以通过cd ~直接回到根目录/下的root目录中,这个目录也是我们超级用户root的工作目录

c1f647faf39f44bbba0f872c94755c70.png



我们可以通过whoami看到当前用户类型。比如我们现在就是root用户,其工作目录也就是家目录,也就是我们的/root目录。

b6cc06e6c9624df889b0f7f82715da0f.png


2.4.4 cd -(回到上一次访问的目录)


我们进入了根目录中home中的lighthouse目录,通过cd -我们就可以直接返回到我们的工作目录(家目录)/root。

所以这个指令可以帮助我们快速回到两个热点访问的目录。


02afe463bb584c22a35d5022af31e55d.png


2.5 Linux热键

2.5.1 Tab键


当我们忘记某个命令时,我们只记得前几个字母,这时我们可Tab两下,它会自动帮我找出所有含我们输入的命令,例如下面的mkd,连续Tab两下,我们可以找出mkdir指令了就。

f78b99d814f24af89d4a0ff0412da7dd.png

当我们想进入某个目录时,但不知道这个目录中的目录名时,我们可以选择Tab两下,他会自动补齐dir目录中还有哪些目录可以进入。由下面的图片可知,还有dirnext和youcannotseeme目录可以进入

b4bbbe037f0e4fa3ba23fed9b3dc8373.png


文件名后面加个目录分隔符表示当前文件不是一般文件而是一个目录。

2.5.2 crtl+c键

我们可以使用crtl+c键,终止疯狂刷屏的程序。


2.6 touch(创建指定的普通文件)

dir目录中的test.c以及text.c等文件都是touch出来的。

我们创建目录用的是mkdir,创建文件用的是touch,不要搞混了。

6b1e9fc0116a49eab1559214ee19760d.png


2.7 stat(查看文件的所有属性)

ff812153e89d49dcb046f2ed92fe4a30.png


这里有三个时间

Access time :表示最后一次访问(仅仅是访问,没有改动)文件的时间。

Modify time :表示最后一次修改文件的时间。

Change time :表示最后一次对文件属性改变的时间,包括权限,大小,属性等等。


2.8 gcc(运行我们的代码文件)&&nano(文本编辑器)

我们可以通过nano指令创建一个test2.c的文件,并向其中写一些c语言代码,然后利用gcc运行起来最后通过./a.out运行可执行程序a.out然后就出来我们的运行结果了。

316b10fdfeee4724a656bb5de876b44a.png


当我们运行text.c文件后会产生可执行程序文件a.out我们可以通过gcc编译器完成a.out的运行。

./a.out就是执行当前路径下的a.out文件

193527ff7f6144d3985e1b18ebe59f0b.png


2.9 rm&&rmdir

2.9.1 rmdir(只能删除空目录)

我们新建了一个mycode的空目录,我们现在不想要它了,直接rmdir删除这个目录就OK了。

194a24acd0854fbd84540d5b4befebaa.png


但如果我们想要删除刚刚递归创建的dir1目录的话,他说目录不能为空,我们是删除不了这个dir1目录的。由此可见我们的rmdir指令只能删除空目录。


0cbc422080434238a930a96d23902311.png


并且如果我们想要删除test.c文件,他也会报错说这不是一个目录,这也更能说明了我们的rmdir只能删除空目录a845437cb8c14bc1926256a0df7e4fb1.png


2.9.2 rm(默认删除文件)&&rm -r(递归删除目录)&&rm -rf(强制递归删除目录)&&rm -rf ./*(只要权限够,删除当前路径所有文件)

我们这里就已经把test.c文件删除了,ll显示文件详细信息时,我们可以看到test.c已经没有了

ff54fa8d4e1040a5b8679ce235edb4d8.png


这里递归删除dir1时,它老是问我是否要删除,非常烦人阿,我们直接用rm -rf强制递归将这个一连串路径全给他删除了

72f86a3e4c5444a99f0f69bc89ce01f0.png


rm -rf直接强制递归删除,删库跑路就用这个,但我们可不要做这样的人哦,简直太没良心了。

5c1dff1d209f4df5aa1911d6bb24d810.png


rm -rf ./*删除当前路径下的所有文件,比如下方我们递归建立了一串路径,使用rm删除不行,因为dir1是一个目录,使用rm -r他老是问我同不同意删除,所以我们使用rm -rf ./*删除当前路径下的所有文件。

我们也可以看到当执行过后,我再使用tree命令dirnext中什么文件都没有了,全被我们删除了。

d8096abcdfe147208d8484a3b6b04da1.png


删除目录-r,强制删除文件-f,强制删除目录中的所有文件-rf

2.10 man(查找Linux系统接口,指令,cLibrary的手册)

man man可以查到man到底是干什么的


4d6650df334745c4b4c6f28a66dbd595.png

最常用的就是前三个手册,命令手册,系统调用,库函数(c语言),其他的手册,我们暂时还用不上


7dba85dcfdd34b8c8e088414bdedd8b3.png


man 3 printf就可以查到printf这个接口了

11f765537a5b4a2f8acc05956d49afc4.png


你直接使用man printf出来的就是printf这个指令,而不是c接口里的printf,因为我们的man查找你如果不事先声明手册的类型,他就会从1手册开始往后找,直到找到位置,printf也是一条指令,所以如果你不用man 3 printf,用man printf就会从1手册里把printf指令显示出来。

a562840d91114c04829cb7a949fd408e.png















相关文章
|
1月前
|
存储 Linux
Linux专栏08:Linux基本指令之压缩解压缩指令
Linux专栏08:Linux基本指令之压缩解压缩指令
38 4
|
1月前
|
Linux
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
57 2
|
1月前
|
Linux
Linux专栏07:Linux基本指令之文件搜索指令
Linux专栏07:Linux基本指令之文件搜索指令
58 2
|
1月前
|
Unix Linux
Linux专栏06:Linux基本指令之文件处理指令
Linux专栏06:Linux基本指令之文件处理指令
49 2
|
1月前
|
人工智能 Linux 索引
Linux专栏05:Linux基本指令之目录处理指令
Linux专栏05:Linux基本指令之目录处理指令
31 2
|
30天前
|
存储 人工智能 Ubuntu
Linux指令学习(一)
Linux指令学习(一)
60 0
|
1月前
|
安全 Unix Linux
【Linux】基本指令
【Linux】基本指令
|
1月前
|
存储 Linux 开发工具
【Linux】常见指令(下)
【Linux】常见指令(下)
|
1月前
|
存储 Linux 网络安全
【Linux】常见指令(上)
【Linux】常见指令(上)
|
1月前
|
Linux 数据安全/隐私保护
Linux专栏04:Linux基本指令之用户管理指令
Linux专栏04:Linux基本指令之用户管理指令
38 0