Linux文件管理

目录文件

tree命令下载:yum install -y tree tree#目录以树状结构显示

tree -L num 显示多少层 显示目录层级
例如看根目录下的一层结构
├── bin             #存放普通用户的命令
├── boot             #启动目录  grub引导程序
├── dev             #设备文件目录
├── etc              #配置文件目录   ******
├── home             #普通用户家目录  /home/用户名称   
├── lib             #c语言的函数库 
├── lib64           #c语言的函数库
├── mnt              #临时挂载目录
├── opt              #第三方应用程序安装目录
├── proc             #实时反映当前进程运行的状态 (汽车的仪表盘)
├── root             #超级管理员家目录
├── run              #进程运行时所产生的文件
├── sbin            #管理员用户使用的命令
├── tmp              #临时目录
├── usr              #普通用户目录
└── var              #可变的目录  ****

touch命令

touch创建单个文件
    touch 1.txt
touch创建有规律的文件
    touch {1..7}.txt
touch创建无规律的文件
    touch {a,d,e,f}.txt

mkdir命令

mkdir(创建目录)
-p 递归创建(用于没有创建的目:例如在家目录没有num目录但是要在num下创建目录则需要-p这个参数)

案例1:创建有规律的目录
    mkdir test{1..10}
案例2:创建以下目录结构:
    /app/
├── mysql3306
│ ├── bin
│ ├── conf
│ ├── lib
│ └── modules
├── mysql3307
│ ├── bin
│ ├── conf
│ ├── lib
│ └── modules
└── mysql3308
    ├── bin
    ├── conf
    ├── lib
    └── modules
    mkdir -p /app/mysql330{6..8}/{bin,conf,lib,modules}执行后使用tree命令查看
案例3:创建以下目录结构:
/web
├── 2020
│ ├── 01
│ │ ├── news
│ │ └── sports
│ │     ├── cba
│ │     └── nba
│ ├── 02
│ │ ├── news
│ │ └── sports
│ │     ├── cba
│ │     └── nba
│ └── 03
│     ├── news
│     └── sports
│         ├── cba
│         └── nba
└── 2021
    ├── 01
    │ ├── news
    │ └── sports
    │     ├── cba
    │     └── nba
    ├── 02
    │ ├── news
    │ └── sports
    │     ├── cba
    │     └── nba
    └── 03
        ├── news
        └── sports
            ├── cba
            └── nba
mkdir -p /web/{2020..2021}/{01..03}/{new,sports/{cba,nba}}执行后使用tree命令查看

cp命令

cp [选项] [源路径] [目的路径]
-r 递归
-p 带权限复制

