Linux命令练习

文章目录


由于我在学习Linux命令的时候一直想找篇既有命令表格又有执行截图的文章找不到,无奈只能自己写了,参照B站视频P22到P43 点击查看视频

Linux命令语法

命令空格参数(可写不写)空格文件,文件夹(可写可不写)
ls列出文件夹中所有内容/opt 根目录下的opt文件夹
ls-a all显示出所有文件以及隐藏文件夹/opt
ls-a如果不写则输出一个点,当前文件夹的内容

在这里插入图片描述

在这里插入图片描述

命令作用
whoami当前用户名
hostname主机名
pwd打印当前文件绝对路径

命令运行截图

在这里插入图片描述
Linux系统常用文件夹的作用
在这里插入图片描述

核心命令ls和cd

cd

几个特殊的目录

符号含义
.当前的工作目录
. .上一级目录
-上一次的工作目录
~当前系统登录

. 当前的工作目录
. . 上一级的工作目录
- 上一次的工作目录
- - 当前系统登录的用户家目录

ls命令

list 列出文件内容
ls语法
ls可选参数 可选文件对象
-a all的意思,显示出所有文件内容,以及隐藏的
-l 详细的输出文件夹中内容
-h 以人类可阅读的格式,输出文件大小
- -full- -time 以完整时间格式输出
-t 根据最后修改的时间排序文件
-F 在不同的文件结尾,输出不同的特殊符号,
 以/结尾的就是文件夹
 以*结尾的就是可执行文件
 以@结尾的文件就是软链接,快捷方式
 普通文件类型,结尾什么都没有
-d 显示文件夹本身内容,不输出其中的内容
-r reverse 逆转排序
-S 根据文件大小排序默认从大到小
-i 显示出文件的inode信息(文件的身份证号,存储了文件的元信息,文件的大小,位置,权限等等)

注意,以下指令有部分因为拼接后运行出来更加直观,所以很多都有多个参数,请自行辨别

ls,ls -a和ls -l的运行截图

在这里插入图片描述

ls -lh的运行截图

因为-h参数必须是显示详细文件内容的界面才能使用,所以使用组合参数-lh

在这里插入图片描述

ls -lh --full-time

在这里插入图片描述

ls -lh --full-time -t

在这里插入图片描述

ls -lF

在这里插入图片描述

ls -d

在这里插入图片描述

ls -li

在这里插入图片描述

mkdir

mkdir 文件名 创建文件夹
mkdir {文件1,文件2,文件3} 创建多个文件夹
mkdir -p 一连串的文件名比如./test/class/student 强行在指定目录下创建文件夹,如果路径不存在则自动创建路径所需文件夹,官方用于递归创建文件夹
mkdir testcui{1…100} 创建testcui1到testcui100的文件夹

touch

1.创建普通文件,在linux下文件的后缀名仅仅是一个名字而已,通过touch创建的都是普通文件
2.修改文件时间为当前时间
 -c --no-create 不创建任何文件
 -t STAMP 使用[[CC]YY]MMDDhhmm[.ss]格式代替当前的时间
 -r --reference=文件 使用指定文件的时间属性代替当前文件时间

在这里插入图片描述

CP命令

用法: c

cp选项]… [-T] 源文件 目标文件
或: cp [选项]… 源文件… 目录
或: cp [选项]… -t 目录 源文件…
将源文件复制至目标文件,或将多个源文件复制至目标目录。
-r 递归式复制目录,即复制目录下的所有层级的子目录及文件-p复制的时候保持属性不变
-d 复制的时候保持软连接(快捷方式)
-a 等于-pdr
-p 等于–preserve=模式,所有权,时间戳,复制文件时保持源文件的权限、时间属性
-i, – interactive 覆盖前询问提示;

cp 需要拷贝的文件名 新的文件名

在这里插入图片描述

复制文件放入其他文件夹中但是不改名

在这里插入图片描述

复制多个文件到其他文件夹

只需要将文件名用空格隔开即可

cp test1 test2 …/test98

在这里插入图片描述

复制整个文件夹

想要复制整个文件夹必须加上-r参数
cp -r test100 test101

在这里插入图片描述

