Linux 操作之文件管理篇

在这里插入图片描述

新建文件

touch 文件1 [文件2,……],创建空文件

重定向(如果指定的的文件不存在则新建文件)

>,表示覆盖写入文件

>>,表示追加写入文件

ls > ./f1.log    # 将ls命令的结果覆盖写入文件f1.log

ls -l >> ./f1.log  # 将ls -l命令的结果追加写入文件f1.log

编辑文件

打开文件

语法:vi [参数] 文件1 ……,如果打开的文件不存在,则新建该文件

参数:+n ,打开文件,光标置于第n行行首;+,打开文件,光标置于最后一行行首

关闭文件

首先按ESC键退出编辑模式

:q ,退出

:q!,强制退出

:w , 保存

:wq ,保存退出

命令模式

查询

/str, 从光标位置开始往文件尾找出制定内容 str ,按 n 跳转下一个,N跳转上一个

?str ,从光标位置开始往文件首查找制定内容str ,按 n跳转下一个,按N跳转上一个

复制

yw ,从光标位置开始复制一个单词

nyw,从光标位置开始复制n个单词

yy,复制光标所在行

nyy ,复制光标所在行在内的n行

粘贴:p

删除

x, 删除光标后的1个字符

nx,删除光标后的n个字符

X , 删除光标前的1个字符

nX ,删除光标签的n个字符

dd, 删除光标所在行

ndd,删除光标所在内的n行

替换

:s/str1/str2/g ,将光标所在行中的str1 替换为str2

:g/str1/s//str2/g , 将文件中的所有 str1 替换为 str2

编辑模式

在命令模式下,按a/A ,i/I,o/O 进入编辑模式,编辑完成后按ESC 退出编辑模式

a,在光标后输入

A,在光标所在行的行尾插入

i, 在光标前插入

I,在光标所在行的行首插入

o,在光标所在行下一行插入

O,在光标所在行的上一行插入

查看文件

  • cat [参数] 文件1……,查看文件内容,一次性将文件内容全部显示出来

    -n ,对文件中所有行编号

    -b ,对文件中所有的非空行编号

  • head [-n] 文件,显示文件前n行内容, 默认前10行

  • tail [参数] 文件

    -n ,显示文件后n行内容 ,默认后10行

    -f ,实时显示文件中新增加的内容(常用语查看日志文件)

  • more +n -m 文件 ,分页显示文件内容

    +n ,表示从文件的第n行开始显示

    -m, 表示每页显示m行内容

    翻页:z, 下一页,b, 上一页 q ,退出

复制文件

cp 原文件 目的路径 ,将文件复制到指定目录中

例1:`cp ./f2.log ./d1` ,将当前目录下的文件`f2.log`复制到当前目录下的`d1`目录中

例2:`cp ./*.log ./d2`, 将当前目录下所有的`.log`文件复制到当前目录下的`d2`文件中

cp 源文件 目的文件 , 将文件的内容复制到指定文件中

剪切文件

mv 源文件 目的路径 ,将文件剪切到指定目录

例1:`mv ./f3.txt ./d1` ,单个文件剪切

例2: `mv ./*.txt ./d1` ,批量文件剪切

统计文件内容

wc [参数] 文件 ,统计指定文件中的行数、字符数、字节数等

-l ,统计行数

-w ,统计单词数

-c ,统计字节数

-m ,统计字符数

-L ,统计最长行的长度

对文件内容排序

  • sort [参数] 文件 , 排序,默认以第一列升序排,排序依据是ASCII

    -n ,制定以数值大小排序

    -r ,降序

    -t ,指定分隔符(默认为空格)

    -k,指定用于排序的列

例: 新建文件f3.log 文件内容如下

2011,张三,608
2021,张三,88
1010,张三,68
1190,李四,79
1021,王五,87

sort ./f3.log ,排序,默认以第一列升序排

sort -r ./f3.log 降序排

sort -t, -k 3 ./f3.log, 以逗号将文件内容分隔为3列,以第三排排序

sort -t, -k 3 -n ./f3.log ,以逗号将文件内容分隔以3列,以第三列数值大小排序

