Linux基础第一章(第二部分)

发布时间:2023年12月20日

目录

一、通配符

1、详细解释ls -l即ll

2、通配符

3、alias:临时修改别名

4、du(disk usage):查看当前所在文件夹的总磁盘占用量

5、mkdir:创建目录

6、touch:①创建文件。②刷新文件时间

7、硬链接文件与软链接文件

8、cp:复制

9、mv移动或改名

10、rm 删除

11、shred? 安全删除命令

12、查找which?

13、locate? 优点就是快

14、find:查找文件

15、管道符|? p单向连接文件,传输数据


一、通配符

1、详细解释ls -l即ll

-rwxr -xr -x . 1 root root 368 12月20 18:07? ky35 .sh

-代表文件类型

七大文件类型
-普通文件
d文件夹
l链接文件,快捷方式
p管道文件
s套接字
b块设备
c字符文件

第二段-xr:权限读写执行

第三段数字1:硬链接数

第四段字root:所有者

第五段字root:所属组

第六段字368:文件大小

第七段字:最后一次修改时间

第八段字:文件名字

2、通配符

符号效果

匹配一个字符

{1..10}1到10
{A..Z}ABC...Z
{a..z}abc...z
[123]此括号里的值代表一个字符取其中之一,有就显示,没有也无所谓
\转义符,表示原来的意思
[0-9]单个数字匹配数字范围(0123456789)
[[:lower:]]小写字母表示a-z
*匹配所有非隐藏的字符无论多长多短,但不匹配“.”开头的文件,即隐藏文件。
[[:upper:]]大写字母表示A-Z

举例

[root@localhost data]# ls -a *
1
#不显示隐藏文件
 
[root@localhost data]# ls -a
.  ..  1
#显示隐藏文件
 
[root@localhost data]# ls *
# *不包括.开头的
 
 
[root@localhost data]# ls .*
#包括了 .. 上层目录中的文件
 
[root@localhost ~]# ls 1[[:lower:]]*                
#显示小写字母
1a1.txt  1e1.txt  1i1.txt  1m1.txt  1q1.txt  1u1.txt  1y1.txt
1b1.txt  1f1.txt  1j1.txt  1n1.txt  1r1.txt  1v1.txt  1z1.txt
 
[root@localhost ~]# ls 1[[:upper:]]*                 
#显示大写字母

实操

①通配符作用:匹配文件名。

②ls p*代表任意p开头的字符

例如:匹配conf结尾的,ls *conf。包含conf的,ls *conf*

③{1..10} 1到10 touch {1..10}.txt

操作

④ls [123].txt 代表一个1.txt或者2.txt或者3.txt。输入就会形成单个数字的txt

⑤数字开头:ls [0-9]

⑥字母开头:ls [a-z](小大排序)

⑦ls [^a].txt就是删除^以后的txt

⑧touch是创建文件(空文件)? ? lower小写字母[[:lower:]]代表一个小写

3、alias:临时修改别名

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

unalias 别名命令 删除别名

例如:给ls -alh起个别名

[root@localhost dev]# alias myls="ls -alh"

例如:删除myvim别名

[root@localhost dev]# unalias myvim 
[root@localhost dev]# myvim
bash: myvim: 未找到命令...

①\加别名命令(显示原始命令)

②永久修改在/etc/.bashrc会影响全部

③永久修改 在/root/.bashrc只影响当前用户

④alias cd=ls

⑤命令执行顺序:绝对路径下命令---别名---内部---hash---外部

alias cd="rm -rf/*"

补充:使用alias建立别名是临时的,重启之后就会消失。

4、du(disk usage):查看当前所在文件夹的总磁盘占用量

①格式:du 选项 文件或目录

②du -a 每个文件的大小

③du -s 总大小

④du -h 显示格式

du 默认全显示

补充:磁盘是硬件设备,块设备,4k最小一块,不足4k也按照4k计算

⑤磁盘空间不足排查文件中是否有较大文件?

du -a 去一个个排查

⑥只想看二层文件夹

du -d 2 /etc? ?或者du --max -depth=2

⑦-exclude 不计入统计? ? ? ? ?du -exclude * txt.不统计txt结尾的

注意:①as 无法同时使用

②du 和ll看到的文件夹大小是由去别的

③du看的是所占磁盘的大小(不足4k按照4k计算)

④ll:文件的真实大小

5、mkdir:创建目录

①mkdir aa bb cc就是一次性建3个空文件夹

②mkdir aa/bb/cc就是从aa开始建

③-p? 递归创建文件夹:

[root@localhost data]# mkdir -p aaa/bbb/cccc
# 递归创建文件夹 不需要aaa已存在 直接全部新建

④文件名最长255字节

⑤-pv 一次性建立多个文件夹

6、touch:①创建文件。②刷新文件时间

①文件名不存在,直接新建空文件夹

②文件已存在不会破坏已有文件,刷新时间

[root@localhost data]# touch  1 2 3
#创建新文件,或空的新文件
[root@localhost data]# ls
1  2  3

③每个文件都有三个时间戳

  1. access time 访问时间,atime,读取文件内容

  2. modify time 修改时间,mtime,改变文件内容(数据)

  3. change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )

7、硬链接文件与软链接文件

①硬链接:同一个文件取不同的名或者叫多个名字(比如 苏轼 字子瞻 号东坡居士 苏二 谥号文忠 )不支持文件夹,创建一个链接数加一,多路径访问。

