3.27-29 Linux基础命令

112 阅读7分钟

shell:

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口,bash

内部命令和外部命令

命令的本质:一个个程序

内部命令

1内部命令和 bash 软件是一体的,bash 中集成了很多命令

2没有独立的文件

3不用独立安装

4直接运行在内存中,无需加载

外部命令

1不在bash软件中,有独立的执行文件

2需要额外安装

3系统需要知道命令文件的位置才可以运行

系统规定了几个文件夹,如果你的命令在这几个文件夹中,那么是不需要写路径的

echo$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

cd 外部(磁盘) 内部(内存)

ls 是否是第一次运行

如果是第一次运行:先判断是外部还是内部,如果是内部直接执行,外部去规定的路径去找到执行,找不到直接报错

不是第一次运行:先判断是内部还是外部,如果是内部直接执行,如果是外部去查缓存,按照缓存提示去找到执行,找不到直接报错

如果执行一个命令报错,命令未找到

1 没有安装该命令 软件

2 hash缓存有误,清理hash表

3 不在指定的路径下,需要使用绝对路径,或者将命令复制到规定文件夹下

命令

命令字(空格)选项(空格)参数

命令名:你执行任务,需要挑选相对应的命令

选项:修饰加强命令

参数:对谁使用该命令 1文件 2文件夹 3用户名

选项的类型

1 -字母

2 --完整字母

tab 和 ctrl

tab 补全 (如果你的命令唯一,直接补全 如果你的命令不唯一,会显示全部)

ctrl + l 清空

ctrl + c 停止命令

上下键 回看命令

ctrl + r 搜索执行过的命令

补全的对象是命令或文件名

内部命令

echo$PATH

linux 根下的目录结构

bin:普通用户使用命令

sbin:只有超级管理员可以使用的命令

etc:配置文件 对所有用户有效

mnt:挂载点

opt:放第三方软件的

boot:存放开机启动文件,linux内核

dev:存放硬件 磁盘 光驱

var/log:存放日志

proc:显示内存中的详细信息

root:超级管理员的家目录

家目录:每一个用户都会有家目录, 放用户个性化配置的地方只对当前用户

绝对路径和相对路径:

路径的作用:描述这个文件在系统中的位置

绝对路径:从根开始描述文件的位置 一定不会找错

相对路径:从当前文件夹开始描述文件的位置 有可能出错

文件类型

image-20240328155603958.png

属主 属组 其他

1代表文件的连接个数,硬连接

第一个root:文件的拥有者

第二个root:文件的拥有组

0或17 文件的大小

时间是文件的最后一次使用时间

123或opt是文件名

image.png

颜色表示的文件类型

黑色:数据文件

绿色:可执行文件

黄色:块设备文件硬件设备(硬盘)

红色:压缩包

蓝色:文件夹

天蓝色:连接文件(快捷方式)

硬链接和软链接:

硬链接:多了一种找到文件的方法,无法对文件夹做链接

ln 源文件(绝对路径)硬链接上

软链接:快捷方式,指明了源文件在什么位置

ln -s 源文件(绝对路径)软链接

硬链接和软链接的区别

image-20240328185953619.png

通配符

*任意长度的字符

?代表单个字符

p* 以p开头

*conf 以conf结尾

*conf * 包含conf的文件名

反斜杠\ 转义符,原来的意思

image-20240401154007910.png

[[:alnum:]] 任意数字和字母

alias 自定义命令 = ' 原始命令 '

自定义命令:尽量不要使用原有的命令

cd

cd . 当前文件夹

cd .. 当前文件家的上级目录

cd ~ 当前用户的家目录

cd - 回到上一次所在的目录

ls

ls (list) : 显示所有的文件

-l 长格式显示 ls -l = ll

ls -a : 显示隐藏文件( 包括 . 和 . . )

ls -A : 显示隐藏文件( 不包括 . 和 . . )

ls -h : 人性化显示 加单位

ls -d :只显示目录的属性

ls -R : 递归显示所有目录

ls -t :按时间顺序显示

ls -S : 按文件大小排序

ls -r :倒序排序

ls -i :显示文件的inode号 是有限的 唯一的

du :

磁盘使用量 在文件夹下使用du可以统计文件占用磁盘的大小

-a 显示所有

-s 显示总和(可统计当前目录总和)

