【Linux】保姆级 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中双击了某个目录,查看里面的内容)

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

在这里插入图片描述
其中,蓝色的字体表示的是目录,白色字体是文件

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

在这里插入图片描述
其中,ls / "/"表示 Linux 中的根目录,与 Windows系统中"此电脑"类似,如下图:

在这里插入图片描述
ls /rootls 的效果一致,如下:

在这里插入图片描述
原因】root 用户的 home 目录就是 /root,也就是以 root 身份登录后,默认所在的目录,/root 即 root 用户的 ~ 目录

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

在这里插入图片描述

  • ls-l 显示文件详细信息

在这里插入图片描述
注意】Linux 系统也提供 ll 命令与 ls-l 命令一致,后续即可用 ll

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

-a 列出目录下所有的文件,包括以.开头的隐含文件
-d 将目录像温江一样显示,而不是显示其下的文件
-k 以k字节的形式表示文件的大小
-l 列出文件的详细信息
-r 对目录反向排序
-t 以时间排序
-R 列出所有子目录下文件(递归)

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

3.2 cd 命令

cd切换当前目录(相当于在 Windows 资源管理器中,双击目录)
cd 后面需要跟上我们要切换的目录路径,可以使用绝对路径,也可以使用相对路径
(其中,绝对路径以 / 开头,相对路径以 ./ 表示当前目录或者 …/ 表示目录的上一级开头,./ 是经常省略的)

  • cd / 绝对路径的方式

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • cd ../ 相对路径的方式(从当前路径的上一级开始)
    例如,上述的举例,当前我们所在目录为 test1,上一级目录为 home 目录,即 /root,也是 ~ 目录,现在切换到 root 下的 java1,如下:

在这里插入图片描述

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

在这里插入图片描述

3.3 pwd 命令

  • pwd 显示当前目录的完整路径

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

在这里插入图片描述

3.4 touch 命令

  • touch 文件名 用来创建一个文件

在这里插入图片描述

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

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

3.5 cat 命令

  • cat 查看文件内容

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

在这里插入图片描述
注意cat 仅针对简单短小文件还好,如果文件很大,cat 就不是很方便了~

补充man 也是 Linux 命令,查看用户手册
在这里插入图片描述

3.6 echo 命令

  • 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) 打开文件vim 文件名/文件路径

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

在这里插入图片描述
进来以后,我们可以看到这样一个界面:

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

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

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

在这里插入图片描述
其中,在 Linux 下,复制的快捷键为:Ctrl+Insert 粘贴的快捷键是:Ctrl+Insert

比如,进行如下编辑:


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

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

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

在这里插入图片描述
可以看到,关闭了页面,通过 cat 命令,我们来看看是否保存成功,发现:保存成功!

在这里插入图片描述

3.8 mkdir 命令

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

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

在这里插入图片描述

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

在这里插入图片描述
可以通过 pwd 命令,查看 ccc 的路径:

在这里插入图片描述

3.9 rm 命令

rm删除目录/删除文件

  • rm 文件名 删除某个文件

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

在这里插入图片描述

  • rm -r 目录名 删除某个目录

使用 rm+文件名,即可删除文件,但是如果使用这样的方式删除目录,Linux 会提示不能删除,这是一个目录,如下:
在这里插入图片描述
这里,删除目录,我们需要使用 rm -r + 目录名,递归删除这个目录和该目录下的所有文件,如下:

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

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

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

在这里插入图片描述

3.10 cp 命令

cp复制文件/目录

  • cp 源文件 目标文件 复制文件

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

在这里插入图片描述

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

  • 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移动或者重命名文件/目录

  • mv 源文件 目标文件 将源文件移动到目标文件

通过上述的栗子,我们已经有一个 b 目录,其中,里面有 test.txt 文件,现将这个 test.txt 文件移动到 c 目录下,并重新命名为 test1.txt,如下:
在这里插入图片描述
上述介绍的是将一个文件移动到其它目录下,如果移动的源文件和目标文件在同一个目录下,此时就相当于是给这个文件改名字,与 Windows 中重命名类似,比如将 c 目录下 test1.txt 改名字为 test2.txt,如下:

在这里插入图片描述

  • mv 源目录 目标目录 将源目录移动到目标目录

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

在这里插入图片描述

3.12 grep 命令

grep字符串匹配

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

在这里插入图片描述

  • grep 字符串 * -R 快速搜索所有文件中是否包含某个特定字符串
    在这里插入图片描述
    grep 命令不仅有搜索功能,还能搭配不同的命令进行联动,如 ps 命令和 netstat 命令,我们一起来看看吧~

3.13 ps 命令

ps查看进程

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

在这里插入图片描述

  • ps aux 列出系统中所有的进程

在这里插入图片描述

  • ps aux | grep mysql 搭配 grep 命令使用,通过这样的一个命令,我们就可以查看包含 mysql 的进程,如下:
    在这里插入图片描述

3.14 netstat 命令

netstat用来查询网络状态

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

在这里插入图片描述

  • netstat -anp | grep java 搭配 grep 命令使用,通过这样的一个命令,我们就可以查看 java 进程网络状态,如下:
    在这里插入图片描述

4. Linux 常见面试题

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

A1:第一个问题,就是回答一下自己常用的命令,以上介绍的命令即可,比如最最常用的 lscd命令等
A2:第二个问题,可以使用 ps 命令,比如想要查看 mysql 进程的 pid,使用:ps aux | grep mysql
A3:第三个问题,可以使用 netstat 命令,比如想要查看 java 进程的端口号,使用: netstat -anp | grep java

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

在这里插入图片描述
✨✨✨本期内容到此结束啦~

  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值