1:1.txt文件复制到/tmp目录下
cp 1.txt /tmp
例2:5-10.txt文件复制到/tmp目录下
环境准备:
touch {5..10}.txt 
cp {5..10}.txt /tmp
例3:将所有以.txt结尾的文件复制到/tmp目录下
cp *.txt /tmp
例4:1.txt文件复制到/tmp目录下并且修改名称为test(注意此处的test应该不存在,否则是否覆盖)
cp 1.txt /tmp/tese
例5:将ifcfg-ens33网卡进行备份 备份结果以.bak 为结尾
cp /etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}6:复制以.txt结尾的文件到/opt目录下并且将后缀名全部改为.exe
rename [要修改的内容] [修改后内容] [选择修改的文件]
cp *.txt /opt
rename .txt .exe /opt/*.txt
7:将root家目录复制到/opt目录下
cp -r /root /opt(此处同理如何opt不存在则会将root目录的内容改名为opt,存在的话创建一个root目录)8:将test用户家目录移动至/opt目录下
基本环境准备
useradd test
cp -rp /home/test /opt
例9:将文件备份带上时间戳
cp 1.txt{,.bak-$(date +%F)}

mv命令

mv [源路径] [目标路径]
-v 查看详细过程

例子:将1.txt文件移动到/opt目录
mv 1.txt /opt
例2:2.txt 文件移动至/test目录下并且重新更名为good
mv 2.txt /test/good
例3:修改4.txt的文件名为zzz
mv 4.txt zzz
例4:3.txt文件改名为1.txt  
mv {3,1}.txt

rm命令

rm (remove)删除命令
-r 递归
-f 强制

cat命令

cat 将文件打印在屏幕上
-n 显示行号

1:查看/etc/passwd用户配置文件
cat /etc/passwd
例2:查看/etc/passwd并显示行号
cat -n /etc/passwd

cat写入文件

cat >文件名称 <<EOF
最后结束输入EOF

head 从头开始查看(默认查看10行)

    -n 查看行数
1:查看/etc/passwd用户配置文件的前10行
head /etc/passwd
例子:查看行数用head命令
cat -n /etc/passwd | head
例2:查看/etc/passwd用户配置文件的前20行
head -20 /etc/passwd

tail从尾开始查看(默认查看10行)

    -n 查看的行数
    -f 追踪文件
1:查看最新创建的用户
tail -1 /etc/passwd
例2:追踪/var/log/messages文件
tail -f /var/log/messages

开启第二个窗口
输入logger 想添加的日志文件内容
或者用tailf
tailf /var/log/messages
文件的下载与上传
通过yum install -y lrzsz下载插件
上传
手动拖入文件只能是单个文件不能是目录或者通过rz选择需要上传的文件
sz [文件] 选择需要下载的文件
下载
通过网络下载

curl

    -o 将内容读取下载到一个文件内
curl -o baidu www.baidu.com
wget通过yum install -y wget下载插件
wget -O 将下载的文件重新更名或者放置在目录下

sort命令

sort排序命令
-t 指定分隔符
-r 倒叙排列
-n 按数字排序
-k 指定第几列

1.首先创建一个文件,写入一无需的内容
cat > file.txt <<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF
2.进行排序我使用了分隔符进行排序 
[root@test ~]# sort  -t ':' -nk 2 file.txt 
3.将数字进行倒叙
[root@test ~]# sort  -t ':' -rnk 2 file.txt 
f:11
e:5
a:4
b:3
c:2
d:1

uniq命令

uniq命令去重命令
-c 统计数量

对file2.txt进行排序在进行去重
sort file2.txt | uniq
统计去重的次数
sort  file2.txt | uniq  -c 

grep命令

grep命令:对文本查找
-o 只显示查找的值
-v 取反
-i 忽略大小写
-n 显示查找文本所在的行号
-c 对查找出的文本进行统计行数
-A(num) 取出查出文本的后num行
-B(num) 取出查出文本的前num行

1:查找zyf的信息
grep zyf /etc/passwd
例2:查找root信息
grep ^root /etc/passwd (^符号是以什么什么开头)3:查找不能登录的用户
grep /sbin/nologin$ /etc/passwd($以什么什么结尾)4:查找除了root用户其他用户
grep -v ^root /etc/passwd
例5:取出除了root其他值都不要
grep -o ^root /etc/passwd
例6:统计/etc目录下有多少普通文件
查看哪些是普通文件普通文件(-)
ls -lR /etc
用grep取出以-开头的
ls -lR /etc | grep ^- 
再用wc -l统计
ls -lR /etc | grep ^- |wc -l

wc命令

wc统计命令
-c 统计文件字符数
-l 统计文件行数
-w 统计文件的单词数

wc /etc/services
 11176  61029 670293 /etc/services
 行数   单词数 字符数

awk命令

awk
-F 指定分隔符

格式 awk ‘{print $num}’ num表示要取的列数

1.取出/etc/passwd内的所有用户名称
awk -F ':' '{print $1}' /etc/passwd
2.取出/etc/passwd内的所有用户名称以及相应的登陆方式
awk -F ':' '{print $1,$NF}' /etc/passwd
3.取出所有能够登录的用户并且将用户信息以用户名加登录方式显示
能够登录 /bin/bash
grep /bin/bssh$ |awk -F ':' '{print $1,$7}'
awk -F ':' /\/bin\/bash$/{print $1,$7}
4.取出ens33网卡ip地址
\< \>
ifconfig | grep '\<inet\>'|awk '{print $2}' | head -1
ifconfig | grep 'inet '|awk 'NR==1{print $2}' 
ifconfig ens33| awk '/\<inet\>/{print $2}'
1.secure.log 取出登录失败的ip地址并且取出失败最多的top5
grep Failed secure.log |awk '{print $(NF-3)}'|sort|uniq -c | sort -rn |head -52.secure.log  取出登录成功的ip地址并且取出登录成功的top5
grep Accepted secure.log  | awk '{print $11}' | sort | uniq -c | sort -nr|head -53.nginx.log 取出nginx访问最多的ip地址并且取出top10
awk '{print $1}' nginx.log |sort | uniq -c | sort -nr | head 
​
4.找出经常使用的命令并且进行排名 取出前top5
history | awk '{print $2}' | sort|uniq -c|sort -nr | head -5

文件查找

locate命令

locate用于模糊查找文件,需要下载yum install -y mlocate需要更新数据库使用updatedb locate [选项]
[搜索的字段]

find命令

find用于精确查找文件,其中-a表示and意思,-o表示or的意思,-not !取反,*表示通配符 find [需要查找的目录] [选项]
[查找的字段] [动作]

选项 : 文件搜索选项 -name 要搜索的文件名称 -iname 不区分大小写 用户文件搜索选项 -uid 根据属主的uid查找、
-gid 根据属组的gid查找 -user 根据属主来查找 -group 根据属组来查找 -nouser 查找没有属主的文件
-nogroup 查找没有属组的文件 时间搜索的选项 -ctime 根据文件修改权限时间来查找 -atime 根据文件访问时间来查找
-mtime 根据文件修改内容时间查找 +7 表示七天以前的所有文件 -7 表示现在时间的前七天文件不包括第七天 7
表示第七天当天文件 大小搜索选项 -size KMG :表示找出指定大小的文件 +(后接大小单位为KMG):表示大于所指定大小
-(后接大小单位为KMG): 表示小于所指定的大小 权限搜索选项 -perm(0表示不匹配权限) mode
表示查找出指定权限的文件 -mode 表示权限中的每一位都要包括指定的权限 /mode 表示查找权限中的任何一位包括了指定的任何一位
文件类型搜索选项 -type f 普通文件 d 目录文件 c 字符设备文件 s 套接字文件 l 连接文件 p
管道文件 b 块状设备文件 动作 -ls 查看文件的详细信息 -print 打印查找出来文件的文件路径 delete
将查找出来的文件删除 -exec {}\;默认格式。查找出来的文件进行别的命令进行执行无法对文件打包 |xargs
查找出的文件进行执行别的命令可对文件打包

:访问根目录下七天以前的文件以test开头的文件
find / -mtime +7 -name "test*"                                         
/boot/grub2/i386-pc/test.mod                                                                                
/boot/grub2/i386-pc/test_blockarg.mod                                                                       
/boot/grub2/i386-pc/testload.mod                                                                            
/boot/grub2/i386-pc/testspeed.mod                                                                           
/tmp/test                                                                                                   
/usr/bin/testgdbm                                                                                           
/usr/bin/test                                     
例题:查找出所有有特殊权限的文件
#find / -perm /7000                                                     
/dev/mqueue                                                                                                 
/dev/shm   
例题:将/root目录下的所有test文件复制到/tmp目录下
#find /root -name "test*.txt" -exec cp {} /tmp \; 
 ls /tmp
test10.txt
test1.txt
test2.txt
test3.txt
test4.txt
test5.txt
test6.txt
test7.txt
test8.txt
test9.txt
例题:对根目录下没有任何文件的权限进行打包之/zyf目录下
#find / -perm 0000 |xargs tar czf /zyf/lzy.tar.gz  
 tar tf /zyf/lzy.tar.gz 
dev/pts/ptmx
run/cron.reboot
run/systemd/inaccessible/
sys/fs/cgroup/memory/memory.pressure_level
etc/gshadow
etc/shadow-
etc/shadow
etc/gshadow-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值