-h 人性化显示(加单位)

-d 数字 显示层级

( 注意 a 和 s 不可以同时使用 )

磁盘是一块设备

du 看到的不是文件的真实大小,而是该文件占用了磁盘的具体空间,不满4k 按4k算

ll 看到的是文件的真实大小

硬盘满了怎么处理 使用du命令查找,占用量较大的文件夹或文件 然后确认,是垃圾或者无用文件可以将其删除

mkdir:

建立文件夹(可以建立多个)

mkdir 选项 文件夹的名字

-p 递归建立

-v 显示过程

0

touch:

建立文件(可建立多个)

touch 选项 文件名

文件名已存在 刷新文件的时间

文件名不存在 新建文件

cp

复制

cp 选项 源文件 存放点/可以改名也可以不改名

-i 提醒覆盖

-f 不提醒强制覆盖

-r 递归复制 复制文件夹一定要加

-p 保持权限复制

-a 更强大的保留权限,可以替代 -r 和 -p

mv:

移动或改名(移动并改名)

mv 源文件 目的地

源文件不改变路径就是改名

源文件改变路径就是移动

也可以移动并且修改名字

rm:

删除

一般用 rm -rf

-f 强制

-i 交互

-r 递归

pwd:

显示当前文件目录

查找命令:

which 命令(常用的外部命令)

查找命令的位置

locate

-i 不区分大小写的搜索

-n N 只列举前N个匹配项目

find 范围 条件表达式 处理动作

范围:你要找的文件范围,不写就是默认在当前文件夹

条件表达式:选项 表达式,描述你要找的文件

处理动作:对找到的文件进行处理(删除,复制,移动,显示)

条件表达式

image-20240401184542553.png

按时间查找: -mtime +是大于 -是小于

查找空文件: -empty

处理动作

-ls:类似于对查找到的文件执行"ls -dils"命令格式输出

-delete:删除查找到的文件,慎用

-exec 命令 {} ; :对查找到的每个文件执行指定的命令

-ok 命令 {} ; :对查找到的每个文件执行指定的命令,询问用户是否继续

{} : 用于引用查找到的文件名称自身

组合条件

与:-a (默认多个条件是与关系 -a 可以省略)

或:-o

非:-not

cat:

显示命令

-n 显示行号包括空行

-b 跳过空白行编号

-s 将所有的连续的多个空行替换为一个空行(压缩成一个空行)

-A 显示隐藏字符

head和tail:

head 查看文件的前十行

head -n 10 文件名 (查看前十行)

head -c 取字符

tail 查看文件的后10行

tail -f 文件名(实时查看)

管道符

命令1的输出结果 | 交给命令2当做参数执行

wc:

wc 文件 :行数 单词个数 字节数 文件名

-l 统计行数

-w 统计单词个数

-c 统计字节数

通配符:匹配文件名字(ls find) [a-z] 除了大Z

正则表达式:匹配文章中的内容(grep) [a-z] 都是小写字母

grep:

过滤文本中你感兴趣的内容

grep 选项 "匹配式" 文件名或标准输入

选项:

-i 忽略字符大小写

-n 显示行号

-v 反向匹配

-o 只显示匹配的内容

-r 递归匹配,可以跟文件夹

-w 只匹配单词

-f 已文件作为匹配的条件 两个文件找相同

表示位置:

^ 表示以什么字符开头 就写在最开头

$ 表示以什么字符结尾 就写在最后面

^$ 空行

^root$ 这一行只有root这四个字符

grep ''^$'' 空行

grep -v ''^$'' 非空行

grep -v ''^#'' 不是以#号开头的行

合并文件和拆分文件:

合并文件:paste

上下合并:cat 文件a 文件b > 新文件名

左右合并 paste 文件a 文件b > 新文件名

paste -d 指定分隔符

重定向

标准输出重定向:本来输出在屏幕上的内容,改变了输出方向,输出到了文件中

拆分文件:split

tar

归档

tar 选项 自定义压缩包名字 要压缩的文件

-c 建立归档文件

-f 代表使用归档

-x 解压缩

v 显示过程,解压和压缩

-C 指定解压的文件夹

j 调用bzip2压缩

z 调用gzip压缩

t 不解包的情况下查看里面的文件列表

tar -f 加了- f必须要放在最后,否则无法执行

tar -f 不加- 选项随便