1. 链接文件

(1)软链接:

[root@rhcsa ~]# touch hello.txt
[root@rhcsa ~]# ln -s /root/hello.txt /tmp/hi.txt             //创建文件软链接
[root@rhcsa ~]# ll /tmp/hi.txt                    
lrwxrwxrwx. 1 root root 15 Jan 27 17:36 /tmp/hi.txt -> /root/hello.txt
[root@rhcsa ~]# mkdir test
[root@rhcsa ~]# ln -s /root/test/ /var/test/
[root@rhcsa ~]# ll /var/test/       //创建目录软链接
total 0
lrwxrwxrwx. 1 root root 11 Jan 27 17:48 test -> /root/test/

(2)硬链接:

[root@rhcsa ~]# ln /root/hello.txt  /root/hello-1.txt      //创建硬链接
[root@rhcsa ~]# rm -rf hello.txt     //源文件删除后,链接文件仍可以正常使用
[root@rhcsa ~]# ll /root/hello-1.txt 
-rw-r--r--. 1 root root 0 Jan 27 17:34 /root/hello-1.txt
2. 复制、删除、移动目录和文件

(1) cp

功能描述:复制(copy)文件或目录
语法:cp [选项]… 源文件或目录… 目标文件或目录
选项:
-r:递归复制整个目录树
-p:保持源文件的属性不变
-f:强制覆盖目标同名文件或目录
-i:需要覆盖文件或目录时进行提醒

(2)mv

 功能描述:移动(move)文件或目录—若如果目标位置与源位置相同,则相当于改名
 语法:mv [选项]... 源文件或目录... 目标文件或目录
 [root@Gming ~]# mv file file.bak      //将file改名为file.bak
 [root@Gming ~]# mv /tmp/vitest/ ./   //将/tmp/vitest/移动到当前目录

(3) rm

 功能描述:删除(remove)文件或目录
 语法:rm [选项] [文件或目录]
 选项:
 -r 删除目录以及目录下的所有内容(递归删除)
 -f 不提示,强制删除
 -I 删除前,提示是否删除
3. 查找目录和文件

(1) Which:

功能描述:查找linux命令文件并显示所在的位置----搜索范围由PATH环境变量指定
语法:which命令或程序名

[root@rhcsa tmp]# which cd
/usr/bin/cd
[root@rhcsa tmp]# which mkdir
/usr/bin/mkdir
[root@rhcsa tmp]#

(2) whereis

功能描述:该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只会用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
语法:whereis 命令
选项:
-b 只查找二进制文件
-m 只查找说明文件

[root@rhcsa tmp]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
[root@rhcsa tmp]# whereis -b bash
bash: /usr/bin/bash
[root@rhcsa tmp]# whereis -m bash
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz

(3)find

功能描述:用于查找文件或目录
语法:find【path】-option
选项:
-name 按文件名称查找
-size 按文件大小查找
-user 按文件属主查找 —用的不多
-type 按文件类型查找
常用查找条件:
 f:文件
 d:目录
 l:符号链接(软链接)
高级查找条件:
-perm 按权限进行查找
-ctime(-cmin) 按文件创建时间(天为单位)查找
-atime (-amin) 按访问时间查找
-mtime (-min) 修改时间查找
-maxdepth 限制find的递归层级
! 取反操作
-exec 查找后再执行操作

find /etc -name "resol*.conf"    # 查找/etc/下名字为resol开头以.conf结尾的文件
find / -type d -empty            # 检索用户主目录下所有的空目录
find /usr -type f ! -name '*.txt'      # 检索 /usr 下所有文件名不以 .txt 为后缀的文件。

按照时间相关
-mtime 2 :该文件 2 天前被修改过
-mtime -2:该文件 2 天以内被修改过
-mtime +2:该文件距离上次修改已经超过 2 天时间

find /usr -type f -mtime +50 -mtime -100    # 检索 /usr 下 50 到 100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5    # 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件

按照文件大小查找

