后端程序员必备Linux基础基础篇2

Posted 崇尚学技术的科班人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端程序员必备Linux基础基础篇2相关的知识,希望对你有一定的参考价值。

1、文件目录指令

1.1、pwd

  • pwd显示当前工作目录的绝对路径

指令:pwd

1.2、ls

  • ls显示当前目录的信息

指令:ls [选项] [目录文件]

常用选项

  1. -a :显示当前目录中含有的所有的文件和目录(包括隐藏的)。
  2. -l:以列表的方式显示信息。

1.3、cd

  • cd切换到指定目录

指令:cd [参数]

  • 回到当前用户的家目录指令:cd ~cd :

  • 回到当前目录的上一级目录指令:cd ..

1.4、mkdir

  • mkdir创建目录

指令: mkdir [选项] 要创建的目录

常用选项:-p创建多级目录

1.5、rmdir

  • rmdir删除空目录

指令:rmdir [选项] 要删除的空目录

注意:上述指令是删除空目录,如果要删除非空目录,需要使用 rm -rf 要删除的目录

1.6、touch

  • touch创建空文件

指令:touch 文件名

1.7、cp

  • cp拷贝文件到指定目录

指令:cp [选项] 要拷贝的文件名 目标目录

  • 常用选项:-r:递归复制整个文件夹(将一个目录的所有文件都拷贝到新的目录下)

  • 强制覆盖不提示的指令:\\cp [选项] 要拷贝的文件名 目标目录

1.8、rm

  • rm移除文件或目录

指令:rm [选项] 要删除的文件或目录

  1. -r:递归删除整个文件夹

  2. -f:强制删除不提示

1.9、mv

  • mv移动文件与目录或重命名

重命名指令:mv 原文件名 新文件名

移动文件指令:mv 要移动的文件或目录 目标目录

1.10、cat

  • cat查看文件内容

指令:cat [选项] 要查看的文件

  • 常用选项:-n:显示行号

  • 注意:cat 只能浏览文件,不能修改文件。为了便于浏览,一般会带上管道命令 | more

1.11、more

  • more: 是一个基于 vi 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容

指令:more 要查看的文件

内置的快捷键

操作功能说明
空格键向下翻页
Enter向下翻一行
q立刻离开more,不再显示该文件内容
ctrl + f向下滚动一屏
ctrl + b返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

1.12、less

  • less用来分屏查看文件内容

指令:less 要查看的文件

内置的快捷键

操作功能说明
空格键向下翻动一页
[pagedown]向下翻动一页
[pageup]向上翻动一页
/字符串向下搜寻字符串:n:向下查找;N:向上查找
?字符串向上搜寻字符串:n:向下查找;N:向上查找
q离开 less 程序

特别说明

  • less 功能跟 more 类似,但是比 more 指令更加强大,支持各种显示端。less 指令在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

1.13、echo

  • echo输出内容到控制台

指令:echo [选项] [输出内容]

1.14、head

  • head用于显示文件的开头部分内容(默认情况下显示文件前10行内容)

默认查看文件前10行指令:head 文件

查看文件前m行指令:head -n m 文件

1.15、tail

  • tail用于显示文件的尾部部分内容(默认情况下显示文件尾10行内容)

默认查看文件尾10行指令:tail 文件

查看文件尾m行指令:tail -n m 文件

实时追踪该文档的所有更新内容指令:tail -f 文件

退出指令:ctrl+c

1.16、> 和 >>

  • > 输出重定向(覆盖原内容) 和 >> 追加

常用指令

将列表的内容写入文件中(覆盖写)指令:ls -l > 文件

将列表的内容追加到文件末尾指令:ls -al >> 文件

将文件1的内容覆盖到文件2指令:cat 文件1 > 文件2

指令:echo "内容" >> 文件

1.17、ln

  • ln软链接也称为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

给原文件创建一个软链接指令:ln -s [原文件或目录] [软链接名]

删除软链接指令:rm 软连接

1.18、history

  • history查看已执行的历史命令或者执行历史命令

查看已经执行的历史命令指令:history

显示最近使用过的n条命令的指令:history n

执行历史编号为m的命令的指令:!m

2、时间日期指令

2.1、date

  • date显示当前日期和设置日期

显示当前时间指令:date

显示当前年份指令:date "+%Y"

显示当前月份指令:date "+%m"

显示当前是哪一天指令:date "+%d"

显示年月日时分秒指令:date "+%Y-%m-%d %H:%M:%S"

指令:date -s 字符串时间

示例:设置当前时间为2021年12月1号9点55分10秒:date -s "2021-12-1 9:55:10"

2.2、cal

指令:cal [选项](不加选项则显示本月日历)

显示某年日历指令:cal 年份

3、查找指令

3.1、find

  • find从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端

指令:find [搜索范围] [选项]

常用选项说明

选项功能说明
-name 文件名按照指定的文件名查找模式查找文件
-user 用户名查找属于指定用户名所有文件
-size 文件大小n(+n:大于n;-n:小于n;n:等于n)按照指定的文件大小查找文件

3.2、locate

  • locate快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位指定的文件。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 数据库。

指令:locate 文件

  • 注意:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建locate 数据库。

3.3、which

  • which可以查看某个指令在哪个目录下

指令:which 要查看的指令

3.4、grep

  • grep过滤查找

指令:grep [选项] 查找内容 源文件

常用选项说明

选项功能说明
-n显示匹配行及行号
-t忽略字母大小
  • 注意: grep 往往和管道符 “|” (表示将前一个命令的处理输出传递给后面的命令处理)一起使用

  • 示例:在 hello.txt 文件中,查找 “yes” 所在行,并显示行号

  1. 写法一:cat /home/hello.txt | grep -n "yes"

  2. 写法二: grep -n "yes" /home/hello.txt

