学习Linux需要知道的知识
本文将用FinalShell(终端软件)对虚拟机进行操控。虚拟机的操作系统是centOS7.5版本。
[wyx@centos ~]$ 表示什么意思呢?
wyx,表示当前所登录的用户的用户名。如果是root表示现在登录的是管理员,拥有最高权限。
centos,表示主机名字。主机名字可以自己修改。
【】
输入命令 【hostname】, 查看自己的主机名。
同样你也可以修改自己的主机名,输入命令【vim /etc/hostname】,可以进入到hostname文件中进行修改。【vim】命令是编辑操作,文章后面会对该命令进行讲解。
~,表示当前用户目录。什么是用户目录呢?其实在我们WIndows是系统中也有。在C盘的Users目录下。
只要我们在操作系统中,新增一个用户,用户目录就会新增一个。用户目录保存了不同用户使用的文件信息。
$,表示当前用户是普通用户。如果是root用户,会显示 #。~ 号的位置,是用来表示当前路径的(即当前所在目录)。
ls【列出文件】
语法:ls 【选项】【目录或文件】
功能:列出选中路径下的目录和文件名。
通常可以搭配【选项】使用,以满足不同的需求。如果使用该命令没有指定路径,那么默认会列出当前所在路径下的目录和文件。
常见的选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -l 列出文件的详细信息。
- -r 对目录反向排序。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归)
没有加指定目录,默认为当前目录,主机名后表示的就是当前目录。下图列出的目录和文件就是属于~目录下的。
指定目录为 /(根目录)
加入选项 -l :
加选项-l,可以缩写为ll,效果与上图一样:
选项可以叠加使用:
pwd【显示当前目录】
语法: pwd
功能:显示用户当前所在路径(绝对路径)
cd【切换目录】
语法: cd 目录名(路径)
功能: 改变目录到指定目录。可以写绝对路径,也可以写相对路径。
一些特殊路径搭配:
cd .. : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录
演示用绝对路径切换目录,再返回上一级目录,用相对路径切换目录
几个特殊的目录:
- / 称为根目录
- . 称为当前目录
- .. 称为当前目录的上级目录
绝对路径 vs 相对路径
形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
形如: ./logs 以 . 或者 .. 开头的, 称为相对路径.
使用 tab 键补全
我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率。
使用 ctrl + c 重新输入
如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令。
复制粘贴
在命令行中的复制粘贴不是ctrl + c 和 ctrl + v,而是ctrl + shift + c 和 ctrl + shift + v。
touch【创建文件】
语法: touch 文件名
补充:其实touch搭配选项还可以实现其他功能,但本文只讲创建文件的功能。
mkdir【创建目录】
语法:mkdir [选项] 目录名
功能:在当前目录下创建一个目录
常用选项:
-p,可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统
将自动建立好那些尚不存在的目录,即一次可以建立多级目录
创建多个同级目录
用-p选项创建递归目录,以及同级目录:
先查看原本目录下有什么:
创建目录:
在目录下创建t1和test目录,并在t1目录下创建t2目录,t2目录下创建t3目录,如果输入的目录存在就忽略,如果没有就创建。
用tree命令查看 t1目录下的结构,tree需要切换到root用户下载安装,不然是没有这个命令的。切换为root用户【sudo su -】,安装tree命令【yum install tree】
rm【删除目录或者文件】
语法:rm [选项] [要删除的目录或文件的路径]
功能:删除文件或目录
常用选项:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
cp【复制文件或目录】
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 。
常用选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录
- 或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
原路径下的目录存在test1,test2,t1目录。test1目录下有一个book.txt文件。
将test1复制到一个不存在的路径:
复制目录文件都需要加-r,无论原本目录是否为空,否则会提示略过该目录。
但是如果目的路径多个文件都不存在,就会报错。相当于最多只允许一个目录或文件不存在。
mv【移动文件或目录】
语法: mv [选项] 源文件或目录 目标文件或目录
当把一个目录移动到一个文件的时候,会报错
把test1目录移动到test3目录下:
查看当前路径下的test1目录已经不存在了:
当目标目录和原目录是同一个父目录,且目标目录并不存在的时候,会被视为对原目录的重命名。
mv操作并不能为你创建不存在的目录或者文件,他只能允许移动或者重命名。
vim【文本编辑器】
1.创建文件 / 打开文件
vim 文件名
如果文件存在就直接打开,如果文件不存在就会先创建再打开。
2.进入插入模式
vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 "j", 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.
使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
按下i键,进入插入模式编辑
3.保存
在插入模式下不能保存文件, 需要先回到 普通模式 。按下 Esc 回到普通模式.
在普通模式下输入 :w , 再按下回车, 即可保存文件。
4.退出
在插入模式下不能退出, 需要先回到 普通模式。
在普通模式下输入 :q , 再按下回车, 即可退出。
也可以直接使用 :wq 同时执行保存和退出。
cat【查看目标文件内容】
语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
- -n 对输出的所有行编号
grep【查找字符串】
语法:grep [参数]... [文件]...
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.
选项:
- -n<行数> 显示的行数
- -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
- -r 递归查找. 可以搜索多级目录下的所有文件.
- --color 高亮查找到的结果
- --include 指定查找某些文件
- --exclude 指定排除某些文件
hello.txt
查找字符串 ll
ps【用于查看当前系统上运行的进程】
语法:ps [参数]...
功能:用于查看当前系统上运行的进程
选项:
- a 显示一个终端的所有进程
- u 以用户为主的格式来显示程序状况
- x 显示所有程序,不以终端机来区分
举例:
ps aux # 显示系统上所有的进程
ps aux | grep "进程名"
ps aux | grep "进程id"
上面的 I 表示管道 。
管道是一种古老的 "进程间通信" 方式. 在 Linux 指令中可以使用 | 作为管道标记.
意思是将前一个指令标准输出的内容, 作为第二个指令的标准输入内容.
netstat【查看网络状态】
语法:netstat [参数]...
功能:查看系统上的网络状态。
选项:
- -a 显示所有正在或不在侦听的套接字
- -n 显示数字形式地址而不是去解析主机、端口或用户名
- -p 显示套接字所属进程的PID和名称
举例:
netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"