后端程序员必备Linux基础基础篇2
Posted 崇尚学技术的科班人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端程序员必备Linux基础基础篇2相关的知识,希望对你有一定的参考价值。
1、文件目录指令
1.1、pwd
pwd
:显示当前工作目录的绝对路径。
指令:
pwd
。
1.2、ls
ls
:显示当前目录的信息
指令:
ls [选项] [目录文件]
常用选项
-a
:显示当前目录中含有的所有的文件和目录(包括隐藏的)。-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 [选项] 要删除的文件或目录
-
-r
:递归删除整个文件夹 -
-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” 所在行,并显示行号
-
写法一:
cat /home/hello.txt | grep -n "yes"
-
写法二:
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 中,每个文件有所有者、所在组、其他组的概念。
- 所有者
- 所在组
- 其他组
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
查看当前目录的内容,如下
第一列:
- 第0位: 确定
文件类型
(d、-、l、c、b)
-
l
:是链接,相当于 windows 的快捷方式 -
d
:是目录,相当于 windows 的文件夹 -
-
:是普通文件 -
c
:是字符设备文件,如鼠标。键盘 -
b
:是块设备,如硬盘
-
第1-3位: 确定所有者拥有该文件的权限(rwx)
-
第4-6位: 确定所在组其他用户拥有该文件的权限(rwx)
-
第7-9位: 确定其他组用户拥有该文件的权限(rwx)
-
后面的一位数字:如果是文件就表示为1,如果是目录,就表示子目录的个数。
-
再后面的字符串:表示的是用户
-
接着的字符串:表示的是组
-
再后面的数字:表示的是文件大小,如果是文件夹则显示4096。
-
接着的:表示的是最后修改日期。
6.2、rwx权限详解
- rwx 作用到
文件
:
-
[r]
代表可读(read):可以读取查看 -
[w]
代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件 -
[x]
代表可执行(execute):可以被执行
- 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的总和)
-
chmod u=rwx,g=rx,o=x 文件名/目录名
-
将其他组赋予写的权限的指令:
chmod o+w 文件名/目录名
-
将所有人的执行的权限都去掉的指令:
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的主要内容,如果未能解决你的问题,请参考以下文章
不愧是阿里P8!后端程序员必备的Linux基础知识+常见命令