查找文件内容

  • 语法:grep [参数] 查询内容 文件

    -c ,返回与查询内容匹配的行的数量

    -n ,标记包含查询内容的行和行号

    -v,返回不包含查询内容的行

    -i ,忽略大小写

例:文件f1.log内容如下

总用量 62

lrwxrwxrwx.   1 root root     7 2月  25 21:04 bin -> USR/sbin
dr-xr-xr-x.   6 root root  1024 2月  25 21:11 boot
drwxxxxxxxxxxxxxxxxxxr-xr-x.  20 root root  3240 2月  25 21:14 dev
odrwxr-xr-x.  74 root root  4096 2月  25 21:14 etc
lrwxrwxrwx.   1 root root     7 2月  25 21:04 lib -> usr/lib

drw-r-xr-x.   4 root root  4096 2Mon  25 21:07 home
drwxr-xr-x.   4 root root  4096 2Mon  25 21:07 home
drwx------.   2 root root 16384 2月  25 21:04 lost+found
drwxr-xr-x.   3 root root  4096 2月  25 21:10 media
lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin
drwxr-xr-x.   2 root root  4096 4月  11 2018 srv
drwxr-xr-x.  13 root root  4096 2月  25 21:04 usr
drwxr-xr-x.  19 root root  4096 2月  25 21:11 var

例1:

[root@centos-linux work]# grep "usr/sbin" ./f1.log 
lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin

[root@centos-linux work]# grep -c "usr/sbin" ./f1.log 
1

[root@centos-linux work]# grep -n "usr/sbin" ./f1.log 
19:lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin

[root@centos-linux work]# grep -ni "usr/sbin" ./f1.log 
3:lrwxrwxrwx.   1 root root     7 2月  25 21:04 bin -> USR/sbin
19:lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin

  • 范围匹配:[]

    [abc]d,匹配ad ,bd ,cd

    [a-z] , 匹配小写字母

    [A-Z] ,匹配大写字母

    [0-9],匹配数字

例:

[root@centos-linux work]# grep -n "[abcd]i" ./f1.log 
3:lrwxrwxrwx.   1 root root     7 2月  25 21:04 bin -> USR/sbin
12:drwxr-xr-x.   3 root root  4096 2月  25 21:10 media
13:lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin

[root@centos-linux work]# grep -n "[1-5]月" ./f1.log 
3:lrwxrwxrwx.   1 root root     7 2月  25 21:04 bin -> USR/sbin
4:dr-xr-xr-x.   6 root root  1024 2月  25 21:11 boot
5:drwxxxxxxxxxxxxxxxxxxr-xr-x.  20 root root  3240 2月  25 21:14 dev
6:odrwxr-xr-x.  74 root root  4096 2月  25 21:14 etc
7:lrwxrwxrwx.   1 root root     7 2月  25 21:04 lib -> usr/lib
11:drwx------.   2 root root 16384 2月  25 21:04 lost+found
12:drwxr-xr-x.   3 root root  4096 2月  25 21:10 media
13:lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin
14:drwxr-xr-x.   2 root root  4096 4月  11 2018 srv
15:drwxr-xr-x.  13 root root  4096 2月  25 21:04 usr
16:drwxr-xr-x.  19 root root  4096 2月  25 21:11 var

匹配首行 : ^

[root@centos-linux work]# grep "^d" ./f1.log 
dr-xr-xr-x.   6 root root  1024 2月  25 21:11 boot
drwxr-xr-x.  20 root root  3240 2月  25 21:14 dev
drwxr-xr-x.   4 root root  4096 2月  25 21:07 home
drwx------.   2 root root 16384 2月  25 21:04 lost+found
drwxr-xr-x.   3 root root  4096 2月  25 21:10 media
drwxr-xr-x.   2 root root  4096 4月  11 2018 mnt
drwxr-xr-x.   2 root root  4096 4月  11 2018 opt
dr-xr-xr-x. 113 root root     0 2月  25 21:11 proc
dr-xr-x---.   2 root root  4096 2月  25 21:11 root
drwxr-xr-x.  25 root root   780 2月  25 21:14 run
drwxr-xr-x.   2 root root  4096 4月  11 2018 srv
dr-xr-xr-x.  13 root root     0 2月  25 21:11 sys
drwxrwxrwt.  10 root root  4096 8月  11 16:27 tmp
drwxr-xr-x.  13 root root  4096 2月  25 21:04 usr
drwxr-xr-x.  19 root root  4096 2月  25 21:11 var
drwxr-xr-x.   2 root root  4096 8月  11 16:33 work