拷贝之后的文件和原文件属性相同

cp -p test1 testplusplus

在这里插入图片描述

拷贝软链接

拷贝软链接时候,保持连接属性不变 -d参数
CP -d link_luffy link_ luffy3

拷贝时发生覆盖

用 -i参数,会在顾盖前进行提示,输入y表示确认
在这里插入图片描述

MV命令

在这里插入图片描述

MV案例

在这里插入图片描述

RM

rm命令就是remove的含义,删除一个或者多 个文件,这是Linux系统重要命令

-f,–force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 在删除超过三个文件或者递归删除前要求确认。
-d, --dir 删除空目录
-r,-R,–recursive 递归删除目录及其内容
-V,–verbose 详细显示进行的步骤
– help 显示此帮助信息并退出
–version 显示版本信息并退出

案例

1.删除普通文件,就是默认添加了-i参数,询问是否删除
rm chaoge.txt ,删除前会提问,是否要删除

2.一次性删除多个文件
rm chaoge. txt.2 chaoge. txt.3 #删除多个文件,写入多个名字,空格分割就好

3.删除文件夹,必须给rm添加-r参数才行,默认rm只能删除文件类型
rm -r mjj #删除mjj文件夹, 以及里面的内容

4.-d参数,只能用于删除空文件夹
rm -d ilovelinux/

5.强制删除文件,且不提示
rm -f mjj* #强制删除以mj j开头的文件,文件夹无法删除

