Linux 基础(下)

简介: Linux 基础(下)

四、Linux 命令



1. ls 命令


ls 目录/文件


" ls " 这个命令既可以对目录使用,又可以对文件使用。

对于目录,该命令列出该目录下的所有子目录与文件。

对于文件,将列出文件名以及其他信息。

一般来说," ls " 这个命令只用于目录。


ls 后跟选项


ls -l // 列出目录的详细信息
ls -a // 列出目录下的所有文件,包括以 . 开头的隐含文件
ls -r // 对目录进行反向排序
ls -t // 将目录以时间排序


" ls -l " 与 " ll " 用法等价。

像上面的 ls 命令后面跟的 " -l “,” -a “,” -r " 这些称为选项,这表示,这些选项基于 ls 命令下的一些衍生操作。


f83ea640098d47bd9a1371dbe146fc04.png


此外,ls 的选项可以搭配使用。


59d9fcb88ea6477cb8ecd00e01e56383.png


2. pwd 命令


pwd 目录


" pwd " 表示显示当前所在的目录。


517840c5929e4ee8a7e6a094792c7fdd.png


3. cd 命令


cd 目录/路径


" cd " 表示改变当前的工作目录,也就说,切换文件夹。


cd .  // 进入当前的目录,原地不动
cd .. // 返回上级目录
cd /  // 切换至根目录
cd ~  // 切换至用户家目录


Linux 的目录 与 Windows 的文件夹


实际上,Linux 中的 " cd " 命令和 Windows 的切换文件夹是一个道理,只不过前者是基于命令行实现的,后者是基于图形化界面实现的。


下图就是用树形结构所展示出来的目录结构,或者说,Linux 和 Windows 管理文件的方式,都具有树形结构的思想。


Linux 系统:


dc6533e1202d4b78a7f74791b98bbd51.png


Windows 系统:


a17d82f61a114ed49a713c829ae948ca.png


绝对路径和相对路径


在 Linux 中,以根目录开头的,就是绝对路径。


/tomcat/logs


在 Linux 中,以 " . " 或 " … " 开头的,就是相对路径。


./logs


此外,必须明确,在 Linux 中,没有像 Windows 系统中那样盘符(C 盘、D 盘)的概念,在 Linux 中,所有的目录和文件都是起源于根目录 " / ",没错,就是一个斜杠。


所以说,使用 " cd / " 就相当于我们在 Windows 上点击了 " 此电脑 "。


什么是家目录?


当我们登录一个用户的时候,来到的一个目录,也即表示当前用户的家。

下图就是 Ron 用户的家目录。" /home/Ron " 就是 Ron 用户登录时,来到的默认目录,也就是 Ron 的家目录


a937f45db71545f1870c39f0d5a2cdeb.png


4. touch / cat / echo 命令


(1) touch 命令


touch 文件


" touch " 表示创建一个文件。


(2) cat 命令


cat 文件


" cat " 表示读取文件。


(3) echo 命令


echo 文件


" echo " 表示写文件。


展示


218cd7531fa94976b0a7872e4b1ff611.png


必须明确:" touch / cat / echo " 这三个命令只能对一些简单的文件进行一些简单的操作,并不能有效地解决读写问题。这三个命令只是用来便捷操作。


5. mkdir 命令


mkdir 目录


" mkdir " 表示创建一个目录,即表示创建一个文件夹。

" mkdir " => " make directory "


6. rm 命令


" rm " => " remove "


(1) 删除文件


rm 文件
rm -f 文件


" -f " 表示强制操作,不会询问。

" rm 文件 " 表示删除单个文件,删除前会询问。

" rm -f 文件 " 表示删除单个文件,删除不会询问。


展示

y 表示 yes,n 表示 no.


20e3794d40f34fd8aec9efec26591815.png


(2) 删除目录


rm -r 目录
rm -rf 目录


" -r " 表示递归," -f " 表示强制操作,不会询问。

" rm -r 目录 " 表示递归指定目录,一个个删文件,删除前会询问。

" rm -rf 目录 " 表示删除指定目录以及其对应的所有文件,删除前,不会询问。


展示

我们在 test1 目录下,创建一个目录,三个文件。


954965811d8447fb9ae3517b1fd5a82d.png


使用 " rm -r " 进行递归的时候,每次遇到一个文件,都会询问你是否删除,删除输入 yes,不删除输入 no.


5a90e53f42e74e1b9d6f83b670507339.png