匹配行尾: $

[root@centos-linux work]# grep "r$" ./f1.log 
drwxr-xr-x.  13 root root  4096 2月  25 21:04 usr
drwxr-xr-x.  19 root root  4096 2月  25 21:11 var

. ,匹配任意一个字符

*匹配前一个字符任意次

例:

[root@centos-linux work]# grep ".rwx*" ./f1.log 
lrwxrwxrwx.   1 root root     7 2月  25 21:04 bin -> USR/sbin
drwxxxxxxxxxxxxxxxxxxr-xr-x.  20 root root  3240 2月  25 21:14 dev
odrwxr-xr-x.  74 root root  4096 2月  25 21:14 etc
lrwxrwxrwx.   1 root root     7 2月  25 21:04 lib -> usr/lib
drw-r-xr-x.   4 root root  4096 2Mon  25 21:07 home
drwxr-xr-x.   4 root root  4096 2Mon  25 21:07 home
drwx------.   2 root root 16384 2月  25 21:04 lost+found
drwxr-xr-x.   3 root root  4096 2月  25 21:10 media
lrwxrwxrwx.   1 root root     8 2月  25 21:04 sbin -> usr/sbin
drwxr-xr-x.   2 root root  4096 4月  11 2018 srv
drwxr-xr-x.  13 root root  4096 2月  25 21:04 usr
drwxr-xr-x.  19 root root  4096 2月  25 21:11 var

查找文件

  • ls +管道符 + grep

    管道符—| ,将左边命令的结果作为右边命令的操作对象

    例:

    [root@centos-linux work]# ls -l
    总用量 20
    drwxr-xr-x. 2 root root 4096 8月  11 17:02 d1
    drwxr-xr-x. 2 root root 4096 8月  11 16:59 d2
    -rw-r--r--. 1 root root  743 8月  12 09:59 f1.log
    -rw-r--r--. 1 root root  112 8月  11 17:25 f2.log
    -rw-r--r--. 1 root root   76 8月  11 17:41 f3.log
    
    [root@centos-linux work]# ls -l | grep "f1"
    -rw-r--r--. 1 root root  743 8月  12 09:59 f1.log
    
  • ls -l 列出文件或者目录信息

```text
[root@centos-linux work]# ls -l
总用量 20
d   rwx  r-x  r-x.   2  root   root   4096   8月  11 17:02    d1
-   rw-  r--  r--.   1  root   root     76   8月  11 17:41    f3.log
--  ---  ---  ----   -  ----   ----   -----  -------------    ------
1    2    3    4     5   6      7       8         9             10

1、表示对象类型。d-目录,l-链接文件,-表示普通文件
2、表示对象所有者的权限
3、表示对象所属组用户的权限
4、表示其他用户的权限
5、表示链接数
6、表示对象所有者
7、表示对象所属用户组
8、大小
9、最后一次修改时间
10、对象名
```
  • find 目录 查找方式 [匹配条件] ,在指定目录及其子目录中查找文件

    -name ,表示以对象名称查找

```text
[root@centos-linux work]# find ./ -name "f1*"
./f1.log
./d2/f1.log
./f11

```
  • -type ,表示以对象类型查找, f-普通文件 d-目录 l - 链接文件

    [root@centos-linux work]# find ./ -type l
    ./f5.txt
    [root@centos-linux work]# find ./ -type d
    ./
    ./d1
    ./d2
    ./f11
    ./f2
    [root@centos-linux work]# find ./ -type f
    ./d1/f2.log
    ./d1/f6.txt
    ./d1/f4.txt
    ./d1/f5.txt
    ./d1/f3.txt
    ./f1.log
    ./f3.log
    ./f2.log
    ./d2/f1.log
    ./d2/f2.log
    [root@centos-linux work]# find ./ -name "f1*" -type f
    ./f1.log
    ./d2/f1.log
    
    
  • -exec 命令{} \; ,对find命令查找的结果执行命令