4、压缩和解压指令

4.1、gzip

  • gzip用于压缩文件

指令:gzip 文件

注意:只能将文件压缩为 .gz 文件

4.2、gunzip

  • gunzip用于解压文件

指令:gunzip 文件.gz

4.3、zip

  • zip用于压缩文件夹或目录

指令:zip [选项] 文件名.zip 将要压缩的内容

常用选项

-r:递归压缩,即压缩目录

4.4、unzip

  • unzip用于解压文件夹

指令:unzip [选项] 文件名.zip

常用选项

-d :压缩后文件存放的目录

注意:不指明解压后的路径,则默认为当前目录

4.5、tar

  • tar打包文件或文件夹

tar 打包后的文件是.tar.gz 的文件

指令:tar [选项] 文件名.tar.gz 打包的内容

常用选项

选项功能
-c产生.tar 打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解包.tar 文件
-C解压后文件存放的目录
  • 示例1:压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz

指令:tar -zcvf pc.tar.gz /home.pag.txt /home/cat.txt

  • 示例2:将 pc.tar.gz 解压到当前目录

指令:tar -zxvf pc.tar.gz

  • 示例3:将 /home/pc.tar.gz 解压到 /opt 中

指令:tar -zxvf /home/pc.tar.gz -C /opt

5、组

5.1、组的基本介绍

在 linux 中的每个用户必须属于一个组,不能独立于组之外。在 linux 中,每个文件有所有者、所在组、其他组的概念。

  1. 所有者
  2. 所在组
  3. 其他组

5.2、组的创建

创建组的指令:groupadd 组名

5.3、文件/目录的所有者

  • 所有者:创建该文件的用户,一般文件被哪个用户创建的,该用户就自然成为了该文件的所有者。

查看文件的所有者指令:ls -ahl

修改文件所有者指令:chown 用户名 文件名

注意:

如果要修改目录,并使其所有子文件和目录递归生效,则要加上:-R

5.4、文件/目录的所在组

  • 所在组:创建该文件用户所在的组,当某个用户创建了一个文件后,该文件所在组就是该用户所在组。

查看所在组指令:ls -ahl

修改文件所在组指令:chgrp 组名 文件名

注意:

如果要修改目录,并使其所有子文件和目录递归生效,则要加上:-R

5.5、其他组

  • 其他组:创建文件用户所不在的组,除文件的所有者和所在组的用户外,系统的其它用户都是文件的其他组。

5.6、改变用户所在组

  • 在添加用户时,可以指定将该用户添加到哪个组中。
  • 同样的用 root 的管理权限可以改变某个用户所在的组。

改变用户所在组指令:usermod -g 新组名 用户名

改变用户登录的初始目录指令:usermod -d 目录名 用户名

特别注意:改变户用登录的初始目录,用户需要拥有进入该目录的权限

6、权限

6.1、权限的基本介绍

使用ll查看当前目录的内容,如下

第一列:

  1. 第0位: 确定文件类型(d、-、l、c、b)
  • l:是链接,相当于 windows 的快捷方式

  • d:是目录,相当于 windows 的文件夹

  • -:是普通文件

  • c:是字符设备文件,如鼠标。键盘

  • b:是块设备,如硬盘

  1. 第1-3位: 确定所有者拥有该文件的权限(rwx)

  2. 第4-6位: 确定所在组其他用户拥有该文件的权限(rwx)

  3. 第7-9位: 确定其他组用户拥有该文件的权限(rwx)

  4. 后面的一位数字:如果是文件就表示为1,如果是目录,就表示子目录的个数。

  5. 再后面的字符串:表示的是用户

  6. 接着的字符串:表示的是组

  7. 再后面的数字:表示的是文件大小,如果是文件夹则显示4096。

  8. 接着的:表示的是最后修改日期。

6.2、rwx权限详解

  1. rwx 作用到文件
  • [r] 代表可读(read):可以读取查看

  • [w] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件

  • [x]代表可执行(execute):可以被执行

  1. rwx 作用到目录
  • [r]代表可读(read):可以读取,ls 查看目录内容

  • [w] 代表可写(write):可以修改,对目录内创建+删除+重命名文件

  • [x]代表可执行(execute):可以进入该目录

rwx可以使用数字进行表示:r = 4,w = 2,x = 1。因此rwx = 7。

6.3、chomd

  • chmod 指令可以修改文件或者目录的权限

  • 方式一: +、-、= 变更权限

u:表示所有者、g:表示所在组、o:表示其他组、a:表示所有人(u、g、o的总和)

  1. chmod u=rwx,g=rx,o=x 文件名/目录名

  2. 将其他组赋予写的权限的指令:chmod o+w 文件名/目录名

  3. 将所有人的执行的权限都去掉的指令:chmod a-x 文件/目录名

  • 方式二: 通过数字变更权限

r=4、w=2、x=1、rwx=4+2+1(可以组合,如3=wx)

指令:chmod 751 文件名/目录 等价于 chmod u=rwx,g=rx,o=x 文件名/目录名

以上是关于后端程序员必备Linux基础基础篇2的主要内容,如果未能解决你的问题,请参考以下文章

后端程序员必备的Linux基础知识+常见命令,威力加强版

不愧是阿里P8!后端程序员必备的Linux基础知识+常见命令

linux基础篇-linux必备11条 简述

万字长文超硬核详细学习系列——深入浅出Linux基础篇的知识点,值得你收藏学习必备

程序猿必备技能之MySQL基础篇

Linux基础篇——Linux进程服务管理