find / -size +1G 检索文件大小高于 1 GB 的文件按照权限查找
find /usr -perm 644     # 搜索 /usr 目录下权限为 644(即 rw-r--r--)的文件

限制递归层级
find 命令默认是以递归的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。

find / -maxdepth 3      # 搜索时向下递归的层数最大为 3

逻辑组合: find 命令支持 “and” 和 “or” 两种逻辑运算

find /   -name *.log  -a -type l       #查找文件名有".log"并且类型为链接的文件
find /   -name *.log  -o -name "*.txt"      #查找文件名为".log"或".txt"的文件

执行自定义命令
-exec 命令 {} ;
find / -type f -exec grep -l root {} ;

 find   /etc -name “*” | xargs grep -nH “root”    # 查找/etc下 name所有 过滤出内容包含hello 的文件内容
4. 查看文件内容

(1) cat

功能描述:显示文件内容(文件内容全部显示出来)
cat [选项] [文件]
选项:
-b 显示行号,空白行不显示行号
-n 显示行号,包括空白行

[root@Gming ~]# cat -n passwd
[root@Gming ~]# cat -b passwd

(2) more

功能描述:全屏方式分页显示文件内容
语法:more [选项] 文件名…
(空格)或f 显示下一页
(enter)显示下一行
Q或Q 退出

[root@Gming ~]# more /var/log/messages

(3) less

功能描述:查看分页文件内容,空格(下一页)、方向键(上下回翻)、q键(推出查看)

[root@Gming ~]# less /var/log/messages 

(4) head

功能描述:查看文件的前几行,默认显示前10行内容
语法:head [选项] [文件名]
语法:
-c nk 显示文件前nkb的内容
-n 显示文件前n行的内容

[root@Gming ~]# head -c 2k /var/log/messages  //查看文件的前2kb内容
[root@Gming ~]# head -5 /var/log/messages   //查看文件前5行的内容

(5) tail

功能描述:查看文件的尾部内容
语法:tail [选项] [文件]
选项:
-n 显示文件的后n行
-f 动态显示文件内容
-c nk 显示文件末尾nkb的内容

5. 统计文件内容

wc:
功能描述:统计文件中的单词数量(word count)等信息
语法:wc [选项]… 目标文件…
选项:
-l 统计行数
-w 统计单词个数
-c 统计字节数

[root@Gming ~]# wc /etc/passwd
  25   50 1229 /etc/passwd         //依次显示文件的行数、单词数、字节数
[root@Gming ~]# wc -l < /etc/passwd
25                                //显示文件的行数
[root@Gming ~]# wc -w < /etc/passwd
50                                  //显示文件的单词数
[root@Gming ~]# wc -c < /etc/passwd
1229                                //显示文件的字节数
6. 检索和过滤文件内容

(1) grep

功能描述:在文件中查找并显示包含指定字符串的行
语法:grep [选项]… 查找条件 目标文件
常用命令选项:
-i 查找时忽略大小写
-v 反转查找,输出与查找条件不相符的行
-l 列出文件内容符合指定的样式的文件名称
-An 搜索时显示匹配到的那一行以及下n行
-Bn 搜索时显示匹配到的那一行以及上n行
-Cn 搜索时显示匹配到的那一行以及上下n行
查找条件设置:
要查找的字符串用双引号括起来
“^……”表示以……开头
“……KaTeX parse error: Expected group after '^' at position 11: ”表示以……结尾 “^̲”表示空行

[root@Gming ~]# grep root /etc/passwd
root: x:0:0:root:/root:/bin/bash       //在/etc/passwd文件中过滤出包含root的行
operator:x11:0:operator:/root:/sbin/nologin
[root@Gming ~]# grep --color root /etc/passwd  //对匹配度的关键字高亮显示
[root@Gming ~]# grep -v root /etc/passwd   //查找文件中不包含root的行
[root@Gming ~]# grep -v "^#" /etc/hosts   //查找非注释行(不是以“#”开头的行)

显示/etc/passwd文件中以“lp”开头那一行以及上下4行内容:
在这里插入图片描述