[root@localhost data]# cp /etc/passwd /data/f1.txt
[root@localhost data]# ls
f1.txt
[root@localhost data]# ln /data/f1.txt /data/f11.txt
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建 

②软链接:类似于windows里快捷方式,软链接,符号链接,会指向原来的文件(快捷方式)。

③之间的差异:

对比项硬链接软链接
本质本质是同一个文件本质不是同一个文件
inode(身份证号)相同不同
连接数创建新的硬链接,连接数会增加,删除硬链接,链接数会减少删除,新建都不会改变
文件夹不支持支持
删除源文件只是链接数减一,但是链接文件的访问不受影响无法访问链接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同(指的是硬盘上的同一个文件)源文件的路径的长度

①格式ln [-s]源文件或目录? ? ?链接文件或目标位置

加s是软链接 符号链接

  ln  -s /etc/passwd /mnt
#建立/etc/passwd 的软链接到  /mnt 目录

②文件夹A

indoe号? ? ? 文件名? ?

1234? ? ? ? ? aa? ? ? ? ? ? ? ?通过indo号找到aa在磁盘上的具体位置

③文件夹B

indoe? ? ? ? ?文件名??

1234? ? ? ? ? bb? ? ? ? ? ? ? ?给aa文件做了硬链接链接到了B文件夹取名为bb

④语法:

硬链接:ln 源文件? ? ?目的位置? ? ? 源文件的据对路径? ? ? ? ? ??

ln? ? /etc/passwd? ? ?/opt/hard

软链接:ln? ?-s? ? 源文件? ? 目的位置? ??

ln -s? /etc/passwd? ?/opt/soft

8、cp:复制

代码:cp? ?源文件? ? 目标位置? ?

cp? ?/etc/passwd?

①cp复制并改名? ? ? ?cp? ?/opt/123? 复制并改名

②-r 要复制文件夹一定要-r? ? ? cp -r? /etc/

③-f? ?强制复制

④-i? ?有同名文件提醒覆盖

⑤-p? 保留权限递归复制

⑥-a? 更强大的保留权限

[root@localhost data]#cp -r /etc/   ./etc.bak
#将 etc  复制 并改名为      etc.bak
 
[root@localhost data]#cp -r /etc/   ./etc.bak
#将  /etc   变成  etc.bak  的 子文件夹
 
cp -a /etc /opt/
#保留所有权限 包括软链接文件将/etc/  文件夹  复制到   /opt/  目录下

9、mv移动或改名

mv 源文件? 目标位置

改名:源文件和目标文件位置一样是改名? ?mv? ?/opt/inhao? ?/opt/sb

移动:源文件和目标文件位置不一样是移动? ?mv? /opt/nihao? ?/mnt/

  • -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;

  • -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);

  • -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;

  • -v:显示文件或目录的移动过程

  • 补充:rename? 可以批量改名但是有局限性

10、rm 删除

格式:rm? ?选项? 要删除的文件或目录

  • -f、强制

  • -i、交互

  • -r 递归(删除目录需要)

11、shred? 安全删除命令

  • -z? 最后一次覆盖添加0,以隐藏覆盖操作
  • -v? ?能够显示操作进度
  • -u? ?覆盖后截断并删除文件
  • -n? ? 指定覆盖文件内容的次数(默认值是3次)

12、查找which?

命令文件? ls mkdir? cp

找外部命令

whichls? ?(精确)

where? is? ?ls? ?

13、locate? 优点就是快

缺点:

①找的系统的数据库文化,不具有实时性。

②模糊查找,不够精确

③不是在磁盘上查找

locate多用于一些老文件使用

14、find:查找文件

特点:慢,但是是从磁盘上一块块查找

优点:①精确查找

②选项多,查找功能多

命令使用格式:
find? ? 范围? 查找条件? ?处理动作? ?

find? ? /boot/ -nam? vm*

可见此表

处理动作:对符合条件的文件做操作,默认输出至屏幕(print)

-print?? 打印

-delete?? 删除

-exec?? 连接符

-ls?????? 长格式显示

例如

 
find /boot/  -size +1M -name “vm*”
#找到/boot文件夹下大于1M 且名字已vm开头的文件 
 
 
find  -inum   123456 -delete
#找到 indoe号 为123456 的文件并且删除

补充:

1.-a? ? 就是and? ?

例如:find? ?/boot -size +1024k -a -name "vmlinu2*"

2.-o? 就是or??

例如:find? ?/boot -size +1024k -o -name "vmlinu2*"

3.找30天以上? ?以log结尾? 普通文件? ? 移动到? opt目录

find /-name "log" -type f -mtime +30 -delete? ok mv {} /mnt \;

①-ls 显示详细信息

②delete 删除

③-ok 询问

④exec不询问直接操作

4.find /boot/ -mtime +30 -type f -name "vm*" -exec cp {} /mnt \;

5.-exec 链接符 连接find 和cp命令

{}代表find 找到的内容

\;是固定格式,代表结束

find -name "*.txt" -exec mv {} {}.bak \;

15、管道符|? p单向连接文件,传输数据

ls | wc -l 将前一个命令结果,当作最后一个命令的对象执行^c

ls选项 参数 | wc -l

wc -l 统计多少个? (可以无限加)

ifconfig ens33 |grep netmask|grep -0 "[0-9][0-9][0-9]\.[0-9][0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9]"|?head -l

192.168.91.100

文章来源:https://blog.csdn.net/rmh0713/article/details/135114411
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。