学习RHCSA的第三天

目录

copy(复制)命令

rm(移除)命令

ln命令

vim编辑器

vim工作的三种模式:

模式之间的切换:

命令行模式下的操作:

末行模式下的操作:

管道

tee命令

了解内容:

文件内容浏览命令

cat命令

more命令和less命令

head和tail命令

grep命令


copy(复制)命令

copy命令在Linux中可以简写为cp,可以复制目录和文件。

格式:cp [选项] 源文件 目标文件

注意:cp命令可以复制,并且在粘贴的时候可以进行重命名。cp也可以复制多个文件。

cp命令选项:

选项功能
-a通常在拷贝目录时使用。它保留链接、文件属性、并递归的拷贝目录。
-d拷贝时保留链接
-f在覆盖已经存在的目标文件时不提示
-i在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
-p除复制源文件的内容外,还将把其修改时间和访问权限也复制到新中
-r若给出的源文件的是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
-I不做拷贝,只是链接文件。

rm(移除)命令

注意:rm命令一定要慎用,因为rm提供了强制删除的功能。

rm命令格式:rm [选项] 文件或目录以及路径

rm命令选项:

选项功能
-f在覆盖已经存在的目标文件时不再提示
-i在覆盖目标文件之前将给出体时要求用户确认。hi大y时目标文件将被覆盖,时交互式拷贝。
-r递归删除整个目录树

注意:不能直接删除目录,因为目录中可能会有文件或者子目录。删除目录的时候要用-r,递归删除。

###

通常在删除目录时,目录中文件过多,且使用-i选项就会出现很多提示信息,并且需要手动确认。

解决方法:rm -rf 目录

删除多个文件或目录:rm [选项] 目录1 目录2 ·····

###

ln命令

ln:link,链接,该命令经常用来新建链接文件。

ln命令格式:ln [选项] 源文件 链接文件

ln选项:

选项功能
-s建立符号链接(软链接),不佳该选项时建立的链接为硬链接
-f删除 已经存在目标文件与源文件之间的链接关系
-i交互式地删除目标文件与源文件之间的链接关系
# 不带选项的ln,为link_file创建了link_1链接文件
[root@localhost link_test]# ln link_file link_1
# 但是使用ls -l查看,发现link_1还是普通文件
[root@localhost link_test]# ls -l
total 0
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_1
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_file
# 使用stat查看文件详细信息的时候。 links是2
[root@localhost link_test]# stat link_file 
  File: link_file
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 3325079     Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
​
​
[root@localhost link_test]# ln link_file link_1
[root@localhost link_test]# man ln
[root@localhost link_test]# ln -s link_file link_2
[root@localhost link_test]# ls -l
total 0
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_1
lrwxrwxrwx. 1 root root 9 Mar 26 01:44 link_2 -> link_file #链接文件:通过建立符号链接来的。
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_file
​

硬链接与软连接的区别

比较硬链接软连接
不同点使用不带选项-s的ln命令使用带选项-s的ln命令创建
只能在与源文件相同的文件系统、分区和挂在设备上创建可跨越不同的文件系统、分区和挂在设备创建
只能针对文件创建硬链接针对文件和目录均可以建立软链接
具有硬连接关系的两个文件名指向是硬盘上的同一块存储空间一个文件(或目录)指向另一个文件(或目录)的文件名(或目录名),类似于windows系统中的快捷方式
删除硬链接的任何一方文件后,另一方文件任然有效删除源文件或目录后,软链接文件或目录无效
相同点对任何一方的内容进行修改都会影响到另一方
链接文件都不会将源文件复制一份,只会占用非常少量的用于存储链接信息的存储空间
1.建立时候的区别: 硬链接建立后,就是一个普通, 而符号链接(软链接)就是一个链接文件
2.硬链接只能对文件建立,不能针对目录,软链接对目录和文件都可以
3.具有硬链接关系的两个文件名指向的是硬盘上同一块空间, 软链接:类似于我们windows的快捷方式,即一个文件指向的是另一个文件
4.删除:硬链接删除link_1或者link_file,另一方文件仍然有效,只是Links减一
       如果是软链接,删除了源文件后link_file,链接文件就失效了
​
[root@localhost link_test]# ls -l
total 0
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_1
lrwxrwxrwx. 1 root root 9 Mar 26 01:46 link_2 -> link_file
-rw-r--r--. 2 root root 0 Mar 26 01:38 link_file
[root@localhost link_test]# rm -rf link_file 
[root@localhost link_test]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 26 01:38 link_1
lrwxrwxrwx. 1 root root 9 Mar 26 01:46 link_2 -> link_file
​

 

vim编辑器

vim编辑器是文本编辑器,类似于windows上的记事本,可以进行编辑、保存、退出不保存、复制、粘贴和替换等操作。