6.强制删除所有的文件和文件夹
rm -rf -/*
7. -v参数,显示删除的过程
[root@luffycity opt]# rm -rfv ./* #强制性删除当前目录所有内容,且显示过程

帮助文档

man+命令

在这里插入图片描述
在这里插入图片描述

命令 --help

在这里插入图片描述

Linux开关机命令

shutdown 重启

语法: shutdown -r参数 -r -reboot Reboot the machine

shutdown -r 10 # 十分钟后重启
shutdown -r 0 #立即重启
shutdown -r now # 立即重启


reboot 立即重启

关机

语法: shutdown -h --halt 停止的含义

shutdown -h 10 # 十分钟之后关机
shutdown -h 0 # 立即关机
shutdown -h now # 立即关机

Linux命令行常用快捷键

ctrl + c cancel取消当前操作
ctrl + l 清空屏幕内容   
ctrl + d 退出当前用户
ctrl + a 光标移动到行首
ctrl + e 移动到行尾
ctrl + u 删除光标到行首的内容

Linux环境变量

echo $PATH 显示lInux系统环境变量所在文件夹

在这里插入图片描述

vim

安装vim用 yum install vim -y # 通过yum软件管理工具,安装命令vim,且默认是yes
当vim打开不存在的文件的时候,默认会创建文件
#语法是
vim 文件名  #   打开文件
2.输入字母i,进入编辑模式,代表insert输入字母o,在光标下一行开始编辑
3.写完代码之后,按下esc,退出编辑模式
4.此时输入冒号,进入底线命令模式,然后输入
: wq!强制写入文件内容且退出vim, write quit !强制性的:q!不保存直接退出
5.注意输入的冒号得是英文输入法的状态


vim提供的上下左右

h 向左
j 向下
k 向上
l 向右

移动光标的快捷键

w 移动到下一个单词
b 移动到上一个单词

数字0移动到行首 
字符$移动到行尾

按下g 移动到文章开头
按下G 移动到文章结尾

按下 H 移动到屏幕的开头
按下L 移动到屏幕的结尾
按下 M 移动到屏幕的中间

命令模式的查找

向下查找       / 你要找的内容 按n寻找下一个单词

向上查找       ? 你要找的内容,按n寻找下一个单词


命令行模式下的复制,黏贴和删除

输入yy 复制光标所在行

输入 3yy复制三行内容

输入p 打印粘贴的内容	
输入dd 删除光标当前行
输入D 删除光标当前位置到行尾的内容

输入x 删除光标当前字符,包括当前字符,向后删除

输入X 删除光标前的字符不包括当前字符,向前删除

输入u 取消上一步的动作

快捷操作

输入大写C 删除光标所在位置,到行尾的内容,且进入编辑模式
 输入o  在当前光标的下一行开始编辑
 输入大写的O 在光标的上一行开始编辑
输入A 快速进入行尾,且进入编辑模式
输入ZZ 快速保存退出

批量快捷操作

快捷删除:




1.输入ctrl +v进入可视块模式
2.用上下左右命令选择,选择你想操作的块,
3.选中块后,输入d 删除块内容

快捷插入多行

1.选中块后,输入大写的I,进行写代码,
2.按下ESC两次,会自动生成多行代码

重定向符号

符号解释
重定向的意思是,将数据传到其他地方
>输出覆盖重定向
>>输出追加重定向
<或<<标准输入重定向

案例

1.读取文件内容,且写入到另一个文件中,覆盖写入文件内容

cat douyin.txt > kuaishou.txt

2.追加写入文件内容
cat douyin.txt >> kuaishou.txt 

3. 重定向写入符
cat douyin.txt #把文件中的数据发送给cat去读取

4. 将文本内容拆分成多行
xargs命令
xargs -n 4 < shuzi.txt # 将内容以每行四个的方式显示

5. 重定向追加写入符 <<  
可以结合cat命令使用
cat >> gushi.txt << EOF

在这里插入图片描述

Cat命令

功能说明
查看文件内容cat file.txt
多个文件合并cat file.txt file2.txt >file3.txt
非交互式编辑或追加内容cat >>file.txt << EOF
欢迎来到路飞学城
EOF
清空文件内容cat/dev/null > file.txt [/dev/null是linux系统的黑洞文件
用法: cat[选项][文件]...[文件]或标准输入组合输出到标准输出。

清空文件内容,慎用
>文件名

一A,	--show-all 					等价于-vET
-b,		--number-nonblank 				对非空输出行编号
-e									等价于-vE
-E--show-ends					在每行结束处显示$
-n,		--number						对输出的所有行编号
-s,		--squeeze-blank				不输出多行空行
-t									与-vT等价
-T,		--show-tabs						将跳格字符显示为^I
-u 									(被忽略)
-v,		--show-nonprinting			使用^M-引用,除了LFD 和 TAB之外--help显示此帮助信息并退出
--version							输出版本信息并退出

如果[文件]缺省,或者[文件]-,则读取标准输入。

案例

1.查看文本内容,以及功能参数

cat gushi.txt
在这里插入图片描述

2.对非空行进行编号

cat -b gushi.txt

在这里插入图片描述
在这里插入图片描述

3.对所有行显示行号

cat -n gushi.txt
在这里插入图片描述

4.对每行结尾处加上$符号

cat -n -E gushi.txt
在这里插入图片描述

5. 不输出多行空行

cat -s gushi.txt
\前后对比可以明显看出只输出一个空行
在这里插入图片描述

6.合并文件内荣写到新的文件中

cat douyin.txt gush在这里插入图片描述
i.txt > ./抖音和古诗的文本内容.txt
下图为两个文件的内容
在这里插入图片描述
下图为合并过程及其结果

在这里插入图片描述
在这里插入图片描述

7.非交互式写入

cat >> 路飞.txt << EOF
在这里插入图片描述

8.cat直接清空文件的方法

1.直接清空文件,但是留下了一个空行
echo > gushi.txt

2. 直接清空,不留下任何东西
  >  gushi.txt

3.利用cat读取一个黑洞文件,然后清空其他文本
cat  /dev/null > douyin2.txt

TAC命令

与cat命令查看文件结果相反

管道符

管道符语法

对字符串命令进行过滤在这里插入图片描述

grep命令

过滤字符串命令

more 命令和less命令

分屏查看文本内容的命令

more 文件名 #分屏显示文件内容

enter回车	是下一行
空格			是向下滚动一个屏大小
=			显示当前行号
q 			是退出more

head命令和tail命令

head

head 命令用于查看文件开头的n行

语法
head -5 文件名
head 文件名 # head默认显示10-c 参数,指定字符数量,显示字符数
head -c 5 文件名 # 输出整个文件中的五个字符

tail

tail默认从后向前看10行,也可以指定行数

在这里插入图片描述

语法
tail 文件名 # 显示默认后10行
tail -2 # 显示后两行
-f 实时刷新文件内容变化


在这里插入图片描述

wc命令

统计文件的行

  • vim(set nu)
  • cat -n
  • wc -l
1.wc命令,统计文件内有多少行,有一个回车,是一个空行
[root@localhost opt]# wc -l doupo.txt 
32 doupo.txt
[root@localhost opt]# ll


2. wc -w 统计文件内的单词数

[root@localhost opt]# wc -w hehe.txt 
9 hehe.txt
[root@localhost opt]# 
[root@localhost opt]# 
[root@localhost opt]# vim hehe.txt 
[root@localhost opt]# 
[root@localhost opt]# cat  hehe.txt 
yu chao    王秉诚  王仁刚    赵阳阳 
yejingyang
chenliangliang

李 文杰   刘永飞 张鑫  
[root@localhost opt]# 
[root@localhost opt]# wc -w hehe.txt 
11 hehe.txt



TR命令

使用语法及参数说明

1、使用语法

用法:tr [OPTION]… SET1 [SET2]
用法:tr [参数选项] 字符集1 [字符集2]
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。

2、参数说明

-c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d, --delete:删除指令字符
-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
-t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
–help:显示程序用法信息
–version:显示程序本身的版本信息

3、字符集合

\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
\ 反斜杠
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X 水平制表符
CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
[CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
[CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
[:alnum:] :所有字母字符与数字
[:alpha:] :所有字母字符
[:blank:] :所有水平空格
[:cntrl:] :所有控制字符
[:digit:] :所有数字
[:graph:] :所有可打印的字符(不包含空格符)
[:lower:] :所有小写字母
[:print:] :所有可打印的字符(包含空格符)
[:punct:] :所有标点字符
[:space:] :所有水平与垂直空格符
[:upper:] :所有大写字母
[:xdigit:] :所有 16 进位制的数字
[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

实例

1.将文件file中出现的”abc”替换为”xyz”
 cat file | tr “abc” “xyz” > new_file

【注意】这里,凡是在file中出现的”a”字母,都替换成”x”字母,”b”字母替换为”y”字母,”c”字母替换为”z”字母。而不是将字符串”abc”替换为字符串”xyz”。

2、使用tr命令“统一”字母大小写(小写 –> 大写)
 cat file | tr [a-z] [A-Z] > new_file
(大写 –> 小写) cat file | tr [A-Z] [a-z] > new_file

3、把文件中的数字0-9替换为a-j
 cat file | tr [0-9] [a-j] > new_file

4、删除文件file中出现的”Snail”字符
 cat file | tr -d “Snail> new_file

【注意】这里,凡是在file文件中出现的’S,’n’,’a’,’i’,’l’字符都会被删除!而不是紧紧删除出现的”Snail”字符串。

5、删除文件file中出现的换行’\n’、制表’\t’字符
 cat file | tr -d “\n\t” > new_file

不可见字符都得用转义字符来表示的,这个都是统一的。

6、删除“连续着的”重复字母,只保留第一个
 cat file | tr -s [a-zA-Z] > new_file

7、删除空行
 cat file | tr -s “\n” > new_file

8、删除Windows文件“造成”的’^M’字符
cat file | tr -d “\r” > new_file
或者 cat file | tr -s “\r” “\n” > new_file

【注意】这里-s后面是两个参数”\r”和”\n”,用后者替换前者

9、用空格符\040替换制表符\011
 cat file | tr -s “\011” “\040> new_file

10、把路径变量中的冒号”:”,替换成换行符”\n”
 echo $PATH | tr -s “:” “\n”

Find命令

此章内容转自https://blog.csdn.net/zhangshaohuas/article/details/109009600

1.find命令作用

find命令用来在指定目录下查找文件。

2. find命令选项基本格式

find 目录 -选项 动作[-print -exec -ok …]

3. 常用选项:

	-a:and 必须满足两个条件才显示
	-o:or 只要满足一个条件就显示
	-name:按照文件名查找文件
	-iname:按照文件名查找文件(忽略大小写)
	-type:根据文件类型进行搜索
	-perm:按照文件权限来查找文件
	-user  按照文件属主来查找文件。
	-group  按照文件所属的组来查找文件。
	-fprint 文件名:将匹配的文件输出到文件。
	-newer file1 ! newer file2  查找更改时间比文件file1新但比文件file2旧的文件

4. 常用动作:

-print  默认动作,将匹配的文件输出到标准输出
-exec   对匹配的文件执行该参数所给出的命令。相应命令的形式为 'command' { } \;,注意{ }和\;之间的空格。
-ok     和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-delete 将匹配到的文件删除

5. 根据文件名进行匹配

5.1 列出当前目录及子目录下所有文件和文件夹

[root@host-134 ~]# find .
.
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./anaconda-ks.cfg
./.bash_history
./.mysql_history
./zuoye
./zuoye/lnmp.sh
./zuoye/system.sh
./nginx-1.18.0
./nginx-1.18.0/auto
./nginx-1.18.0/auto/cc
./nginx-1.18.0/auto/cc/acc
./nginx-1.18.0/auto/cc/bcc

5.2 在/home目录下查找以.txt结尾的文件名

find /home/ -name "*.txt" 

5.3 同上,但忽略大小写

find /home -iname "*.txt"

5.4 查找 /home/ 下所有以.txt或.pdf结尾的文件

 find /home/ -name "*.txt" -o -name "*.pdf"

5.5 查找 /home/ 下所有以a开头和以.txt结尾的文件

 find /home/ -name "*.txt" -a -name "a*"

5.6 搜索/home目录下txt结尾的文件,并将输出到指定文件中(re.txt)

[root@localhost home]# find /home/ -type f -name "*.txt" -fprint /tmp/re.txt 
[root@localhost home]# cat /tmp/re.txt
/home/a.txt
/home/b.txt

6. 根据文件类型进行搜索

type 类型参数



类型参数列
    f 普通文件
    l 符号连接(软连接)
    d 目录
    b 块设备
    s 套接字

6.1

[root@host-136 ~]# find /home/ -type f
/home/frank/.bash_logout
/home/frank/.bash_profile
/home/frank/.bashrc

6.2

[root@host-136 ~]# find /usr/bin/ -type l
/usr/bin/bashbug
/usr/bin/lastb
/usr/bin/sh
/usr/bin/geqn
/usr/bin/ex
/usr/bin/lz4cat
/usr/bin/gneqn
/usr/bin/gnroff

6.3

[root@host-136 ~]#  find /usr/local/ -type d
/usr/local/
/usr/local/bin
/usr/local/etc
/usr/local/games
/usr/local/include
/usr/local/lib
/usr/local/lib64
/usr/local/libexec
/usr/local/sbin

6.4

[root@host-134 ~]# find /dev/ -type b
/dev/dm-1
/dev/dm-0
/dev/sda2
/dev/sda1
/dev/sda
/dev/sr0

6.6

[root@localhost home]# find /var/lib/ -type s
/var/lib/mysql/mysql.sock

7. 基于目录深度搜索

7.1 向下最大深度限制为3

[root@host-136 ~]# find /usr/local/ -maxdepth 3 -type d
/usr/local/
/usr/local/bin
/usr/local/etc
/usr/local/games
/usr/local/include
/usr/local/lib
/usr/local/lib64
/usr/local/libexec
/usr/local/sbin
/usr/local/share
/usr/local/share/applications
/usr/local/share/info
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/man/man1x

7.2 搜索出深度距离当前目录至少2个子目录的所有文件

[root@host-136 ~]# find /usr/local/ -mindepth 2 -type f
/usr/local/sbin/mail.py

8. 根据文件时间戳进行搜索

8.1 UNIX/Linux文件系统每个文件都有三种时间戳:

访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

8.2 stat 命令查看:

[root@host-136 ~]# stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 950       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 33818061    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2021-01-06 09:17:36.122732027 +0800
Modify: 2021-01-06 09:17:36.114732083 +0800
Change: 2021-01-06 09:17:36.115732076 +0800
 Birth: -

8.3 搜索最近七天内被访问过的所有文件

[root@host-136 ~]# find /etc/ -type f -atime -7
/etc/fstab
/etc/crypttab
/etc/resolv.conf
/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
/etc/pki/ca-trust/ca-legacy.conf
/etc/pki/ca-trust/extracted/java/cacerts
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem
/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem

8.4 搜索超过七天内(7天外)被访问过的所有文件

[root@host-136 ~]# find /etc -type f -atime +7
/etc/sasl2/smtpd.conf
/etc/ethertypes
/etc/makedumpfile.conf.sample
/etc/postfix/access
/etc/postfix/canonical
/etc/postfix/generic
/etc/postfix/header_checks
/etc/postfix/relocated
/etc/postfix/transport
/etc/postfix/virtual

9. 根据文件大小进行匹配

用法

find . -type f  -size 文件大小单元
1
文件大小单元:

   b —— 块(512字节)
    c —— 字节
    w —— 字(2字节)
    k —— 千字节
    M —— 兆字节
    G —— 吉字节

搜索大于10KB的文件

[root@host-136 ~]# find /etc/ -type f -size +10k
/etc/ssh/moduli
/etc/postfix/access
/etc/postfix/canonical
/etc/postfix/header_checks
/etc/postfix/main.cf
/etc/postfix/transport
/etc/postfix/virtual

搜索小于10KB的文件

[root@host-136 ~]# find /etc/ -type f -size -10k
/etc/man_db.conf
/etc/sudo-ldap.conf
/etc/sudo.conf
/etc/sudoers
/etc/e2fsck.conf
/etc/mke2fs.conf
/etc/vconsole.conf
/etc/locale.conf

搜索等于10KB的文件

[root@host-136 ~]# find /etc/ -type f -size 10k
/etc/dbus-1/system.d/org.freedesktop.systemd1.conf
/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf
/etc/selinux/targeted/active/modules/100/accountsd/hll
/etc/selinux/targeted/active/modules/100/acct/hll
/etc/selinux/targeted/active/modules/100/aiccu/hll
/etc/selinux/targeted/active/modules/100/alsa/hll
/etc/selinux/targeted/active/modules/100/arpwatch/hll

搜索大于10G的日志文件,并删除

[root@host-136 ~]# find /var/log -type f -name "*.log" -size +10G -delete

10. 根据文件权限/所有权进行匹配

指定目录下搜索出权限为644的文件

[root@host-136 ~]# find / -type f -perm 644
/usr/libexec/sudo/libsudo_util.so.0.0.0
/usr/libexec/sudo/sudo_noexec.so
/usr/libexec/sudo/sudoers.so
/usr/libexec/sudo/system_group.so

找出指定目录下权限不是644的txt文件

[root@host-136 ~]# find / -type f -name "*.txt" ! -perm 644
/usr/lib/firmware/ivtv-firmware-license-end-user.txt
/usr/lib/firmware/ivtv-firmware-license-oemihvisv.txt
/usr/share/licenses/shadow-utils-4.6/gpl-2.0.txt
/usr/share/licenses/shadow-utils-4.6/shadow-bsd.txt

找出/home目录用户frank拥有的所有文件

[root@host-136 ~]# find /home/ -type f -user frank
/home/frank/.bash_logout
/home/frank/.bash_profile
/home/frank/.bashrc

找出/home目录用户组frank拥有的所有文件

[root@host-136 ~]# find /home/ -type f -group frank
/home/frank/.bash_logout
/home/frank/.bash_profile
/home/frank/.bashrc

11. 借助-exec选项与其他命令结合使用

找出/tmp目录下所有root的文件,并把所有权更改为用户frank

find /tmp/ -type f -user root -exec chown frank {} \;
使用占位符{}来表示find到的文件名

找出家目录下所有的.sh文件并删除

[root@localhost home]# find $HOME -name "*.sh" -ok rm {} \;
< rm ... /root/install_lnmp.sh > ? y
-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。

查找/home目录下所有.txt文件并把他们拼接到all.txt文件中

find /home/ -type f -name "*.txt" -exec cat {} \;>all.txt

查找/home目录下所有.txt文件并把他们复制到/opt/backup文件中

find /home/ -type f -name "*.txt" -exec cp {} /opt/backup/ \;

在/var/log目录中查找更改时间在5日以前的文件并删除它们:

find /var/log -type f -mtime +5 -exec rm {} \;

xargs命令

xargs又称管道命令,构造参数等。

是给命令传递参数的一个过滤器,也

是组合多个命令的一个工具它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。

简单的说就是把其他命令的给它的数据,传递给它后面的命令作为参数

-d 	为输入指定一个定制的分割符,默认分隔符是空格-i用代替传递的数据
-I 	string 用string来代替传递的数据-n[数字]设置每次传递几行数据-n选项限制单个命令行的参数个数
-t	显示执行详情
-p	交互模式
-Pn 允许的最大线程数量为n
-s[大小]设置传递参数的最大字节数(小于131072字节)-x大于-S设置的最大长度结束xargs命令执行
-0--null项用null分隔,而不是空白,禁用引号和反斜杠处理

FIle命令

通过file指令,我们得以辨识该文件的类型。
在这里插入图片描述

显示文件类型

file install.log
install.log: UTF-8 Unicode text

file -b install.log <== 不显示文件名称
UTF-8 Unicode text

file -i install.log <== 显示MIME类别。
install.log: text/plain; charset=utf-8

显示符号链接的文件类型

ls -l /var/mail
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

file /var/mail
/var/mail: symbolic link to `spool/mail’

tar命令

语法:tar(选项) (参数)

-A, --catenate, --concatenate
	新增文件到已存在的存档
-c,--create
	建立新的存档
-C, --directory=DIR
	将 tar 的工作目录从当前目录改为指定目录。该选项对顺序敏感,即影响其后的所有选项
-d, --diff, --compare
	对比档案与文件系统的差异
--delete
	从档案中删除制定的文件
-f, --file=ARCHIVE
	指定存档文件
-j, --bzip2
	通过 bzip2 命令压缩或解压缩档案
-k, --keep-old-files
	还原档案时,保留当前目录下的原有文件不被覆盖 
-l, --check-links
	如果不是所有链接都被转储,则打印一条消息
-m, --touch
	还原文件时,不变更文件的更改时间
-N, --newer, --after-date=DATE
	只将较指定日期更新的文件保存到档案中
-O, --to-stdout
	将提取的文件名和目录名打印到标准输出
-p, --preserve-permissions, --same-permissions
	提取文件时保留文件原来的权限
-P, --absolute-names
	创建存档时不移除文件名称前的 /-r, --append
	追加文件到档案的末尾
-t, --list
	列出档案的内容
-u, --update
	添加比档案中文件更新的文件到档案中
-v, --verbose
	显示指令执行过程
-W, --verify
	向档案写入文件后尝试验证
-x, --extract, --get
	从档案提取文件  
-z, --gzip, --gunzip, --ungzip
	通过 gzip 命令压缩或解压档案
-Z, --compress, --uncompress
	通过 compress 指令处理备份文件
--exclude=PATTERN
	排除符合指定模式的文件
-?, --help
	显示短选项的概要信息并退出
--usage
	显示可用选项列表并退出
--version
	显示版本和版权信息并退出


样例

常用示例
打包
(1)将目录 /home/stud/wang 打包成 lvlv.tgz,同时使用 gzip 进行压缩。
tar –czvf lvlv.tgz /home/stud/wang

(2)将目录 /home/stud/wang 打包成 lvlv.tbz2,同时使用 bzip2 进行压缩。
tar –cjvf lvlv.tgz2 /home/stud/wang

(3)将指定目录下的目录或文件进行打包。
tar –czvf wang.tar.gz -C /home/stud/ wang

解包
(1)将档案 lvlv.tgz 还原为原目录,同时使用 gzip 进行解压缩。
tar -xzvf lvlv.tgz
(2)将档案 lvlv.tbz2 还原为原目录,同时使用 bzip2 进行解压缩。
tar -xjvf lvlv.tbz2
(3)将 lvlv.tgz 解包到指定目录,同时使用 gzip 进行解压缩。
tar -xzvf lvlv.tgz -C DIR
查看
(1)只查看档案的文件列表,不进行解包。
tar -tzvf wang.tar.gz

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值