(2) cut

功能描述:命令用于显示每行从开头算起num1 到num2的文字
语法:cut [选项]
选项:
-b 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定
-n标志
-c 以字符为单位进行分割
-d 自定义分隔符,默认为制定符
-f 与-d一起使用,指定显示哪个区域
-n 取消分割多字节字符。仅和-b标志一起使用

打印/etc/passwd文件中每一行以“:”为分隔符的第一个区域

[root@Gming ~]# cut -d':' -f1 /etc/passwd

在过滤/etc/passwd文件的’/bin/bash’后以“:”为分隔符打印第1,6行内容

[root@Gming ~]# grep '/bin/bash' /etc/passwd | cut -d':' -f1,6
root:/root
redhat:/home/redhat

(3) sort

功能描述:用于将文本文件内容加以排序
语法:sort [选项] [文件]
选项:
-b 忽略每行前面开始处的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-m 将几个排序好的文件进行合并
-M 将前面的3个字母依照月份的缩写进行排序
-n 依照数值的大小排序
-r 以相反的顺序来排序
-u 以为这是唯一的(unique),输出结果是去掉重复值
-o<输出文件> 将排序后的结果存入指定的文件
-t<分隔字符> 指定分隔符
-k 与-t一起使用,定义排序数值区域

[root@Gming ~]# sort -t: -k3 -n /etc/passwd     //以“:”为分隔符,按照第3行顺序排序
[root@Gming ~]# sort -u /etc/passwd   //去掉连续重复的字符
[root@Gming ~]# sort -r /etc/passwd    //反向排序
7. 归档和压缩命令

(1) gzip命令、bzip2命令

.gz :gzip程序压缩的⽂件
*.bz2 :bzip2程序压缩的⽂件
*.tar :tar程序打包的数据,并没有经过压缩
*.tar.gz :tar程序打包的⽂件,其中经过gzip的压缩
*.tar.bz2:tar程序打包的⽂件,其中经过bzip2的压缩
⽤途:制作压缩⽂件、解开压缩⽂件
命令格式:
gzip [-9] ⽂件名…
bzip2 [-9] ⽂件名…
gzip -d .gz格式的压缩⽂件
bzip2 -d *.bz2格式的压缩⽂件
常用命令选项:
-9 表示高压缩比,多在创建压缩包时用
-d 用于解开已经压缩过的文件

(2)tar命令

用途:制作归档文件、释放归档文件
格式:tar [选项]… 归档文件名 源文件或目录
tar [选项]… 归档文件名 [-C 目标文件]
常用命令选项:
-c 创建.tar格式的包文件
-x 解开.tar格式的包文件
-v 输出详细信息
-f 表示使用归档文件
-p 打包时保留原始文件及目录的权限
-t 列表查看包内的文件
-C解包时指定释放的目标文件夹
-z 调用gzip程序进行压缩或解压
-j 调用bzip2程序进行压缩或解压
创建:
-czvf
-cjvf
解压:
-xzvf
-xjvf

8. 如何从linux 服务器上传/下载文件

(1)客户端是linux的操作系统 服务器-服务器之间传输
从服务器下载普通文件:
scp 用户名@目标IP地址:文件名 目录名
向服务器上传文件:
srp 要上传文件的全路径 用户名@目标IP地址:文件名
(2)客户端是windows的操作系统
从windows向linux上传:rz或者xftp工具
从linux下载文件:sz 文件路径或者xftp工具
scp ./aaa.sh root@192.168.88.100:/tmp 从普通用户复制文件到root用户的/tmp/目录
在这里插入图片描述
scp root@192.168.88.100:/tmp/bbb.sh ./ 复制root用户文件到普通用户的当前位置
在这里插入图片描述

9. vim 文档编辑

(1)vim工作模式

