码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记(9)

时间:2018-04-20 17:50:55      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:学习笔记

find ./ -maxdepth 1 -name ‘test‘ -ls 注意--maxdepth的位置,放在命令的尾部会有警告
find /etc -regex "/etc/.passwd" find中使用正则表达式匹配时,匹配的是整个路径而非文件名称,而使用文件统配符的时候是匹配的文件名
find / -iname "[^[:lower:]][^[:lower:]][^[:lower:]][^[:lower:]][^[:lower:]][^[:lower:]][^[:lower:]].txt"
find / -iname "[a-z][a-z][a-z][a-z][a-z][a-z][a-z].txt" 使用[a-z] 会匹配大写字母的文件名
因为a-z匹配的是a A b B ....z,如果匹配的是大小写字母的则使用[a-Z]
find 中的大小的常用单位: k, M, G, c(bytes)
grep:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行(注意是打印出的是匹配到的行)
只有在tr的时候才使用[:alpha:] 类型的表达,其余的都是[[:alpha:]] ,因为 tr ‘a-z‘ ‘A-Z‘ 表示的就是单一一个字符,所以使用[a-z],注意 tr只能使用重定向或管道来接受处理的文件内容,不能直接接文件来处理如 tr ‘a-z‘ ‘A-Z‘ file 这样是错误的
grep -w 匹配的单词是数字、字母、下划线混合的,而非空格分隔的
vim 删除时使用g作为全文档,如删除所有空格 :g/^$/d,选择替换的时候使用 % 作为全文档
vim 中使用的是标准的正则表达式
sed -n ‘n;p‘ 打印偶数行
seq 10 | sed ‘1!G;h;$!d‘ 倒序输出(tac)
sed 示例 文字说明
程序包的noarch表示与系统平台无关,适用于x86_64,同样适用于i686
ls
.rpm | sed -r ‘s@..([^.]+).rpm$@\1@‘|sort |uniq -c
ls
.rpm |rev |cut -d. -f2|rev|sort|uniq -c
ls .rpm |grep -Eo ‘.[^.]+.rpm$‘|cut -d. -f2|sort|uniq -c
seq 1 10 | sed ‘N;s/\n//‘
seq 1 10 | xargs -n 2
sed 进阶
P:打印模式空间开端至\n内容,并追加到默认输出之前
h: 把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g: 从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x: 把模式空间中的内容与保持空间中的内容进行互换
n: 读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
d: 删除模式空间中的行
D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发出d命令那样启动正常的新循环
sed -n ‘n;p‘ FILE #打印偶数行
sed ‘1!G;h;$!d‘ file #倒序输出
sed ‘N;D‘ FILE #打印最后一行
sed ‘$!N;$!D‘ FILE #但因最后两行
sed ‘$!d‘ FILE #打印最后一行
sed ‘G‘ FILE #在每一行的下面追加一个空行
sed ‘g‘ FILE #将每一行的内容用空行替换
sed ‘/^$/d;G‘ FILE #将多个空行合并成一个空行
sed ‘n;d‘ FILE #只保留奇数行
sed -n ‘1!G;h;$p‘ FILE #倒序输出
软连接相对路径
tar xvf 不需要指定zj,可以通过后缀名自动解压缩
做词尾锚定的时候,多个单词的词尾锚定不需要使用括号锚定单词,如\< \>
修复图文
ldconfig -p 查看系统中已经加载的库
rpm -qp --scripts httpd...
/var/lib/rpm/
安装rpm包之后的记录 是否安装是否未安装(重要) 删除后无法安装,无法查询包是否安装
自己制作rpm包
rpm -e vsftpd(软件名) 卸载程序包
rpm -i --test 测试安装
rpm --replacepkgs 重新安装
rpm --import RPM-...Centos-6 导入公钥
rpm -ivh --force 包名 对已经安装的软件包再次强制重新安装
对程序包做升级后修改过的相同的配置文件不会覆盖,新的配置文件会命名为FILENAME.rpmnew
rpm -q 包名(不是文件名)要求包名准确
rpm -qa | grep vsftp 可以模糊查询
rpm -qa vsftp 支持模糊匹配
rpm -qf /etc/passwd 查询文件来自于哪个程序包,即便文件删除也会查询到,/var/lib/rpm文件中已经保存了rpm元数据的数据库,所以即便文件删除也会查询到
rpm -ql 包名 查询已安装程序包的的文件信息
rpm -qpl .rpm 查询未安装的程序包的信息
rpm -q --whatprovides tree 查询已安装的程序由那个程序包提供
-whatrequires 查询被依赖
rpm2cpio
.rpm | cpio -idv 文件(指定需要解压缩的文件,注意解压缩之后文件属性是否满足要求)
rpm -qi 已安装程序包 可以查看到包信息以及官网信息
rpm -qR 查询包依赖
all-matches 卸载所有版本,在相同程序存在多个版本时可以一切卸载所有版本
rpm -V 程序名 查询程序的属性是否发生变化
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
rpm -K 校验需要使用的安装包是否改变
echo >> tree-1.6.0-10.el7.x86_64.rpm
rpm -K tree-1.6.0-10.el7.x86_64.rpm 查询安装包是否发生改变
/etc/rpm-gpg/RPM... 公钥(光盘的在根目录下)
rpm -qa "gpg-pubkey*"" 导入后公钥后生成的
rpm -ql rpm rpm -qf rpm
rpm2cpio ...|cpio -idv file(包内文件)
救援模式
mount /dev/sro /mnt/cdrom df
rpm -ivh *** --root=/mnt/sysimage 救援模式使用
由于是光盘启动的系统,所以需要将根路径指定成/mnt/sysimage,因为真正的系统是被挂载在/mnt/sysimage上的
危险的操作有: 1. 修改所有文件权限 chomd -R 000 / ,2. 删除/var/lib/rpm 因为删除rpm数据库,系统将无法获知rpm软件是否被安装或被删除会导致rpm无法正常使用,
rm -rf /
删除更目录下面的所有文件
yum 缓存的是元数据,不删除,下载的rpm包安装完后删除,多个yumServer相同软件安装最新,先访问缓存后下载rpm包
vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #metadata缓存路径
keepcache=0 #是否缓存rpm包,1为保存
debuglevel=2
logfile=/var/log/yum.log # 日志路径
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
光盘中的repodata 目录存放的是元数据信息
[base] #名字不要有空格
name= centos cdrom
baseurl=file:///mnt/cdrom #repodata的父目录就是仓库路径(即repodata所在的目录),mnt前面的/是根
gpgcheck=0 未import公钥,所以不校验