使用 " rm -rf " 删除的时候,不会询问,直接删除指定目录以及其下的所有文件。


8e8223d606074773ae51ad8718c11979.png


注意事项 ( 重要 )


针对上面的删除操作,我们应该谨慎行之。


因为,大多数情况下,Linux 系统默认就是没有回收站的,一旦执行删除命令,就直接将数据直接从服务器上彻底删去。所以说,rm 是一个很危险的操作,只有在我们再三确认后,才能删去文件。


此外,永远不要尝试 " rm -rf / " 这个命令。

这个命令会直接将根目录下所有的数据删除掉,也就是说,系统本身预装的东西,也会因为这个命令,随之消失。特别是在公司的时候,如果执行此操作,就会带来不可逆的影响。


这个命令会导致 Linux 系统瞬间崩坏,所有数据直接消失,如果还想再次使用服务器,只能重装系统。

小伙伴们应该都知道重装 Windows 的效果,打开界面,就是新的东西。而 Linux 也是一样的,一些数据未备份,就会丢失。


7. tree . 命令


可以看到,上面的 " tree . " 命令,可以为我们展示当前目录下的树形结构。


如果系统没有预装这个功能,我们可以通过下面的命令,进行安装,而 " yum ",我们可以将其理解为 Linux 系统上的应用商店。


yum -y install tree


8. cp 命令


" cp " => " copy "


cp 文件 文件
cp 文件 路径
cp -r 目录 目录


" cp " 表示能够 复制 文件或目录。


展示


我们在 test 目录下,创建一个目录,三个文件。


3797651ba4324bdeb98b75b5379b2c1a.png


(1) 复制文件并重命名


56341d9fdf0a4a779d1653fb9c42eafa.png


(2) 复制文件到指定路径


3f99b694a0c543c8b4a20c47e9b39947.png


(3) 复制目录并重命名

复制目录需要带上 " -r ",表示递归复制的含义,即将原目录及其下的所有文件,也复制到新的目录中。


6f57b3a1543e403aabac074e102c4bfc.png


9. mv 命令


" mv " => " move "


mv 文件 文件
mv 文件 路径
mv 目录 目录


" mv " 表示能够 移动 / 重命名 文件或目录。


展示


我们在 test 目录下,创建一个目录,三个文件。


95ef3e331a7d4a3eb04056eeae53c84d.png


(1) 重命名文件


d31dc7b77683402e812e7e1c248962d2.png


(2) 移动文件到指定路径


88a7207b0d324653a03f0da03aa3519f.png


(3) 当第二个参数不是已存在的目录时,重命名目录

在这里," mv " 并不需要加上 " -r ".


de0c7101c4b34a0b887d08d65cca3f06.png


(4) 当第二个参数是已存在的目录时,移动目录至存在目录下。


09a7d7951e70447897e13566bd05e328.png


10. less 命令


less 文件


" less " 表示查看文件,使用 " less " 命令查看文件,通过【方向键】上下 可以实现翻页功能。键盘输入 " q ",表示退出查看文件的界面。


此外," less " 命令只能进行文件的查看,不能进行文件的编辑。


" less " 命令最大的优势在于,能够对于大文件进行 " 秒开 "。


正常的一个编辑器打开文件的时候,就是直接将文件内容都读到内存中,这就涉及到大量的磁盘 IO. 此时,如果文件很大 ( 几个G ),就会打开的很慢,甚至打开失败。比方说,我们前面介绍的 " cat " 命令,就是一下子将所有的数据读出来并显示。


然而," less " 命令只是将当前屏幕显示的这一块给加载到内存中,随着用户的手动翻页,就会不断地加载新的部分,这其实就是懒加载的思想,类似于单例模式中的懒汉模式。( 需要用到了数据,才会执行 )


综上所述,在日常开发中,若我们在服务器上需要打开一个大文件,使用 " less " 命令就是一个明智的选择。


11. head / tail 命令


head 文件
head -n (数值) 文件


" head " 默认表示查看当前文件的前 10 行,也可以通过 " -n " 选项,来控制查看的行数。如下:第二次,我就控制了前 20 行。


748cc57cc5f84f0aabbd2019235f2b9b.png


tail 文件
tail-n (数值) 文件

" tail " 默认表示查看当前文件的末尾 10 行,也可以通过 " -n " 选项,来控制查看的行数。如下:第二次,我就控制了末尾 20 行。


1d14fba93ad94c4e9535374be6c90749.png


12. vim 命令


vim 文件


