我是靠谱客的博主 坚强鸭子,最近开发中收集的这篇文章主要介绍RHCSA之路,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第四天

文件查找4种方式

whereis 查询范围通过系统环境变量路径搜索文件$PATH,所有的文件

[root@kongd ~]# whereis ls 
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz 
[root@kongd ~]# whereis pwd 
pwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz

which 查询范围通过系统环境变量路径搜索文件$PATH,找的是可执行文件(查找命令文件)

[root@kongd ~]# which locate 
/usr/bin/locate 
[root@kongd ~]# which whereis 
/usr/bin/whereis

locate 全局搜索,但是需要在搜素前将系统文件导入数据库updatedb;查找速度快

[root@kongd ~]# locate whereis 
/usr/bin/whereis 
/usr/share/bash-completion/completions/whereis 
/usr/share/man/man1/whereis.1.gz

*find 全局搜索文件。

参数
作用
-name
匹配名称
-perm 644
匹配权限( mode 为完全匹配, -mode 为包含即可)
-user
匹配用户
-group
匹配所有组
-mtime -n +n
匹配修改内容的时间( -4 指小于等于 4 天内的文件名; +4, 大于等于 5 天前的文件
名; 4 指前 4~5 那一天的文件)
-atime -n +n
匹配访问文件的时间
-ctime -n +n
匹配修改文件权限的时间
-nouser
匹配无所有者的文件
-nogroup
匹配无所有组的文件
-newer f1 !f2
匹配比文件 f1 新但比 f2 旧的文件
-type
b/d/c/p/l/f
匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接
文件、文本文件)
-size
匹配文件的大小( +50KB 为查找超过 50KB 的文件,而 -50KB 为查找小于 50KB 的文件)
prune
忽略某个目录
-exec ……
{};
后面可跟用于进一步处理搜索结果的命令 

注意事项:

find 查找文件的目录 -path 需要排除的目录 -prune -o -name 需要查询的内容

1)-prune 必须和 -path,-o 一起使用

2)-prune -o 的顺序不 能调换

3)-name等必须放在-prune -o后面才能使用

eg: find . -path ./tmp -prune -o -name "*.txt"

1.按照文件名搜索 

[root@localhost ~]# find 搜索路径 [选项] 搜索内容 
选项:
-name: 按照文件名搜索 
-iname: 按照文件名搜索,不区分文件名大小写 
-inum: 按照 inode 号搜索
2.按照文件大小搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 
选项:
-size [+|-]大小: 按照指定大小搜索文件 这里的“+”的意思是搜索比指定大小还要大的文件, “-”的意思是搜索比指定大小还要小的文 件
3.按照修改时间搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 
选项:
-atime [+|-]时间: 按照文件访问时间搜索 
-mtime [+|-]时间: 按照文件数据修改时间搜索 
-ctime [+|-]时间: 按照文件状态修改时间搜索
时间查找参数:
-atime -n : n*24 小时内存取过的的文件列出来
-ctime -n : n*24 小时内改变、新增的文件或者目录列出来
-mtime -n : n*24 小时内修改过的文件或者目录列出来
-newer fifile :把比 fifile 还要新的文件列出来
4. 按照权限搜索
命令格式。
[root@localhost ~] # find 搜索路径 [ 选项 ] 搜索内容
选项:
-perm 权限模式: 查找文件权限刚好等于 权限模式 的文件
-perm - 权限模式: 查找文件权限全部包含 权限模式 的文件
-perm + 权限模式: 查找文件权限包含 权限模式 的任意一个权限的文件
5.按照所有者和所属组搜索
[root@localhost ~] # find 搜索路径 [ 选项 ] 搜索内容
选项:
-uid 用户 ID : 按照用户 ID 查找所有者是指定 ID 的文件
-gid ID : 按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名: 按照用户名查找所有者是指定用户的文件
-group 组名: 按照组名查找所属组是指定用户组的文件
-nouser : 查找没有所有者的文件
6.按照文件类型搜索
[root@localhost ~] # find 搜索路径 [ 选项 ] 搜索内容
选项:
-type d : 查找目录
-type f : 查找普通文件
-type l : 查找软链接文件
7.逻辑运算符
[root@localhost ~] # find 搜索路径 [ 选项 ] 搜索内容
选项:
-a and 逻辑与 1
-o or 逻辑或
-not not 逻辑非
-exec 和 xargs 的区别
-exec
1.参数是一个一个传递的,传递一个参数执行一次rm
2.文件名有空格等特殊字符也能处理
xargs
1.一次将参数传给命令,可以使用-n控制参数个数
2.处理特殊文件名需要采用如下方式:
fifind . -name "*.txt" print0 |xargs -0 rm {}
-xargs的使用:
 xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,
