【Linux】保姆级 Linux 常见命令使用

明天不吃。 2024-09-18 09:37:06 阅读 98

🥰🥰🥰来都来了,不妨点个关注叭!

👉博客主页:欢迎各位大佬!👈

在这里插入图片描述

文章目录

1. Linux 是什么1.1 Linux 是什么1.2 关于 Linux 我们需要学什么

2. 需提前准备的东西2.1 环境 —— 如何获取到一个 Linux 环境2.2 软件 —— 使用终端软件 Xshell 进行远程登录

3. Linux 常见命令3.1 ls 命令3.2 cd 命令3.3 pwd 命令3.4 touch 命令3.5 cat 命令3.6 echo 命令3.7 vim 命令3.8 mkdir 命令3.9 rm 命令3.10 cp 命令3.11 mv 命令3.12 grep 命令3.13 ps 命令3.14 netstat 命令

4. Linux 常见面试题

1. Linux 是什么

1.1 Linux 是什么

LinuxLinux 是一个操作系统,和 Windows 是同类产品

日常生活中,我们使用的电脑都是以 Windows 为主,也有 Mac,实际上,Linux 的市场份额是比 Windows 更多的,比如:

1)服务器

2)嵌入式设备

3)移动端(手机) Anroid 其实就是 Linux

补充】操作系统简单来说,就是弄管理的软件

更准确的来说,Linux 是一个统称,可以认为是一个"操作系统内核"

在这里插入图片描述

有很多企业/组织,基于 Linux 内核,搭配了不同应用的程序,从而产生了不同的"操作系统",比如:ubuntu、redhat、CentOS等等(本期内容以 CentOS 为主)

1.2 关于 Linux 我们需要学什么

基础命令:Linux也是有图形化界面,但是在实际工作中,一般不会使用,甚至都不会安装,因为 Linux 的图形化界面使用体验,整体来说是比较槽糕的~在服务器/嵌入式设备往往都是通过命令行的方式进行操作的,使用命令行操作有着更多的优势,一是带宽占用非常低,二是系统资源占用也非常低,三是命令行适合通过脚本来实现批量的重复操作,因此,学习 Linux 常见的命令,是使用 Linux 的基础部署JavaWeb项目:咱们自己写的 web 程序,只能自己在本机上访问,要想其他用户访问到,就需要部署到服务器上,服务器的操作系统,最最主流的就是 Linux。因此,我们需要学习如何将 web 程序部署到服务器上

(下期内容将具体介绍如何部署JavaWeb项目,敬请期待~)

2. 需提前准备的东西

2.1 环境 —— 如何获取到一个 Linux 环境

有以下三种方式:

使用虚拟机,即在你的电脑里虚拟出来一个假电脑(虚拟机软件存在很多bug,经常会出现一些各种各样奇怪的问题)使用Windows自带的 WSL 功能(Linux 影响力太大,Windows 内部集成了 Linux 内核),相比于虚拟机,问题少很多,但是仍无法解决部署问题买一个云服务器,云服务器有一个非常重要的优点:有外网IP!!! 后续将程序部署到云服务器上,此时程序就可以被别人访问到了~(云服务器对于学生有优惠,第一次可以白嫖三个月,本期内容使用的是阿里云服务器)

因此,尊嘟很推荐买一个云服务器~(怪好用的勒)

2.2 软件 —— 使用终端软件 Xshell 进行远程登录

Xshell 官网,点击下载,点击免费授权页面~

在这里插入图片描述

创建会话,名称可以任意取,主机则是服务器公网IP,连接后,需要输入用户名 root(无修改情况) 和密码

在这里插入图片描述

连接成功后,显示如下:

在这里插入图片描述

(下载安装使用还是很简单的~不过俺在Xshell连接服务器的时候,一直连不上,折腾半天,结果是校园网换成热点就好了!!!所以,如果连不上,可以看看是不是校园网的问题)

3. Linux 常见命令