" vim " 命令就是 Linux 上的记事本,既能读,也能编辑。


然而," vim " 又不仅仅是一个记事本,它也能作为 " 代码开发工具 “,学习 C++ 的小伙伴,就都是用 " vim " 来写代码的。实际上,” vim " 能够支持很多的插件,通过插件,可以对 " vim " 本身进行扩展,例如:语法高亮、代码补全、变量重命名…


然而,不管 " vim " 再怎么配置,很难达到 " IDEA " 编译器那样的水准。因为," vim " 本身就是很多年前的东西了。


作为 Java 开发人员,学习 " vim ",就只需要能够使用 " vim " 在服务器上进行一个简单的文件编辑即可,后面在工作中,通过它来改一改服务器的配置文件就行了。


(1) 通过 " vim " 命令打开一个文件,若文件不存在,就创建文件。


(2) 一般情况下,通过 " vim " 打开一个文件后,是不能直接对文件进行文本编辑的。这是因为 " vim " 是分模式的,刚开始打开文件的时候,是 Normal 模式,这个模式下,暂时只能读,只有点击一些特殊快捷键的时候,才能对模式进行改变。


作为 Java 程序员,我们只需要知道点击 字母 " i ",即可进入 INSERT 模式,那么我们就可以像 Windows 的记事本进行编辑了。此时,左下角就会显示 " INSERT ".


459850fc27e1478d8843895cfc30af67.png


(3) 如何退出 " vim " ?

① 先点击键盘左上角的 " Esc " 键

② w 表示 written,q 表示 quit.

如果你需要保存并退出,按下 ( :wq )

如果你需要退出但不保存,按下 ( :q ),但是一般系统会提示你未保存。

如果你需要强制退出不保存,按下 ( :q! )

如果你需要保存但不退出,按下 ( :w )


13. ps 命令


ps aux // 显示系统上所有的进程


" ps " 命令不是 photoshop,而是 process show.

顾名思义,它就是为了查看当前 Linux 系统上所有运行的进程,它和我们平时使用 " Shift + Ctrl + Esc " 打开 Windows 上的任务管理器一样,是一样的操作。


cefce0baa7b64068aadea61dfacfdfdd.png


上面的命令显示了所有的进程,然而,我们可以通过下面的代码,筛选我们要找的内容," grep " 就表示按照字符串检索,它不仅可以用在当前场景下,也可以用于检索文件中的内容…说白了," grep "命令就是一个查找关键字的功能。


ps aux | grep "进程名"
ps aux | grep "进程id"


而 " | " 这个竖线,在 Linux 中的术语中,叫做 " 管道 " ,就是将前一个命令,作为后一个命令的输入。解释如下:


5186a1e725054d30b210098fa1301d04.png


14. netstat 命令


netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"


" netstat " 可以用来查看 Linux 系统上,应用的网络状态。此外,它同样也能搭配 " grep " 进行检索。


07c69cc7a6d147248863ec5b6355ab8d.png


目录
相关文章
|
Linux Shell
Linux基础:常用命令之echo命令详解(一)
Linux基础:常用命令之echo命令详解(一)
1289 0
Linux基础:常用命令之echo命令详解(一)
|
机器学习/深度学习 Linux Shell
Linux 基础-文本处理命令
Linux 基础-文本处理命令
184 0
|
Linux
Linux 基础-查看 cpu、内存和环境等信息
Linux 基础-查看 cpu、内存和环境等信息
323 0
|
缓存 运维 监控
Linux 基础-查看进程命令 ps 和 top
Linux 基础-查看进程命令 ps 和 top
546 0
|
存储 Unix Linux
Linux 基础-文件权限与属性
Linux 基础-文件权限与属性
157 0
|
算法 Linux Shell
Linux 基础-新手必备命令
Linux 基础-新手必备命令
181 0
|
Linux Shell
Linux 基础-学会使用命令帮助
Linux 基础-学会使用命令帮助
132 0
|
存储 运维 安全
【共读】Linux网络安全精要之基础知
【共读】Linux网络安全精要之基础知
258 0
【共读】Linux网络安全精要之基础知
|
Linux
Linux基础:常用命令之seq命令详解
Linux基础:常用命令之seq命令详解
389 0
Linux基础:常用命令之seq命令详解
|
Linux Shell
Linux基础:常用命令之echo命令详解(二)
Linux基础:常用命令之echo命令详解(二)
636 0
Linux基础:常用命令之echo命令详解(二)