vim编辑器默认会进⼊普通模式,插⼊模式可以通过以下按键进⼊:
a 进⼊插⼊模式,后续输⼊的内容将插⼊⾄当前光标的后⾯
A 进⼊插⼊模式,后续输⼊的内容将插⼊⾄当前光标的断尾
i 进⼊插⼊模式,后续输⼊的内容将插⼊⾄当前光标的前⾯
I 进⼊插⼊模式,后续输⼊的内容将插⼊⾄当前光标的段⾸
o 进⼊插⼊模式并在当前⾏的后⾯创建新的空⽩⾏
O 进⼊插⼊模式并在当前⾏的前⾯创建新的空⽩⾏

(2)vim光标操作:

h 光标向左移动⼀位
j 光标向下移动⼀⾏(以回⻋为换⾏符)
k 光标向上移动⼀位
I 光标向右移动⼀位
gg 移动光标⾄⽂件⾸⾏
G 移动光标⾄⽂件末尾
nG 移动光标⾄第n⾏(n为数字,如n为10时表示第10⾏)
^ 光标移⾄当前⾏的⾸字符
$ 光标移⾄当前⾏的尾字符
fx 光标移⾄当前⾏的下⼀个x字符处(任意字符)
Fx 光标移⾄当前⾏的上⼀个x字符处
w 光标向右移动⼀个单词
nw 光标向右移动n个单词(n为数字)
b 光标向左移动⼀个单词
nb 光标向左移动n个单词(n为数组)

(3) vim编辑文档

dd 删除⼀⾏
ndd 删除n⾏(n为数字)
d$ 删除光标⾄⾏尾的内容
J 删除换⾏符,可以将两⾏合并为⼀⾏
u 撤销上⼀步操作,可以多次使⽤uu表示撤销两步操作
rx 将光标当前字符替换为x (x为任何键盘单个输⼊)
yy 复制当前⾏
nyy 复制n⾏内容
p 粘贴⾄当前⾏之后
P 粘贴⾄当前⾏之前

(4)vim查找与替换

当⽂档很⻓时,我们可以通过查找快速定位要找的内容,在vim中通过“/” 关键词实现⾃上往下的查找功能:
如 /host 在当前⽂档的光标处向下查找host并显示,如果⼀个⽂档中有多个host,可以通过快捷键n 跳转⾄下⼀个匹配的关键词处, 快捷键 N 将跳转⾄上⼀个匹配的关键词处。
“?” 关键词实现了⾃下往上的查找功能:
如 ?host 从当前⽂档的光标处向上查找host并显示,此时快捷键n表示查看上⼀匹配, N 表示查找下⼀个匹配。
例如:
[root@localhost ~]# cp /etc/passwd /root
[root@localhost ~]# vim /root/passwd
通过上⾯两条命令复制⼀份临时测试⽂档并编辑,我们可以对该⽂件实现多种替换功能
: s/root/admin/ 将光标当前⾏中第⼀个出现的root替换为admin,没有则不替换
: s/root/admin/g 将光标当前⾏中所有的root替换为admin
:3,5 s/sbin/bin/g 将第三⾏⾄第五⾏之间的所有sbin替换为bin
:% s/nologin/fault/g 将所有⾏的nologin都替换为fault

(5)vim保存并退出

:q! 不保存并退出(强制退出)
:wq 保存并退出
:x 保存并退出
:w 保存(不退出)
:w b.txt 另存为 b.txt

(6)vim扩展小知识

 显示行号::set number 或者简写为 :set nu
 忽略大小写::set ignorecase
 多窗口编辑
水平分割窗口 :split
垂直分割窗口 :vsplit
Ctrl+w+h:快捷键表示跳转⾄左边⼀个窗⼝
Ctrl+w+I: 快捷键表示跳转⾄右边⼀个窗⼝
Ctrl+w+j: 快捷键表示跳转⾄上⾯⼀个窗⼝
Ctrl+w+k:快捷键表示跳转⾄下⾯⼀个窗⼝
在命令模式下输⼊ :close 可以关闭当前窗⼝
在命令模式下输⼊ :split second.txt 此命令会分割窗⼝并打开新的⽂件