学习 Linux 命令,可对比 Windows 中的一些操作,加深理解,同时,不需要去背!多加练习即可~

3.1 ls 命令

ls:list的缩写,列出当前目录/指定目录中都有哪些文件(相当于Windows中双击了某个目录,查看里面的内容)

<code>ls 列出当前目录下有哪些文件,如下图:

在这里插入图片描述

其中,蓝色的字体表示的是目录,白色字体是文件

<code>ls 具体目录 ls 后面跟一个具体的目录,即表示列出指定目录下有哪些文件

在这里插入图片描述

其中,<code>ls / "/"表示 Linux 中的根目录,与 Windows系统中"此电脑"类似,如下图:

在这里插入图片描述

<code>ls /root 与 ls 的效果一致,如下:

在这里插入图片描述

原因】root 用户的 home 目录就是 /root,也就是以 root 身份登录后,默认所在的目录,/root 即 root 用户的 ~ 目录

注意】如果要查指定目录的时候,ls 后面仅用跟具体目录名称,千万不要加“/”,否则会出现以下错误:

在这里插入图片描述

<code>ls-l 显示文件详细信息

在这里插入图片描述

注意】Linux 系统也提供 <code>ll 命令与 ls-l 命令一致,后续即可用 ll

上述使用了 -l,还有一些其它的选项:

-a 列出目录下所有的文件,包括以.开头的隐含文件

-d 将目录像温江一样显示,而不是显示其下的文件

-k 以k字节的形式表示文件的大小

-l 列出文件的详细信息

-r 对目录反向排序

-t 以时间排序

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

这些选项,也叫"命令行参数",参数和参数之间,需要至少一个空格来分割~

3.2 cd 命令

cd切换当前目录(相当于在 Windows 资源管理器中,双击目录)

cd 后面需要跟上我们要切换的目录路径,可以使用绝对路径,也可以使用相对路径

(其中,绝对路径以 / 开头,相对路径以 ./ 表示当前目录或者 …/ 表示目录的上一级开头,./ 是经常省略的)

cd / 绝对路径的方式

在这里插入图片描述

<code>cd ./ 相对路径的方式(从当前的路径开始)

在这里插入图片描述

其中,./ 也可以省略,如下图:

在这里插入图片描述

<code>cd ../ 相对路径的方式(从当前路径的上一级开始)

例如,上述的举例,当前我们所在目录为 test1,上一级目录为 home 目录,即 /root,也是 ~ 目录,现在切换到 root 下的 java1,如下:

在这里插入图片描述

<code>cd 后面什么都不加的情况下,此时就会回到 home 目录

在这里插入图片描述

3.3 pwd 命令

<code>pwd 显示当前目录的完整路径

上述介绍了 cd 命令,很可能经过几次切换目录后,就不知道目前具体所在的目录了,而这个 pwd 命令就是防止我们迷路的~

在这里插入图片描述

3.4 touch 命令

<code>touch 文件名 用来创建一个文件

在这里插入图片描述

可以看到,输入之后,并没有任何反馈的信息,有的小伙伴就会疑惑了:这到底是创建成功呀,还是失败呀!其实是创建成功了,我们可以通过上述学的 <code>ls 命令进行查看当前目录下的文件,如下图:

在这里插入图片描述

从上图可以看到,创建 111.txt 文件是成功了,在 Linux 中有这么一句话,没有消息就是最好的消息(就是没错呀~)

3.5 cat 命令

<code>cat 查看文件内容

Linux 下都有 yum.conf 文件,以这个文件为例,先切换到 etc 目录,查看其中 yum.conf 文件的内容,如下图:

在这里插入图片描述

注意cat 仅针对简单短小文件还好,如果文件很大,cat 就不是很方便了~

补充】 <code>man 也是 Linux 命令,查看用户手册

在这里插入图片描述

3.6 echo 命令

<code>echo 内容 > 文件名 用来写文件

这里的" > ",是重定向的意思,echo 的写入方式并不是以追加的形式,而是清空文件内容再进行写入!