vim工作的三种模式:

命令行模式:控制光标,完成复制、粘贴、删除、查找的功能。

编辑模式:编辑文本文件的内容。

末行模式:保存退出、设置环境。

模式之间的切换:

进入vim默认进入的是命令行模式(左下角没有任何显示),按"a、i或o"键进入编辑模式(左下角有--INSERT--的字样),之后按Esc键回到命令行模式;命令行模式进入末行模式,按":"键,退出末行模式按Esc键。(注意:命令行模式可以进入编辑模式,也可以进入末行模式,但是编辑模式与末行模式不能直接进行切换。

命令行模式下的操作:

行内快速跳转:
    跳转至行首:Home、^、0
    跳转至行尾:End、$
    跳转至文件的首行:1G或者gg
    跳转至文件的尾行:G
    跳转至指定行:#G(#在此处的意思是输入指定行的行号)
复制:
    复制光标所在的行:yy
    复制多行:#yy(#在此处的意思是输入指定行的行号,且从光标所在行开始算起)
粘贴:
    粘贴到光标位置之后:p
    粘贴到光标位置之前:P
删除:
    删除单个字符:x/del
    删除从光标到行首:d^
    删除从光标到行尾:d$
    删除整行:dd
    删除多行:#dd(#在此处的意思是输入指定行的行号)
查找:
    从上往下查找:
        /查找的内容,enter确认,若是查找到多个内容则n查找下一个,N查找上一个。
    从下往上查找:
        ?查找的内容,enter确认,若是查找到多个内容则n查找下一个,N查找上一个。
撤销:
    u:撤销最近一次操作,多次按u,恢复多步操作
    U:取消对当前行所做的编辑
保存并退出:ZZ

注意:在使用vim编辑一个文件的时候,如果这个文件本身不存在,然而你编辑完成之后保存并退出了,那意味着创建了一个新的文本文件。

末行模式下的操作:

设置行号:
    set nu:显示行号
    set nonu:不显示行号
保存:
    :w保存
    :w [路径/文件名]另存为
退出:
    :q退出(在未作任何修改的情况下可以直接退出)
    :q!强制退出
    :wq保存并退出
    :wq!强制保存退出
:e newfile在一个文件中打开另一个新文件
:r filename在一个文件中读入另一个文件的内容
替换:
    :s/old/new在行内替换,只匹配到第一个old字符串替换成new
    :s/old/new/g在行内进行替换,替换行内所有的old字符串替换成new(g表示所有)
    :#,#s/old/new/g将指定的开始行和结束行中的old字符串替换成new("#,#"表示指定范围)
    :%s/old/new/g在全文中将old字符串,替换为new

注意:在命令行模式和末行模式下,可以按上、下方向键调出历史命令。

管道

管道文件,pipe。管道的作用:起连接作用,将上一个命令的输出传递给后一个命令作为输入,命令之间用管道符"|"分隔开。

管道符使用格式:command1 | command2 | command3……

stdout:standard output,标准输入

stdin:standard input,标准输出

more命令:浏览文件内容,分页浏览(按页去展示,按空格跳转到下一页,按q退出,也可以进行搜索操作)。

grep命令:根据指定的字符串去匹配,并展示匹配到的内容。

命令的输出:

cat data.txt #该命令将文件内容输出到屏幕上
cat data.txt | more #将原本输出在屏幕上的内容通过管道符"|"传递给more命令,作为more命令的输入
​
# ls -l:展示当前目录下的内容(长格式),输出在屏幕上(标准输出)
[root@localhost link_test]# ls -l
total 12
-rw-r--r--. 1 root root 247 Mar 26 05:32 data2.txt
-rw-r--r--. 1 root root 247 Mar 26 05:49 data.txt
-rw-r--r--. 3 root root   0 Mar 26 04:26 hard_link
-rw-r--r--. 3 root root   0 Mar 26 04:26 link_file
-rw-r--r--. 3 root root   0 Mar 26 04:26 symb_link
-rw-r--r--. 1 root root 248 Mar 26 05:36 test_quit.txt
# 将ls -l原先输出在屏幕上的内容,通过管道传递给grep命令,作为它的输入,然后grep命令去匹配data2.txt
[root@localhost link_test]# ls -l | grep data2.txt
-rw-r--r--. 1 root root 247 Mar 26 05:32 data2.txt

注意:

1、管道命令只处理前一个命令的正确输出,不处理错误输出。

2、管道符后边的命令,必须能够接收标准输入命令。

tee命令

tee命令是从标准输入读取然后输出到标准输出和文件中。

# echo "123"将123输出在屏幕(标准输出)
# 通过管道符 将输出的123作为tee命令的标准输入
# tee命令将123输出在屏幕上(标准输出),并保存在文件中tee_test.txt
[root@localhost link_test]# echo "123" | tee tee_test.txt
123
[root@localhost link_test]# more tee_test.txt 
123
​
# 追加在文件中而非覆盖
[root@localhost link_test]# echo "123" | tee -a tee_test.txt 
123
[root@localhost link_test]# more tee_test.txt 
456
123

语法:

tee [-ai] [--help] [--version] [文件...]

参数:

-a或--append,附加到既有文件的后面,而非覆盖它。
-i或--ignore-interrupts,忽略中断信号。
--help,在线帮助。
--version,显示版本信息。

示例

练习:
1、使用ls -l查看当前目录的内容,并使用管道符将ls -l的输出作为grep命令的输入查找test。
2、tee的命令使用,ls -l查看当前目录的内容,然后使用管道符,将ls -l的输出作为tee的输入,并保存在result.txt中。
[root@localhost ~]# ls -l |tee result.txt
total 4
drwxr-xr-x. 2 root root  6 Apr  6 15:41 Desktop
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Documents
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Downloads
-rw-r--r--. 1 root root  0 Apr 12 19:54 file1
-rw-r--r--. 1 root root  4 Apr 14 17:12 file5
drwxr-xr-x. 2 root root 95 Apr 13 17:57 link_test
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Music
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Pictures
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Public
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Templates
drwxr-xr-x. 3 root root 71 Apr 12 19:53 test
-rw-r--r--. 1 root root  0 Apr 12 19:55 txt
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Videos
[root@localhost ~]# more result.txt
total 4
drwxr-xr-x. 2 root root  6 Apr  6 15:41 Desktop
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Documents
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Downloads
-rw-r--r--. 1 root root  0 Apr 12 19:54 file1
-rw-r--r--. 1 root root  4 Apr 14 17:12 file5
drwxr-xr-x. 2 root root 95 Apr 13 17:57 link_test
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Music
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Pictures
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Public
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Templates
drwxr-xr-x. 3 root root 71 Apr 12 19:53 test
-rw-r--r--. 1 root root  0 Apr 12 19:55 txt
drwxr-xr-x. 2 root root  6 Feb 25 09:30 Videos
​

了解内容:

1、了解匿名管道和命名管道的区别?

匿名管道由pipe函数创建并打开。命名管道由mkfifo函数创建,打开用open。FIFO(命名管道)与pipe(匿名管道)之间唯一的区别在他们创建与打开的方式不同。

2、如何创建命名管道?

在linux系统下,命令管道可由两种方式创建:

(1)mkfifo("fifoexample","rw")

(2)mknod fifoexample p

mkfifo是一个函数,mknod是一个系统调用

文件内容浏览命令

cat命令

cat命令用来查看文本文件的内容。

命令格式:cat [选项] 文件名列表(意味着可以打开多个文件,将文件内容连接在一起输出。)

参数:

-n,代行号显示内容
-b,blank,空行的意思

more命令和less命令

more命令和less命令都是用来查看文本文件的内容,并且可以分页显示内容。

命令格式:more/less [选项] 文件名

选项:

-数字,指定more命令每页显示的内容
例如:
    [root@localhost link_test]# cat data.txt |  more -4
    hhhhhhhhhhhhhhh
    bbbbbbbbbbbbbb
    cccccccccccc
    ddddddddd
​
+数字,从那行开始显示

交互方法:按enter键向下 逐行滚动,按空格键向下翻页,按b键向上翻页。more命令到文件结尾就自动退出,less命令需要输入q才可以退出。

head和tail命令

head:头部,查看文件头部指定行数,默认是10行。

tail:尾部,查看文件尾部指定行数,默认是10行。

选项:-num,指定查看的行数。

tail命令有一个很实用的用法:tail可以动态刷新的查看某些文件的内容。假设要查看一个日志文件,你在查看日志文件的时候,其他一些程序还在往日志文件中写内容。假设:14:00查看的文件,14:10还在往文件里写内容,普通查看,只能查看到14:00,看不到14:10。就要使用-f选项,动态去刷新文件内容,放在末尾

grep命令

命令格式:grep [选项] 检索的字符串 文件

功能:在指定的文件中查找并显示含有 指定字符串的行。

参数及选项:

-i,查找时忽略大小写
-v,反转查找,输出与查找条件不相匹配的行

注意:输出的结果都是呈整行展示

示例:

[root@localhost link_test]# grep 2022 data2.txt
20220319
20220326
202203261448
202203261448
202203261448
202203261448
# 匹配空行
[root@localhost link_test]# grep "^$" data.txt
​
# 匹配以3开始的行
[root@localhost link_test]# grep "^3" data.txt
3
33
# 匹配以0结尾的行
[root@localhost link_test]# grep "0$" data.txt
Z0Z0
Z0Z0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值