```text
# 对查找到的文件执行删除命令
[root@centos-linux work]# find ./ -name "f1*" -type f -exec rm -f {} \;
```

链接文件

  • 软连接 : ln -s 源文件 链接文件

    链接文件与源文件的内容同步的 ,如果源文件被删除则链接文件不可用

  • 硬链接 :ln 源文件 链接文件

    链接文件与源文件的内容同步的,如果源文件被删除,链接文件不受影响

安装文件

在线安装:yum [-y] 命令 文件

-y ,操作过程中所有问题都回答YES

install 安装指定软件包

search 查询指定软件包

provides ,查询指定软件包

remove ,卸载已经安装的软件包

例:使用yum安装下载工具 wget

# 查询
[root@centos-linux work]# yum provides wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
wget-1.14-18.el7_6.1.x86_64 : A utility for retrieving files using the HTTP or FTP protocols
源    :base

# 安装
[root@centos-linux work]# yum -y install wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 安装
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================
 Package                  架构                       版本                                  源                        大小
==========================================================================================================================
正在安装:
 wget                     x86_64                     1.14-18.el7_6.1                       base                     547 k

事务概要
==========================================================================================================================
安装  1 软件包

总下载量:547 k
安装大小:2.0 M
Downloading packages:
wget-1.14-18.el7_6.1.x86_64.rpm                                                                    | 547 kB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : wget-1.14-18.el7_6.1.x86_64                                                                           1/1 
  验证中      : wget-1.14-18.el7_6.1.x86_64                                                                           1/1 

已安装:
  wget.x86_64 0:1.14-18.el7_6.1                                                                                           

完毕!

# 使用
[root@centos-linux work]# wget http://s1.dgtle.com/dgtle_img/article/2021/08/08/c069b8480cc85496dc5e6be5b9183098.jpg
--2021-08-12 12:02:59--  http://s1.dgtle.com/dgtle_img/article/2021/08/08/c069b8480cc85496dc5e6be5b9183098.jpg
正在解析主机 s1.dgtle.com (s1.dgtle.com)... 118.112.225.41
正在连接 s1.dgtle.com (s1.dgtle.com)|118.112.225.41|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:55463 (54K) [image/jpeg]
正在保存至: “c069b8480cc85496dc5e6be5b9183098.jpg.1”

100%[================================================================================>] 55,463      --.-K/s 用时 0.1s    

2021-08-12 12:03:00 (405 KB/s) - 已保存 “c069b8480cc85496dc5e6be5b9183098.jpg.1” [55463/55463])

# 卸载
[root@centos-linux work]# yum -y remove wget
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 删除
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================
 Package                  架构                       版本                                 源                         大小
==========================================================================================================================
正在删除:
 wget                     x86_64                     1.14-18.el7_6.1                      @base                     2.0 M

事务概要
==========================================================================================================================
移除  1 软件包

安装大小:2.0 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : wget-1.14-18.el7_6.1.x86_64                                                                           1/1 
  验证中      : wget-1.14-18.el7_6.1.x86_64                                                                           1/1 

删除:
  wget.x86_64 0:1.14-18.el7_6.1                                                                                           

完毕!

离线安装(针对rpm格式文件)

查询: rpm -qa ,列出当前已经安装的所有软件包

[root@centos-linux work]# rpm -qa|grep "openssh"
openssh-server-7.4p1-21.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64

安装: rpm -ivh file.rpm

例:搭建ftp 服务器

1、下载ftp安装包

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

2、安装vsftpa软件包

3、编辑配置文件:/etc/vsftpd目录下

	将ftpusers文件中的root那一行删除或者注释
	将user_list文件中的root那一行删除或者注释

4、启用服务:systemctl start vsftpd

5、查询服务:systemctl status vsftpd

6、客户端远程连接ftp服务器
在这里插入图片描述

  • 卸载 : rpm -e 软件包
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系的老肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值