[epel]
name=epel
baseurl=htp://172.20.0.1/epel/7/x86_64/
        file:///mnt/cdrom  #容错
gpgcheck=1 校验完整性
gpgkey=file:///mnt/cdrom/RPM-GPG-... 指定key文件
enabled=0 禁用yum源

yum install httpd 中的d 是只下载的不安装
yum repolist 查看有本地多少仓库,及仓库中的rpm包
yum repolist all 显示所有包括禁用的仓库
yum repolist disabled 显示禁用的仓库
yum clean all 清空缓存 (/var/cache/yum)
yum list 查看所有的仓库中的rpm包 带@符号的均是安装完成的
@anaconda 安装系统时使用anacoda中安装
@base 使用base源安装的
@epel epel安装
sl -a 使用yum 安装 epel中
yum remove sl 卸载程序包
baseurl 可以写多个,可以容错,也可以将多个baseurl放到文件中mirrorlist,并使用mirrorlist=file://root/mirrolist
cost值越小优先级越高
yum install autofs 神奇文件夹
yum start autofs
yum enable autofs
yum-config-manager --add-repo=http://...
glob 通配符,pattern 正则
yum底层使用的依然是rpm,所以rpm如果使用不了,yum也不能使用。
卸载程序不卸载依赖包(默认)
yum history list num
yum history info num
yum history undo num
yum install *.rpm 可以解决依赖关系,而不需要创建yum源
yum grouplist 显示包组
yum -y -q 静默模式 要分开写不能合并,可以在脚本中使用做安装判断
createrepo /data 自定义yum仓库,/data指定包含有rpm包的仓库
搭建yum仓库服务器
支持http https ftp协议格式 yum仓库
httpd.service rpm -ql 中存在httpd.service 服务名就是httpd
添加光驱并扫描识别:
echo ‘- - -‘ >> /sys/class/scsi_host/host2/scan
echo ‘- - -‘ >> /sys/class/scsi_host/host0/scan
搭建yum http: centos6 centos7
yum仓库中可用的变量
$releasever (release version 发布版本)
$arch 平台,i386,i486,i586,x86_64等
$basearch 基础平台

学习笔记(9)

标签:学习笔记

原文地址:http://blog.51cto.com/9980200/2105826

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!