文章目录
- 1.Linux是什么
-
- [1.1 关于Linux我们主要学习什么](#1.1 关于Linux我们主要学习什么)
- [1.1 学习Linux常见命令的前置知识](#1.1 学习Linux常见命令的前置知识)
- [2. Linux常见命令](#2. Linux常见命令)
-
- [2.1 ls命令](#2.1 ls命令)
- [2.2 cd命令](#2.2 cd命令)
- [2.3 pwd命令](#2.3 pwd命令)
- [2.4 touch命令](#2.4 touch命令)
- [2.5 cat命令](#2.5 cat命令)
- [2.6 echo命令](#2.6 echo命令)
- [2.7 vim命令](#2.7 vim命令)
- [2.8 mkdir 命令](#2.8 mkdir 命令)
- [2.9 rm命令](#2.9 rm命令)
- [2.10 cp命令](#2.10 cp命令)
- [2.11 mv命令](#2.11 mv命令)
- [2.12 grep命令](#2.12 grep命令)
- [2.13 ps命令](#2.13 ps命令)
- [2.14 netstat命令](#2.14 netstat命令)
- [3. Linux常见面试题](#3. Linux常见面试题)
1.Linux是什么
在学习Linux的常用命令之前,我们先介绍下Linux是什么------Linux也是一种操作系统,和Windows是"并列"关系。
1.1 关于Linux我们主要学习什么
1.基础命令:Linux 虽然也有图形化界面, 但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的. 因此学习
Linux 命令就是使用 Linux 的重要基础.
- 部署Javaweb项目:我们自己写的 web 程序, 要想让其他的用户能够访问, 就需要发布到服务器上. 这是我们接下里重点学习
的内容(下一节介绍)
1.1 学习Linux常见命令的前置知识
学习Linux常见命令之前,我们可以先了解一下以下的知识:
2. Linux常见命令
2.1 ls命令
ls : 列出当前目录/指定目录下都有哪些文件,相当于我们Windows中双击某个目录去查看里面的文件。
ls
列出当前目录下有哪些文件,如图:
其中的蓝色的是目录,白色的是文件。
ls list
其中list为指定目录,ls后面跟一个具体的目录,表示列出指定目录下有哪些文件,如图:
其中的"/"表示Linux中的根目录,与我们Windows系统中的"此电脑"类似。
需要注意的是,当我们查看指定目录的时候就不用加"/",ls后面直接跟上目录即可,不然就出现了下面的错误。
ls -l
显示文件的详细信息
值得注意的是,Linux也为我们提供了"ll"命令,和"ls -l"命令是一样的,后续我们可以使用"ll"命令即可。
ls -a
列出目录下的所有文件,包括以 . 开头的隐含文件。
2.2 cd命令
cd:切换当前目录(change directory),相当于我们Windows中双击某个目录。
cd后面要跟上我们要切换的目录的路径,可以是绝对路径也可以是相对路径。其中绝对路径是以/开头,而相对路径是以./(表示当前目录)或.../(表示当前目录的上一级)开头,其中的./也是经常省略的
cd /
绝对路径的方式
cd ./
相对路径的方式(从当前路径开始)
./也可以省略,如下图:
cd ../
相对路径的方式(从当前路径的上一级开始)
比如按我们上面的举例,我们现在所在目录为forum,上一级为home目录,即/root。我们所在的~目录就是/root目录。我们现在切换到root下的log目录,操作如下:
cd
cd后面什么都不加的情况下,此时就会回到home目录,类似于我们打游戏的时候的回城。
2.3 pwd命令
在上面我们介绍了cd命令,是切换目录的,很多时候我们切换过几次目录后就可能不知道我们具体所在的目录了,这个pwd命令就是防止我们迷路的。
pwd
显示当前目录的完整路径
2.4 touch命令
touch 文件名
用来创建一个文件
创建完之后Linux并没有给我们任何反馈,这些肯定就会有人疑惑了,那它到底创建成功没有呢?其实创建成功了,在Linux中有一句话就是这么说的,没有消息就是最好的消息(no news is good news)。我们也可以通过上面介绍的ls命令进行查看当前目录下的文件,如下图:
2.5 cat命令
cat
查看文件内容
在装好的Linux下都有yum.conf文件,我们就拿这个文件进行举例,如下图:我们先切换到etc目录,然后查看其中yum.conf文件的内容
需要注意的是cat读取一些简单短小的文件可以,但当读取非常大的文件的时候就不适用了。
2.6 echo命令
echo: 用来写文件
echo 内容 > 文件名
这里的">"则是重定向的意思。需要注意的是echo的写入方式不是以追加的方式,而是清空文件内容再进行写入。
正如我们上面说的,没有消息就是最好的消息,当我们通过echo命令写入文件后,并没有任何反馈,我们可以使用上述介绍的cat命令查看111.txt文件的内容来验证是否写入成功,结果发现是写入成功的。
2.7 vim命令
在上面我们介绍了cat命令是查看文件内容的,echo命令是往文件中写内容的,但他们都是针对简单短小的文件的,如果是针对复杂的文件进行复杂的编辑,那么应该怎么处理呢?这就可以用到我们的vim命令了,它就相当于Linux上的文本编辑器,和我们经常使用的记事本类似。
这里我们介绍vim的三个最基本的用法。
- 打开文件
- 编辑文件
- 保存退出
-
打开文件 : vim 文件名/文件路径
以我们上面创建的111.txt文件为例,如下图:
进来之后就可以看到以下界面。
到了这里很多人就开始敲键盘进行编辑了,结果发现在键盘上敲了半天没有反应,这是为什么呢?
这是vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. 我们 需要进入插入模式才能进行文本编辑.
-
编辑文件:
按下 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
-
保存退出:先按esc回到普通模式再输入":wq" 再按回车。
在编辑完文件后我们发现并没有"×"让我们关闭页面,也不能使用ctrl+s保存文件,在Linux中我们是先通过"esc"按键回到"普通模式"然后输入":wq"进行退出。
2.8 mkdir 命令
mkdir:创建目录(make directory)
mkdir 目录名
创建一个目录,与我们Windows中新建一个文件夹类似。
mkdir -p 目录1/目录2/目录3
同时我们也可以递归创建目录,比如我们要创建aa//bb/cc,如下图:
2.9 rm命令
rm:删除目录/删除文件
rm 文件名
这是指删除指定的文件,一般在我们删除时,Linux都会提示我们是否确认删除,确认一下即可,如图:
rm -r 目录名
在上面我们提到直接使用rm+文件名可以直接删除文件,但当我们这样删除一个目录的时候,Linux则会提示不能删除,这是一个目录。如下图:
此时就需要用到rm -r 进行递归删除这个目录和该目录里的所有文件,如下图:
细心的小伙伴这个时候就会发现,当我们递归删除一个目录的时候,每删除一个目录系统都会询问是否删除,那当我们要递归删除一个成千上万的目录的时候也需要这样一个一个的确定吗,答案是否定的,这就是我们接下来要介绍的命令了
rm -rf 目录名
这里的f表示的是强制删除,当加上之后我们再进行删除的时候系统就不会一次次的确定了。如下图,我们先递归依次创建出aa,bb,cc目录,然后再进行递归删除。
2.10 cp命令
cp: 复制文件或目录
cp 源文件 目标文件
现在我们有一个111.txt文件,我们现在将它复制一份命名为222.txt,操作如下:
需要注意的是,拷贝操作有时也是很危险的,如果我们拷贝的目标文件已经存在,此时进行拷贝就会出现 "覆盖" 的情况。
cp -r 源目录 目的目录
上面我们介绍的是复制文件,当然cp命令也是可以复制目录的,加一个 -r 即可。
已知我们已经有一个aaa目录,里面有一个text.txt文件,我们现在将aaa目录拷贝到bbb目录,操作如下:
2.11 mv命令
mv: 移动或重命名文件或目录
- mv 源文件 目标文件
上面我们已经有一个bbb目录,里面有一个text.txt文件,我们现在将这个text.txt文件移到到ccc目录下并重命名为text2.txt,操作如下
上面介绍的是将一个文件移到到其他目录下,如果移到的源文件和目标文件本身就在同一个目录下,此时就相当于给这个文件改名字,和Windows中的重命名类似。我们现在将ccc目录下的text2.txt文件重命名为text.txt,操作如下:
mv 源目录 目标目录
和上面的rm命令不同的是,我们移动目录的时候不用加-r表示递归移动,直接移动即可。现在我们将ccc目录移到到bbb目录下,操作如下:
2.12 grep命令
grep: 字符串匹配
grep 字符串 文件名
快速搜索某个文件中是否包含某个特定字符串。操作如下:
同时,grep还可以在多个文件中搜索,具体操作如下:
当然,grep不仅有搜索的功能,它还能搭配不同的命令进行联动,这也就是我们接下来要介绍的几种命令。
2.13 ps命令
ps : 查看进程
ps
这样直接通过ps能查看的内容非常有限,通常要使用一些固定选项。
ps aux
列出系统中的所有进程(关于aux我们可以通过man查看帮助手册了解------man aux)
ps aux | grep mysql
在上面我们介绍grep的时候说过它通常是和其他命令搭配使用的,这就是其中的一种,通过该命令我们就可以查看包含mysql的进程。
2.14 netstat命令
netstat:用来查询网络状态
- netstat anp
- netstat -anp | grep java
这个就是查询我们Java进程的网络状态
3. Linux常见面试题
- 说说你常用的Linux命令有哪些?
- Linux如何给定进程名,查看进程的pid?
- Linux给定进程名,如何查看进程的绑定的端口号?
第一个我们就不多说了,就介绍一下自己常用的命令即可。
第二个比如我们要查看mysql进程的pid就用到了上面的ps命令:
ps -aux | grep mysql
第三个比如我们查看Java进程的端口号就用到netstat命令:netstat -anp | grep java
这次的分享就到这里结束了,下一节我们将介绍如何将自己的项目部署到服务器上让别人都可以通过我们给的地址进行访问,感谢支持!