本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96810
学习笔记(9)
1.find ./ -maxdepth 1 -name ‘test’ -ls 注意–maxdepth的位置,放在命令的尾部会有警告
2.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]
3.find 中的大小的常用单位: k, M, G, c(bytes)
4.grep:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行(注意是打印出的是匹配到的行)
5.只有在tr的时候才使用[:alpha:] 类型的表达,其余的都是[[:alpha:]] ,因为 tr ‘a-z’ ‘A-Z’ 表示的就是单一一个字符,所以使用[a-z],注意 tr只能使用重定向或管道来接受处理的文件内容,不能直接接文件来处理如 tr ‘a-z’ ‘A-Z’ file 这样是错误的
6.grep -w 匹配的单词是数字、字母、下划线混合的,而非空格分隔的
7.vim 删除时使用g作为全文档,如删除所有空格 :g/^$/d,选择替换的时候使用 % 作为全文档
8.vim 中使用的是标准的正则表达式
9.sed -n ‘n;p’ 打印偶数行
10.seq 10 | sed ‘1!G;h;$!d’ 倒序输出(tac)
11.sed 示例 文字说明
12.程序包的noarch表示与系统平台无关,适用于x86_64,同样适用于i686
13.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
14.seq 1 10 | sed ‘N;s/\n//’
seq 1 10 | xargs -n 2
15.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 #倒序输出
16.软连接相对路径
17.tar xvf 不需要指定zj,可以通过后缀名自动解压缩
18.做词尾锚定的时候,多个单词的词尾锚定不需要使用括号锚定单词,如\< \>
19.修复图文
20.ldconfig -p 查看系统中已经加载的库
21.rpm -qp –scripts httpd…
22./var/lib/rpm/* 安装rpm包之后的记录 是否安装是否未安装(重要) 删除后无法安装,无法查询包是否安装
23.自己制作rpm包
24.rpm -e vsftpd(软件名) 卸载程序包
25.rpm -i –test 测试安装
26.rpm –replacepkgs 重新安装
27.rpm –import RPM-…Centos-6 导入公钥
28.rpm -ivh –force 包名 对已经安装的软件包再次强制重新安装
29.对程序包做升级后修改过的相同的配置文件不会覆盖,新的配置文件会命名为FILENAME.rpmnew
30.rpm -q 包名(不是文件名)要求包名准确
rpm -qa | grep vsftp 可以模糊查询
rpm -qa *vsftp* 支持模糊匹配
31.rpm -qf /etc/passwd 查询文件来自于哪个程序包,即便文件删除也会查询到,/var/lib/rpm文件中已经保存了rpm元数据的数据库,所以即便文件删除也会查询到
32.rpm -ql 包名 查询已安装程序包的的文件信息
33.rpm -qpl *.rpm 查询未安装的程序包的信息
34.rpm -q –whatprovides tree 查询已安装的程序由那个程序包提供
–whatrequires 查询被依赖
35.rpm2cpio *.rpm | cpio -idv 文件(指定需要解压缩的文件,注意解压缩之后文件属性是否满足要求)
36.rpm -qi 已安装程序包 可以查看到包信息以及官网信息
37.rpm -qR 查询包依赖
38.all-matches 卸载所有版本,在相同程序存在多个版本时可以一切卸载所有版本
39.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
40.rpm -K 校验需要使用的安装包是否改变
echo >> tree-1.6.0-10.el7.x86_64.rpm
rpm -K tree-1.6.0-10.el7.x86_64.rpm 查询安装包是否发生改变
41./etc/rpm-gpg/RPM… 公钥(光盘的在根目录下)
42.rpm -qa “gpg-pubkey*”” 导入后公钥后生成的
43.rpm -ql rpm rpm -qf rpm
44.rpm2cpio …|cpio -idv file(包内文件)
45.救援模式
46.mount /dev/sro /mnt/cdrom df
47.rpm -ivh **** –root=/mnt/sysimage 救援模式使用
由于是光盘启动的系统,所以需要将根路径指定成/mnt/sysimage,因为真正的系统是被挂载在/mnt/sysimage上的
48.危险的操作有: 1. 修改所有文件权限 chomd -R 000 / ,2. 删除/var/lib/rpm 因为删除rpm数据库,系统将无法获知rpm软件是否被安装或被删除会导致rpm无法正常使用,
3.rm -rf /* 删除更目录下面的所有文件
49.yum 缓存的是元数据,不删除,下载的rpm包安装完后删除,多个yumServer相同软件安装最新,先访问缓存后下载rpm包
50.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
51. 光盘中的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源
52.yum install httpd 中的d 是只下载的不安装
53.yum repolist 查看有本地多少仓库,及仓库中的rpm包
yum repolist all 显示所有包括禁用的仓库
yum repolist disabled 显示禁用的仓库
54.yum clean all 清空缓存 (/var/cache/yum)
55.yum list 查看所有的仓库中的rpm包 带@符号的均是安装完成的
@anaconda 安装系统时使用anacoda中安装
@base 使用base源安装的
@epel epel安装
56.sl -a 使用yum 安装 epel中
57.yum remove sl 卸载程序包
58.baseurl 可以写多个,可以容错,也可以将多个baseurl放到文件中mirrorlist,并使用mirrorlist=file://root/mirrolist
59.cost值越小优先级越高
60.yum install autofs 神奇文件夹
yum start autofs
yum enable autofs
61.yum-config-manager –add-repo=http://…
62.glob 通配符,pattern 正则
63.yum底层使用的依然是rpm,所以rpm如果使用不了,yum也不能使用。
64.卸载程序不卸载依赖包(默认)
65.yum history list num
yum history info num
66.yum history undo num
67.yum install *.rpm 可以解决依赖关系,而不需要创建yum源
68.yum grouplist 显示包组
69.yum -y -q 静默模式 要分开写不能合并,可以在脚本中使用做安装判断
70.createrepo /data 自定义yum仓库,/data指定包含有rpm包的仓库
71.搭建yum仓库服务器
72.支持http https ftp协议格式 file(本地) yum仓库
73.httpd.service rpm -ql 中存在httpd.service 服务名就是httpd
74.添加光驱并扫描识别:
echo ‘- – -‘ >> /sys/class/scsi_host/host2/scan
echo ‘- – -‘ >> /sys/class/scsi_host/host0/scan
75.搭建yum http: centos6 centos7
76.yum仓库中可用的变量
$releasever (release version 发布版本)
$arch 平台,i386,i486,i586,x86_64等
$basearch 基础平台
赞 (0)