所以就有了 xargs 命令,例如:
find /sbin -perm +700 |ls -l #这个命令是错误的
find /sbin -perm +700 |xargs ls -l #这样才是正确的
xargs 一般是和管道一起使用。
命令格式:
somecommand |xargs -item command
参数:
-a file 从文件中读入作为 stdin
-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有
flag这个标志的时候就停止。
-p 当每次执行一个argument的时候询问一次用户。
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
-t 表示先打印命令,然后再执行。
-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {}
代替。
-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
-s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
-L num 从标准输入一次读取 num 行送给 command 命令。
-l 同 -L。
-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的
分隔符。
-x exit的意思,主要是配合-s使用。。
-P 修改最大的进程数,默认是1,为0时候为as many as it can

文件压缩解压缩

tar归档命令

格式: tar [ 选项 ] 打包文件名 被打包的源文件或目录列表
tar [ 选项 ] 打包文件名 [-C 目标文件夹 ]
选项
功能
c
创建 .tar 格式的包文件
x
释放 .tar 格式的包文件
t
查看包中的文件列表
v
表示在命令执行时显示详细的提示信息
f 包文
件名
用于指定包文件名。当与 -c 选项一起使用时 , 创建的 tar 包文件使用该选项指定的文件名 ;
当与 -x 选项一起使用时 , 则释放该选项指定的 tar 包文件
p
打包时保留文件及目录的权限
z
调用 gzip 程序 , gzip 格式压缩或解压缩文件。
j
调用 bzip2 程序 , bzip2 格式压缩或解压缩文件。
J
使用 xz 压缩( .tar.xz )。 xz 的压缩率通常比 bzip2 更高。
C 目录
路径
释放包时指定释放的目标的位置。
1. 创建(非压缩的)包文件
命令: tar cvf 包文件名 要打包的目录或文件名列表
功能:将指定的一个或多个文件或目录备份生成为一个指定的包文件。
2. 创建带压缩的包文件
为节省存储空间,通常需要生成压缩格式的 tar 包文件, tar 命令支持三种不同的压缩方式:
命令: tar c[z j|J] f 压缩包文件名 要备份的目录或文件名
实例 3 :查看压缩文件内容
[root@localhost test] # xzcat test1.txt.xz
test1
实例 4 :解压缩( xz -d 等价于 unxz
[root@localhost test] # unxz test1.txt.xz
实例 5 :解压缩目录 dir1 下文件
[root@localhost test] # xz -d dir1/*
[root@localhost test] # ls dir1
fstab test3.txt test4.txt test5.txt
显示压缩文件的内容: zcat zless bzcat bzless
不解压,显示压缩文件的内容: zcat zless bzcat bzless
1 zcat zless**
[root@localhost test] # zcat test2.txt.gz
test2
2 bzcat bzless**
例如:
# bzcat man.config.bz2 // 在屏幕上显示 man.config.bz2 解压缩之后的内容
3. 列出包文件中的文件列表
命令: tar t[v]f 包文件名
4. 提取包文件到指定目录
格式: tar x [z j|J] [v]f 包文件名 [ -C 目标位置 ]
tar 打包时排除:
--exclude=PATTERN 排除以 PATTERN 指定的文件
-X, --exclude-from=FILE 排除 FILE 中列出的模式串
SFTP
1 sftp 是一个交互式文件传输程式
它类似于 ftp 传输协议,属于 ssh, 但它进行加密传输,相对 FTP 来讲有更高的安全性。
sftp 用法
如果有服务器的端口不是默认的 22 ,请在 sftp 后面加 -P 端口号 即可。
# sftp root@223.6.6.6
The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established.
ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg.
Are you sure you want to continue connecting (yes/no)? yes 【输入 yes 回车】
Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts.
root@223.6.6.6’s password: 【输入 223.6.6.6 root 密码并回车】
Connected to 223 .6.6.6.
sftp>
223.6.6.6 服务器文件下载到 223.5.5.5 home 目录 ;
sftp> get /var/www/renwole.txt /home/
223.5.5.5 服务器文件上传到 223.6.6.6 服务器的 mnt 目录 ;
sftp> put /home/renwole.txt /mnt/
你如果不知道远程主机的目录是什么样, ls 命令 可以列出 223.6.6.6 服务器的当前目录列表。例如:
sftp> ls // 和查看本地操作命令一样
sftp> pwd // 查询 223.6.6.6 的当前工作目录
改变路径可以用 cd ,改变本机路径可以用 cd.. 例如 ;
sftp> cd
如果想退出,例如:
# exit // 退出机器,返回你原始机器界面。
2 scp 具有和 ssh 一样的验证机制,从而可以实现 2 台机器安全的远程拷贝文件
scp 可以概括为: scp -P 端口 文件路径 用户名 @ 主机地址 : 远程目录 -r
如果想拷贝本地文件到另外一台 ssh 终端,可以使用以下命令
# scp /renwole/mariadb.tar.gz root@223.6.6.6:/renwole123/
root@223.6.6.6’s password: 【输入密码回车】
mariadb.tar.gz 8 % 37MB 1 .3MB/s 05 :29 ETA
# scp test.tar.bz2 root@172.24.8.134:/ 发送文件
# scp root@172.24.8.134:/134 . 接收文件
如果你反过来操作,把远程主机的文件拷贝到当前系统,操作命令以下
# scp root@223.6.6.6:/renwole123/mariadb.tar.gz /renwole
如果你想拷贝文件夹以及文件夹内的所有文件 , 就加参数 -r 如果你的端口号不是 22 ,那么需要在 scp 后加个 -P ( 区分大小写 ) 端口号。建议加 -C 选项,因为这样可以启用 SSH 的压缩功能;传输速度更快,例如
# scp -P 6632 -C /renwole/mariadb root@223.6.6.6:/renwole123/

alias 定义命令别名

alias 别名 =’ 原命令 - 选项 / 参数
查看设置的别名: alias
删除别名: unalias 别名
[root@localhost ~]#
[root@localhost ~]# alias net="cat /etc/sysconfig/network-scripts/ifcfg-ens160"
[root@localhost ~]# unalias net
别名永久化(强烈推荐):
alias 的作用仅在该次登入的操作,即输入一次 alias 后,这个修改只在当前的 Shell 生效。如果重新开启
一个 Shell ,或者重新登录,则这些 alias 将无法使用。好在 linux 中提供 alias 永久化的方法:
<1>. 若要每次登入就自动生效别名,则把别名加在 ~/.bashrc 最后面
<2>. 若要让每一位用户都生效别名,则把别名加在 /etc/bashrc 最后面,然后 # source /etc/bashrc
永久取消 , 删除 /etc/bashrc 后面添加的别名,生效需通过 bash 或者
exit

命令缓存

1.建立命令缓存

执行命令自动在缓存建立

hash -p /usr/bin/touch touch

hash -p /usr/bin/touch chuangjian

2.删除缓存

hash -d chuangjian

hash -r 清空所有缓存

exit终端

缓存特点: 命令缓存---alias--名令文件

[root@162 ~]# hash
hits    command
   3    /usr/bin/vim
   1    /usr/bin/cat
   1    /usr/sbin/pidof
   2    /usr/bin/su
[root@162 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@162 ~]# which touch
/usr/bin/touch
[root@162 ~]# touch a
[root@162 ~]# hash
hits    command
   3    /usr/bin/vim
   1    /usr/bin/cat
   1    /usr/bin/touch
   1    /usr/sbin/pidof
   2    /usr/bin/su
[root@162 ~]# touch /usr/bin/touch     ---=优先通过缓存匹配
[root@162 ~]# hash
hits    command
   3    /usr/bin/vim
   1    /usr/bin/cat
   2    /usr/bin/touch
   1    /usr/sbin/pidof
   2    /usr/bin/su

[root@162 ~]# mv /usr/bin/touch /usr/local/bin
[root@162 ~]# touch b
bash: /usr/bin/touch: No such file or directory
[root@162 ~]# hash -d touch
[root@162 ~]# hash
hits    command
   3    /usr/bin/vim
   1    /usr/bin/cat
   1    /usr/sbin/pidof
   3    /usr/bin/mv
   2    /usr/bin/su
[root@162 ~]# touch b     ----不存在缓存以及别名执行环境变量路径下的命令文件
[root@162 ~]# hash -p /usr/bin/tac chakan    --别名

history

history( 选项 )( 参数 )
选项 :
-N: 显示历史记录中最近的 N 个记录;
-c :清空当前历史命令;
-a :将历史命令缓冲区中命令写入历史命令文件中;
-r :将历史命令文件中的命令读入当前历史命令缓冲区;
-w :将当前历史命令缓冲区命令写入历史命令文件中 ;
-d<offset> :删除历史记录中第 offset 个命令
-n<filename> :读取指定文件
参数 :
n :打印最近的 n 条历史命令。 # 使用 ! 执行历史命令。
# !number 执行第几条命令
!! # 执行上一条命令
!?string? 执行含有 string 字符串的最新命令
查看使用频率最高的前三条命令

history | cut -c 7-10 | uniq -c | sort -r | head - 3

最后

以上就是坚强鸭子为你收集整理的RHCSA之路的全部内容,希望文章能够帮你解决RHCSA之路所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部