Centos7.9学习

发布于 2021-11-01  1744 次阅读


参考师傅文章:https://blog.csdn.net/qq_42427971/article/details/112860080

结合xshell和xftp测试学习

前置知识

在linux中,一切皆文件

退出命令

Ctrl+c是强制中断程序的执行。

Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,如mysql挂起后就下次进就可以不用输入密码了。

Shell

参考:https://blog.csdn.net/cheng__lu/article/details/79418278

shell意为“壳“,是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核

Linux中的shell,是指一个面向用户的命令接口,也就是我们输入命令的地方,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息

shell类似与用户与系统之间的桥梁,当我们在shell上输入一些命令时,shell会传递给内核,经过内核的处理反馈给用户

shell可以直接执行命令,也可以编写一个sh文件,内含shell脚本来执行

相对路径

在当前目录为起点叫做相对路径 相对路径的表示形式

表现形式 说明 示例
直接使用目录名或文件名 表示当前工作中的子目录、文件的位置 cat.conf
以一个点号"." 开头 表示以当前的工作目录作为起点 ./cat.conf
以两个点号". ." 开头 表示当前目录的上级目录作为起点 . ./cat.conf
以“~用户名”形式为开头 表示以指定用户的宿主目录作为起点 ~fox
以“~”形式开头 表示以当前用户的宿主目录作为起点 ~

绝对路径

以根号为起点的路径就叫绝对路径

通配符

“?”:代表任意一个字符,且至少一个 “*”:代表任意数个字符,可以是0个或者1个或者多个 “[]”:表示可以匹配字符组中的任意一个字符 如[A-Z]

-a 表示而且(and)

-o 表示或者(or)

软链接与硬链接

软链接类似于windows系统中的快捷方式,在Linux下,软连接就是一个普通文件,它包含指向源文件的位置信息。

硬链接实现了一个文件有多个名字,同时放在多个不同目录,它的作用时可以防止误删文件。当编辑其中一个文件并保存,查看其它位置文件内容时,内容显示还是一致的。硬链接建立后,删除任意一个文件,即使是源文件也可以,文件内容不会受损,直到源文件和硬链接文件都被删除后,文件内容才会损失。这可以看做硬链接相互为副本,但是实际并没有多占空间。

常用命令

help

本身是Linux Shell中的一个内建指令,其用途是查看各Shell内部命令的帮助信息

如help pwd命令可以查看Shell内部命令pwd 的帮助信息

*enable

-n:关闭指定的内部命令;
-a:显示所有激活的内部命令;
-f:从指定文件中读取内部命令。

功能:启动或关闭shell内建指令命令

用法:如果enable -n cd就会关闭cd命令的使用 enable cd重新开启

type

作用:查看命令属于外部/内部命令

内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中

外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行

完毕后从内存中删除

例如

type echo #判断echo命令 echo is a shell builtin #表示echo是一个内部命令

type ping #判断ping命令 date is /usr/bin/ping # 表示ping是一个外部命令

ip addr

输入“ifconfig”命令查看ip地址,如果是centos7版本则使用“ip addr”命令来查看ip地址即可。

回显的inet一般为ipv4地址

常用指令

pwd

显示当前所在工作目录的位置

cd

*cd或cd ~ : 切换到当前文件的家目录

cd - :切换到上一次目录

ls

显示目录中内容,包括子目录和文件相关属性信息

常用选项

-l 显示权限、大小、用户名、组名、大小、更改时间
-a 显示隐藏文件. .
-A 显示所有文件除了. .
-d 显示目录本身的属性
-R 以递归的方式显示子目录

白色 一般文件 天蓝色 软连接文件 红色 压缩文件 黄色 设备文件 绿色 可执行文件

与之类似的是dir 显示目录

如dir ../显示上级目录下的内容

alias

可用于简化指令,自定义指令别名

如指令alias pb='ping www.baidu.com'

再次输入指令pb即会执行后面部分

unalias pb 即取消指令别名pb

mkdir

makedir

目录即是一个文件

创建目录:mkdir 目录名

嵌套目录:mkdir -p 目录名/目录名/目录名

touch

作用:单独或批量进行创建文件;更新文件时间标记

1.单独创建文件

touch 文件名

如touch helloworld.py