对"111.txt" 文件写入 hello world,这里可以看到并没有什么反馈,正如上面所说,没有消息就是最好的消息~

在这里插入图片描述

我们可以通过 cat 命令,查看 “111.txt” 文件内容,验证是否写入成功,由下图可以看到,写入成功!

在这里插入图片描述

echo 和 cat 命令

优点当需要使用脚本批量处理很多操作的时候,echo 和 cat 还是很有用的~ 比如,有个服务器集群,每个服务器都有一个数据文件,这个数据文件上记录了一个信息,就可以通过写一个脚本,通过这个程序,自动登录到这些机器上,并且读取文件内容,获取到版本号

缺点:每次 echo + 重定向,会清空原来的内容,echo 和 cat 命令只是适合针对简单的文件进行操作,如果文件复杂或者编辑需求复杂,就不太合适了

如果是需要针对复杂的文件,进行复杂的编辑,如何处理呢?

这里 vim 就闪亮登场了~ vim,是 Linux 系统自带的文本编辑器,相当于 Windows 的记事本,接下来,我们一起来看看,如何使用 vim ~

3.7 vim 命令

vim 使用技巧是非常丰富的,vim 这里本期内容仅介绍最基本的三个用法:1)打开文件 2)编辑文件 3)保存退出

1) 打开文件: <code>vim 文件名/文件路径

以上述的"111.txt"文件为例,如下图:

在这里插入图片描述

进来以后,我们可以看到这样一个界面:

在这里插入图片描述

在这里,如果想输入,敲键盘进行编辑是没有任何反应的~

因为, vim 打开文件默认是普通模式,普通模式下键盘的按键表示一些特殊功能,因此,如果需要编辑,我们需要进入插入模式,才能进入文本编辑

2)编辑文件按下 i 键进入插入模式(其中,左下角会看到 – INSERT–) 这样就可以像记事本一样正常编辑了~

在这里插入图片描述

其中,在 Linux 下,复制的快捷键为:<code>Ctrl+Insert 粘贴的快捷键是:Ctrl+Insert

比如,进行如下编辑:

3)保存退出先按 Esc 退出,回到普通模式,再输入<code>:wq,再按回车

在编辑完文件后,我们发现并没有像 Windows 系统那样的"×",让我们关闭页面,同时,也没有快捷键,按 Ctrl+s 进行保存文件,在 Linux 系统中,操作如下:

先按 Esc 退出再输入:wq,按下回车

在这里插入图片描述

可以看到,关闭了页面,通过 cat 命令,我们来看看是否保存成功,发现:保存成功!

在这里插入图片描述

3.8 mkdir 命令

mkdir:make directory 创建目录(与 Windows 中新建一个文件夹类似)

<code>mkdir 目录名 创建一个目录,可以通过 ls 查看,是否创建成功

在这里插入图片描述

<code>mkdir -p 目录1/目录2/目录3 可以递归地创建目录,比如想要创建 aaa/bbb/ccc,如下:

在这里插入图片描述

可以通过 <code>pwd 命令,查看 ccc 的路径:

在这里插入图片描述

3.9 rm 命令

rm删除目录/删除文件

<code>rm 文件名 删除某个文件

这里删除指定文件的时候,一般在我们删除的时候,Linux 都会提示我们是否确认删除,输入 y,即为确认删除,如下:

在这里插入图片描述

<code>rm -r 目录删除某个目录

使用 rm+文件名,即可删除文件,但是如果使用这样的方式删除目录,Linux 会提示不能删除,这是一个目录,如下:

在这里插入图片描述

这里,删除目录,我们需要使用 <code>rm -r + 目录名,递归删除这个目录和该目录下的所有文件,如下:

在这里插入图片描述

这里可以发现,在递归删除一个目录的时候,每删除一个目录,Linux 系统都会询问是否确认删除,如果有成千上万的目录,这样一个个确认删除,那得确认到啥时候呀!

<code>rm - rf 目录名 f 表示的是强制删除,无需确认,如下:

先递归依次创建出目录,aaa/bbb/ccc,再进行递归删除,可以看到使用 rm - rf 目录名 无需确认~

在这里插入图片描述

3.10 cp 命令

cp复制文件/目录

<code>cp 源文件 目标文件 复制文件

先创建一个"111.txt"文件,通过 cp 命令进行复制操作,通过 ls 命令查看,发现复制成功!如下:

在这里插入图片描述

注意】这样的拷贝操作,有时候很危险,如果我们复制的文件已经存在的话,此时,进行复制,就会出现"覆盖"的情况,原有的文件会被新的文件替换掉!

<code>cp -r 源目录 目标目录 复制目录

这里使用 cp 命令,复制目录,相比于复制文件,需要多加一个 -r 和上述使用 rm 一致,对于文件无需加,对于目录,需要加 -r

这里我们 a 目录中有一个 test.txt 文件,将 a 目录拷贝到 b 目录,如下:

在这里插入图片描述

可以看到,创建一个 a 目录,同时在 a 目录下,创建文件 test.txt 文件,将 a 目录复制 b 目录,通过 ls 命令,可以查看复制成功,同时看到 b 目录下也有 test.txt 文件

3.11 mv 命令

mv移动或者重命名文件/目录

<code>mv 源文件 目标文件 将源文件移动到目标文件

通过上述的栗子,我们已经有一个 b 目录,其中,里面有 test.txt 文件,现将这个 test.txt 文件移动到 c 目录下,并重新命名为 test1.txt,如下:

在这里插入图片描述

上述介绍的是将一个文件移动到其它目录下,如果移动的源文件和目标文件在同一个目录下,此时就相当于是给这个文件改名字,与 Windows 中重命名类似,比如将 c 目录下 test1.txt 改名字为 test2.txt,如下:

在这里插入图片描述

<code>mv 源目录 目标目录 将源目录移动到目标目录

在这里,与上述的 rm 命令和 cp 命令不同,移动目录不需要加 -r 递归移动,直接移动即可,将 c 目录移动到 a 目录下,如下:

在这里插入图片描述

3.12 grep 命令

grep字符串匹配

<code>grep 字符串 文件名 快速搜索某个文件中是否包含某个特定字符串

在这里插入图片描述

<code>grep 字符串 * -R 快速搜索所有文件中是否包含某个特定字符串

在这里插入图片描述

grep 命令不仅有搜索功能,还能搭配不同的命令进行联动,如 <code>ps 命令和 netstat 命令,我们一起来看看吧~

3.13 ps 命令

ps查看进程

ps 直接通过 ps 能够查看的内容非常有限,通常需要使用一些固定选项

在这里插入图片描述

<code>ps aux 列出系统中所有的进程

在这里插入图片描述

<code>ps aux | grep mysql 搭配 grep 命令使用,通过这样的一个命令,我们就可以查看包含 mysql 的进程,如下:

在这里插入图片描述

3.14 netstat 命令

netstat用来查询网络状态

<code>netstat -anp 用于显示网络连接的详细情况

在这里插入图片描述

<code>netstat -anp | grep java 搭配 grep 命令使用,通过这样的一个命令,我们就可以查看 java 进程网络状态,如下:

在这里插入图片描述

4. Linux 常见面试题

说说你常用的 Linux 命令有哪些?Linux 给定进程名,如何查看进程 pid?Linux 给定进程名,如何查看进程的绑定端口号

A1:第一个问题,就是回答一下自己常用的命令,以上介绍的命令即可,比如最最常用的 <code>ls、cd命令等

A2:第二个问题,可以使用 ps 命令,比如想要查看 mysql 进程的 pid,使用:ps aux | grep mysql

A3:第三个问题,可以使用 netstat 命令,比如想要查看 java 进程的端口号,使用: netstat -anp | grep java

💛💛💛本期内容回顾💛💛💛

在这里插入图片描述

✨✨✨本期内容到此结束啦~



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。