Linux目录和文件管理

247 阅读7分钟

1. Linux(centos7)根目录

根目录下的所有文件

[root@localhost /]#ls  ##查看当前文件夹
boot  etc   lib    media  opt   root  sbin  sys  usr  bin
dev   home  lib64  mnt    proc  run   srv   tmp  var
目录说明
bin存放Linux系统中常用的系统命令任何用户权限都可以执行
dev常用的硬盘、光驱、鼠标等硬件设备
home普通用户的家目录也称主目录
lib、lib64存放各种链接库文件
mnt临时挂载存储设备(一般为空文件)
proc基于内存的虚拟文件系统,用于存储系统内核和进程的相关信息。
run用于存放进程产生的临时文件,系统重启后会消失
tmp用来存放系统或程序产生的临时文件,可供所有用户执行写入操作
var存放系统运行过程中经常变化的文件
boot存放Linux系统启动所必需的文件,Kernel被存放再这个目录中
etc存放Linux系统和各种程序配置文件,Linux中的很多操作和配置都是通过修改配置文件实现的。
media用于系统自动挂载可移动存储设备。
root超级用户root的家目录
sbin存放Linux系统基本的管理命令,只有管理员权限才可以执行。
usr软件的默认安装位置,类似于Windows中的Program Files目录

一些重要的目录:

/usr/share/        帮助文档、说明文档
/var/log/           日志
/var/run/            运行中程序
/var/tmp            临时文件 

2. cat  查看文件内容

选项说明
-n    显示行号
-A  显示隐藏字符
-b 空行不标序号
-s压缩空行将多个空行压缩成一个空行
[root@localhost data]#cat passwd  ##查看passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
[root@localhost data]#cat -n passwd  ##查看passwd并显示出行数
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10  operator:x:11:0:operator:/root:/sbin/nologin
    11  games:x:12:100:games:/usr/games:/sbin/nologin
    12  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

cat 可以一次看多个文件,谁在前面是先显示。

Cat 的缺陷: 只能显示一个屏幕的内容 

文档中隐藏的符号

^I    tab   (制表符)
      空格
$     换行
三个符号 在一些脚本不能混用

3. more

文件格式: more 文件名
功能简述: more命令,功能类似catcat命令是整个文件的内容从上到下显示在屏幕上。
按键说明
空格向下一页
回车向下一行
b 向上
q  退出

 

4. less

命令格式: less 文件名
功能简述: 比more多了个查找功能
按键说明
空格向下一页
回车  向下一行
/  查找内容
n  向下查找
N向上查找

5. head、tail

5.1 head

选项说明
n指定显示行数
v输出显示文件的文件名
c指定字节显示
q隐藏文件名

head默认只能查看文档前十行

[root@localhost data]#head passwd   ##head查看文档
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

head指定行数

[root@localhost data]#head -n 2 passwd  ##查看passwd文件的前两行 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

5.2 till

选项说明
n指定显示行数
f实时动态跟踪默认没秒刷新后10行
[root@localhost data]#tail -n 2 passwd ##查看文档后两行
can:x:1000:1000:can:/home/can:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

6.管道符

管道符功能: 通过管道符可以把很多命令组合起来,提高工作效率。简言之管道符的作用就是:把前一个命令原本要输出到屏幕的标准正常数据当作后一个命令的标准输入。

管道符用|表示
命令格式为:命令A|命令B|命令C...

[root@localhost ~]#ifconfig  ens33|head -n 2 ##查看 ifconfig ens33传给head查看后两行
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.100  netmask 255.255.255.0  broadcast 192.168.200.255
[root@localhost ~]#ifconfig  ens33|head -n 2|tail -n 1
        inet 192.168.200.100  netmask 255.255.255.0  broadcast 192.168.200.255

7. wc

功能: 统计文件中的信息

wc 不加选项
[root@localhost data]#wc passwd 
  21    29    939    passwd
 行数 单词数  字节数
选项说明
l显示行
w单词数(不是真正的单词)
c字节数

空格 tab 回车 都占字节数

8.grep

功能: 过滤你想要的文本信息

通配符核正则的区别

  • 通配符:匹配文件名字

  • 正则表达式: 匹配文本中的内容

      用法: grep [选项]... PATTERN [FILE]...
      PATTERN:正则表达式(明确的条件)选项
    
    选项
    i查找时忽略条件的大小写
    v反向查找
    n显示行号
    r递归过滤文件夹中的所有文件
    o只匹配你要的东西

基础用法:

[root@localhost data]#grep  root  passwd  ##查找passwd文件里的root 
                      命令  内容   执行的文件
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

正则表达式:

^   以什么开头(放最前)
$   以什么什么结尾(放最后)
^$  空白行
[root@localhost data]#grep -n 'bash$' passwd  ##显示以bash结尾的行并显示行序
1:root:x:0:0:root:/root:/bin/bash
20:can:x:1000:1000:can:/home/can:/bin/bash

[root@localhost data]#grep -n '^#' fstab  ##显示以#开头的的行并显示行序
2:#
3:# /etc/fstab
4:# Created by anaconda on Thu Jul  7 20:13:37 2022
5:#
6:# Accessible filesystems, by reference, are maintained under '/dev/disk'
7:# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8:#

[root@localhost data]#grep -n '^$' fstab  ##显示空白行
1:

[root@localhost data]#grep -nv '^$' fstab ##显示不是空白行的行内容
2:#
3:# /etc/fstab
4:# Created by anaconda on Thu Jul  7 20:13:37 2022
5:#
6:# Accessible filesystems, by reference, are maintained under '/dev/disk'
7:# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8:#
9:/dev/mapper/centos-root /                       xfs     defaults        0 0
10:UUID=9bcfc286-cf26-4220-9e51-f0c012f8bc4c /boot                   xfs     defaults        0 0
11:/dev/mapper/centos-home /home                   xfs     defaults        0 0
12:/dev/mapper/centos-swap swap                    swap    defaults        0 0

9. 压缩、解压缩

9.1 gzip

选项说明
-9压缩选项
-d解压缩

压缩

[root@localhost data]#gzip passwd  ##使用gzip压缩passwd文件
[root@localhost data]#ls  ##查看当前目录
fstab  passwd.gz

解压缩

[root@localhost data]#gzip -d passwd.gz ##解压缩
[root@localhost data]#ls  ##查看当前目录
fstab  passwd

9.2 bzip2

选项说明
-9压缩选项
-d解压缩
-k保留源文件

压缩

root@localhost data]#bzip2 passwd  ####使用bzip压缩passwd文件
[root@localhost data]#ls  ####查看当前目录
fstab  passwd.bz2

解压缩

[root@localhost data]#bzip2 -d passwd.bz2  ##解压
[root@localhost data]#ls   ##查看当前目录
fstab  passwd

-k 保留源文件 压缩比gzip 要好一点

9.3 tar(归档)

选项有顺序要求:如果你加了-,f一定要在最后 
选项说明
f代表使用归档
c建立归档文件
x解开归档文件
p保留源文件权限
v显示归档过程,解归档过程
C指定解压目录
z代表使用 gzip 压缩
j代表使用 bzip2 压缩
t不解开归档文件 只查看归档文件中的内容

制作归档:压缩包的名字在前,压缩的文件在后

[root@localhost data]#tar -zcvf a.tar.gz passwd  ##压缩passwd,压缩名是a.tar.gz
passwd
[root@localhost data]#ls
a.tar.gz  fstab  passwd

z 使用 gzip 压缩     
c建立tar归档   
v显示过程  
f使用tar

解压

[root@localhost data]#tar -zxvf a.tar.gz -C /opt
passwd
[root@localhost data]#ls /opt/
hgfs  passwd

z使用gzip 压缩
x 代表解压     
v显示过程  
f使用tar
all.tar.gz压缩包的名称
-C代表解压到指定的目录/opt

10. vim(文本编辑器)

vi:一定自带     
vim:vi升级版,需要安装,最小化安装时不带vim,需要自行下载
下载命令:yum -y install vim

10.1 vim 基本用法

使用格式:vim 文件
A.!vim   打开上一次的文件
B.vim +# 文件名    #代表行号
vim:  vim  怎么退出?          
Esc-->英文:-->q退出
wq  保存退出  
q!  强制退出

10.2 vim三种模式

1.命令模式:

含义: 一开始进入的模式

image.png

常用的vim按键

按键功能
上下左右移动光标
end、$一行间开头直接到末尾
^、0一行间末尾直接到开头
GG直接跳最后一行
gg直接跳第一行
#G直接跳转到第#行
yy( #yy)复制整行(复制#行(#代表数字))
yw复制一个单词
p粘贴到光标所在位置的下一行
大P光标所在位置的的上一行
dd(#dd)剪切整行(剪切#行)
x、del删除单个字母
d^删除光标处到开头
d$删除光标处到末尾
dw删除一个单词
u撤销一次
大U撤销全部
r可以替换一个字符(不能加字符只能替换)
大R替换模式
ZZ保存退出
/[内容]查找内容
n向下
N向上

2.输入模式

功能: 对文本进行编辑

命令跳转到输入模式:

按键功能
i 、nsert在光标所在处输入
 在当前光标所在行的行首输入
a 、append在光标所在处后面输入
A  在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行

比较常用的按键:i和o

3. 末行模式 

命令格式 :s/需要被替换的内容/新的替换内容/

    显示所有的命令选项: set all
    显示行号: set nu
    关闭行号: set nonu
    显示下划线: set cul
    关闭下划线: set nocul .
    显示隐藏字符: set list
    加密:set key=你设置的密码
    接触密码:set key=  (什么都不要输入,直接回车)
    自动缩进:set ai
    另存为: w加上路径 w    /opt/aaa
    把另一个文件加入到当前文件编辑: r或e 文件路径  r /etc/shadow  
    读取命令结果,写入当前文件中: .!命令    .!date
    取消高亮   nohl

末行模式下查找替换

通式

范围   :s /旧的字符/新的字符/修饰符
  • 不写 默认光标当前行
  • #,#  某一行到某一行  #代表数字   2,20   2到20行
  • %    代表全文
  • s 命令查找  search      

分隔符: /      #    @  

旧的字符: 你要找的或者你要替换的内容  (可以使用 *  ^)

新的字符: 你要替换旧字符的字符 (不可以使用 *)

修饰符:

i 不区分大小写
g 整行中所有命中的关键字都替换(如果不g  只替换整行中命中的第一个)

在配置文件当中#号开头的行为注释不生效

:s /root/can     将当前行中查找到的第一个字符"root” 串替换为 "can"

替换前: image.png

替换后: image.png

:s /root/can/g     将当前行中查找到的所有字符串"root" 替换为"can"

替换前

image.png 替换后

image.png

:#,# s/root/can/g   在行号“#,#” 范围内替换所有的字符串"root” 为"can"

替换前

image.png

替换后

image.png

:% s/root/can/g    在整个文件范围内替换所有的字符串"old""new"

替换前 image.png

替换后

image.png

:s /root/can/c      在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

替换前

image.png   替换后   image.png