2.批量创建文件(用{}可指定前缀后缀

touch指令 ls测试
touch {cat,dog}.java cat.java dog.java
touch cat.{java,py} cat.java cat.py

3.更新文件时间

如touch cat.java即更新了cat.java的文件时间

通过在目录下ls -l 即可看出

vi|vim

vi是unix默认的文本编辑器[vim是它的增强版本]

如vi hello.py

进入文件编辑后,按i键进入insert编辑模式

编辑结束,按ESC退出编辑模式,再开启大写模式后敲击两个ZZ即可保存

cat

查看文件内容,会直接显示整个文件的内容

用法:cat 选项 文件名

常用选项(可选)

-n 对所有输出的行数编号 -b 对与空白行不编号 -s 将所有的连续的多个空行替换(压缩)为一个空行

rm

remove

删除文件或目录

用法: rm 选项 文件名

常用选项(可选)

-f:删除文件或目录时不进行提醒,而直接强制删除 -i:删除文件或目录时提醒用户确认(y表示删除,n表示不删除) -r:删除目录时必须使用此选项,表示递归删除整个目录树,需要用户确认y/n

cp

copy

复制 文件或目录到当前目录下

用法: cp 源文件 新文件

常用选项 -f:覆盖目标同名的文件或目录时不进行提醒,而直接强制复制 -i:覆盖目标同名的文件或目录时提醒用户确认 -p:复制时保存文件的权限、属主及时间标记等属性不变 -r:复制目录时必须使用此选项,表示递归复制所有文件及子目录

mv

move

移动文件或目录

用法: mv 移动目标 移动目的地

如mv cat.java ../

即将cat.java文件移动到上级目录

如果目标位置与源位置相同,则相当于执行重命名操作

如mv cat.java home 而当前目录即为home,那么cat.java就会呗重命名为home

which

查看指令文件所在目录

搜索范围由环境变量PATH决定,可以通过指令echo $PATH查看范围,会从左到右依次查找

通过which命令就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

如which ping 返回/usr/bin/ping

而查找内部命令时将会提示找不到对应程序

gzip|bzip2

制作压缩包和解压缩包,压缩包文件后缀为gz

用法:gzip 选项 文件名

无选项时会直接压缩源文件

常用选项 -9 可以提高压缩比率[默认等级6平衡] -d 用于解压缩以及压缩过的文件

指令 ls测试
gzip cat.java cat.java.gz
gzip -d cat.java.gz cat.java

tar

制作归档文件和释放归档文件

tar 选项 文件

常用选项

-c:创建.tar格式的包文件 -x:解开.tar格式的包文件 -C:解压时指定释放的目标文件夹 -f:表示使用归档文件 -p(小写):打包时保留文件及目录的权限 -P(大写):打包时保留文件及目录的绝对路径 -t:列表查看包内的文件 -v:输出详细信息(Verbose) -j:调用bzip2程序进行压缩或解压 -z :调用gzip 程序进行压缩或解压

du

统计目录及文件空间使用情况

du 选项 文件/目录

常用选项

-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录

-h 以更人性化的方式,默认以KB计数,不显示单位

-s 只统计所占用空间总的大小

–max-depth=n 统计所有小于等于第n层的目录的总大小

★面试题 如何以易读的方式显示文件夹内及子文件夹大小

-ah或者 -a -h都可以

★检查异常占用[逐层查]

如du -h –max-depth=1 ./ 检测当前目录所有小于等于第一层目录的总大小

其中/proc为虚拟文件系统可以排除

find

采用递归的方式,根据名称、类型、大小等方式进行查找

用法: find 目录 选项

常用选项:

-name 按名称查找:根据目标文件的名称进行查找,允许使用 “*” 及 “?” 通配符

-size 按文件大小查找:根据目标文件的大小进行查找,一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件,常用的容量单位包括kB(注意k是小写)、MB、GB

-user按照文件属主查询:根据文件是否属于目标用户进行查找

-type按照文件类型查找:根据文件的类型进行查找,文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等

如在当前目录下找类型为目录,名字test

find ./ -type d -name "test"

返回./test

如在当前目录下找类型为普通文件,名字hello.py

find ./ -type f -name "hello.py"

返回./test/hello.py

各表达式之间使用逻辑运算符

-a 表示而且(and)

-o 表示或者(or)

-exec 后面跟linux命令,执行系统命令,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符

找到当前目录下所有的以.log结尾的文件并把查找结果当做参数传给rm -rf命令进行删除,注意备份,这可用于执行自动删除日志的功能 find ./ -name "*.log" -a -type f -exec rm -rf {} \;

rm -rf命令见前面 表示递归删除目录且不提醒

ln

为某一个文件在另外一个位置建立一个同步的链接(软链接)

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空

用法 : ln -s 源文件 目标文件

跨目录创建后会闪红

如将hello.py在test2文件中建立一个同步的链接文件(命名为hellocopy.py)

ln -s hello.py ./test2/hellocopy.py

grep

查找并显示包含指定字符串的行

用法: grep 选项 目标

常用选项 -i 查找时不区分大小写 -v 显示不包含匹配文本的所有行[反向] -c 指数粗匹配到的总行数 按行不按次数 -n 显示匹配行及行号 -e 实现可多给查找条件的匹配,逻辑or关系 -E 支持使用扩展正则表达式,相当于egrep -o 精确匹配。即“仅匹配”之意 查找条件设置 "^. . ."表示以. . .开头 ". . .$ "表示以 . . .结尾 "^$"表示空行

注:双引号代表一个整体、一个好习惯,如果不加双引号会导致有时候作为一个整体可能会被分割

如在hello.py中查找一个以p开头的行,同时不区分大小写

注意需要提前cd到所需要查询的文件的同一目录下

grep -i "^p" hello.py

如在hello.py中查找o,不论次数,不区分大小写

grep -io "o" hello.py

但这只会显示所要查找的内容,想要整行显示就根据查找条件设置来显示行

more

查看内容较多的文件,cat是一次显示全部内容,而more可以分页显示内容

用法:more 选项 目标文件

交互操作方法

  1. 按Enter键向下逐行滚动

  2. 按空格键向下翻一屏

  3. 按b键向上翻屏

  4. 按q键退出

如结合管道符显示当前目录

ls -r ./|more

less

查看内容较多的文件,与more的功能相同,但比more更加的全面

用法: less 选项 目标文件

交互操作方法

  1. Page Up 键向上翻页 Page Down 键向下翻页

  2. 按"/"键查找内容,”n“下一个内容,”N“上一个内容

  3. 通过↑和↓方向键实现上下逐行滚动

  4. 下翻到最后一页后不会自动退出

  5. 结合管道操作使用时可以向上翻页

hend|tail

查看文件内容开头和结尾

head 用于查看文件内容开头,可以指定行数,默认为10行

用法: head 选项 文件

常用选项

-n 显示的行数 *n=行数

如查看test文件内容的前十行 head test

如查看test文件内容的前五行 head -5 test

tail 用于查看文件内容结尾

用法: tail 选项 文件

常用选项

-f 动态更新(循环读取)如出现改变将更新

-n 显示文件尾部n行的内容

动态更新

此处使用echo对cat文件进行添加内容,vi下无法更新

tail -f hello.py

单>为覆盖原有内容

双>>为追加入原有内容

如对hello.py追加内容aaa

echo aaa >> hello.py

注意: 若无hello.py文件,则会先创建此文件并追加内容

ctrl c 退出

wc

统计文件中的数量等信息

用法: wc 选项 文件

常用指令

-l 统计行数[空行也算]

-w 统计单词个数[衡量标准为空格分隔]

-c 统计字节数

如不加任何选项则默认同时使用这三个选项

如wc test

回显 3 3 26 test

3 3 26依次为行数、单词个数、字节数

echo

echo 不加选项时,直接输出字符串

echo -n 表示不换行输出

echo -e 输出转义字符,将转义后的内容输出到屏幕上

区别:
命令echo -e "My name is \n Xiaoing"
返回My name is 
   Xiaoing

命令echo "My name is \n Xiaoing"
返回My name is \n Xiaoing

常用的转义字符

\b 相当于退格键,前提是 \b 后面存在字符并且加上双引号才会生效

\c 不换行输出,在 \c 后面不存在字符的情况下,相当于echo -n

\n 换行,被输出的字符从 \n 处开始另起一行

举例:可用于fdisk,实现无交互创建磁盘分区
echo -e “\n\np\n\n\n\nw\n” | fdisk /dev/sd[]

\f 换行,但是换行后是新行开头位置连接上一行的行尾

\v 与f相同

\t 插入tab,横向制表符

\r 不换行的回车符,但是 \r 后面的内容会覆盖前面的内容,如 \r 后面没有字符时则不覆盖

\ 表示插入一个\

echo -e "123\n""123" | passwd

hash

hash命令负责显示与清除命令运行时系统优先查询的哈希表(hash table)

用法: hash 参数 目录(可选)

常用参数:

-d 在哈希表中清除记录
-l 显示哈希表中的命令
-p 路径指令 将具有完整路径的命令加入到哈希表中
-r 清除哈希表中的记录
-t 显示哈希表中命令的完整路径

文件格式

sh后缀一般为脚本文件

进阶知识

命令执行的优先级

第一优先级带上路径去执行命令

  • 如绝对路径 /cathome/cat.java 或者相对路径 ./cat.java

  • 绝对路径就是准确的路径,相对路径就是相对与某个文件的路径,如上是相对于当前目录./下的文件路径

第二优先级是别名命令

  • 也就是alias设置的别名

第三优先级是内部命令 第四优先级是hash命令

  • Linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找

  • hash表能提高命令的调用速率

第五优先级通过PATH定义的查找顺序查找 如果以上顺序都找不到,就会报“未找到命令…”的错误

Centos目录结构

image-20221103185109441

常见的子目录和解释

/bin: 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。是一个软链接文件,源文件是/usr/bin

/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件

/dev:是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux中访问设备的方式和访问文件的方式是相同的

/etc:是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录

/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve

/lib:是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL文件;几乎所有的应用程序都需要用到这些共享库。是个软链接文件/usr/lib

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

/media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了

/opt:是 optional(可选)的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下;这个目录默认是空的

/proc:是 Processes(进程) 的缩写,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器

/root:该目录为系统管理员,也称作超级权限者的用户主目录

/sbin:s 代表 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序;它是个软连接文件,源文件为usr/sbin

/selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的

/srv:该目录存放一些服务启动之后需要提取的数据

/sys:

  • 这是 Linux2.6 内核的一个很大的变化;该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs

  • sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的devpts 文件系统

  • 该文件系统是内核设备树的一个直观反映

  • 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建

/tmp: 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的

/usr:是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录

/usr/bin:系统用户使用的应用程序

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序

/usr/src:内核源代码默认的放置目录

/var:var 是 variable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run

最后更新于 2023-03-13