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

简介: 后端程序员必备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 文件名/目录名

相关文章
|
6月前
|
关系型数据库 MySQL Linux
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
【Linux】jdk & Tomcat & MySql的安装及Linux后端接口部署
110 0
|
2月前
|
应用服务中间件 Linux nginx
web后端-linux-nginx-1.18操作命令和部署
web后端-linux-nginx-1.18操作命令和部署
|
5月前
|
Java 关系型数据库 MySQL
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
67 0
|
5月前
|
前端开发 关系型数据库 MySQL
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
57 0
|
5月前
|
关系型数据库 MySQL Java
Linux系统jdk&Tomcat&MySQL安装以及J2EE后端接口部署
Linux系统jdk&Tomcat&MySQL安装以及J2EE后端接口部署
44 0
|
6月前
|
Web App开发 存储 Linux
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)(下)
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)
|
6月前
|
存储 Linux 调度
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)(上)
Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)
|
6月前
|
存储 JSON Linux
Linux C/C++开发上线项目(后端、音视频、存储、QT)
Linux C/C++开发上线项目(后端、音视频、存储、QT)
|
存储 监控 Linux
Linux下安装配置Grafana压测监控服务-配置JMeter后端监听器
Linux下安装配置Grafana压测监控服务-配置JMeter后端监听器
|
监控 Java Linux
《Java 后端面试经》Linux 篇
《Java 后端面试经》Linux 篇
15767 5
《Java 后端面试经》Linux 篇