linux常用命令
1.将文件内容清空
echo ‘’->/var/log/mysql.log
2. 查看安装包
查找已安装的myslq 版本:
#rpm -qa | grep mysql (注意大小写,如果mysql 不行就换MySQL)
3. 查看安装路径
whereis mysql
4. 查看运行路径
which mysql
5. 查看磁盘利用率
df -lh
6. 查看文件第几行命令
生成序列文件
seq 100 > numbers.txt
查看文件的前10行
head -n 10 numbers.txt
查看文件的前10个字节
head -c 10 numbers.txt
查看文件的后10行
tail -n 10 number.txt
查看文件的后10个字符
tail -c 10 number.txt
查看文件第5行的内容
head -n 5 numbers.txt | tail -n 1
写一个 bash脚本以去掉一个文本文件 nowcoder.txt中的空行
awk NF nowcoder.txt
cat nowcoder.txt | awk NF
awk ‘!/^$/ {print}’ nowcoder.txt
7. 打印空行的行号
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
awk ‘/^$/{print NR}’ numbers.txt
8. 打印字母数小于8的单词
awk打印命令后面‘{}’,花括号里面写的是执行语句,变量的提取使用$符号。NF表述的是一行中的数字。
awk ‘{
for (j=1;j<=NF;j++){
if (length($j) < 8){
print $j
}
} }’ nowcoder.txt
9.计算文本中的数字和
root 2 0.0 0.0 0 0 ? S 9月25 0:00
[kthreadd] root 4 0.0 0.0 0 0 ? I< 9月25
0:00 [kworker/0:0H] web 1638 1.8 1.8 6311352 612400 ? Sl
10月16 21:52 test web 1639 2.0 1.8 6311352 612401 ? Sl
10月16 21:52 test tangmiao-pc 5336 0.0 1.4 9100240 238544
?? S 3:09下午 0:31.70 /Applications
awk ‘{count += $6} END {print count}’ nowcoder.txt
10. 打印出单词个数
注意END后面需要把 { 紧跟在后面,arry容器key-value型的使用。每一个for NF是对应的一行而已。
11. 行转换为列输出
假设 nowcoder.txt 内容如下:
job salary
c++ 13
java 14
php 12
你的脚本应当输出(以词频升序排列):
job c++ java php
salary 13 14 12
awk ‘{
for(i=1;i<=NF;i++){
arry[i] = arry[i] $i
} } END{
for(i=1;i<=NR;i++){
print arry[i]
} }’ nowcoder.txt
注意:awk命令本来就会去扫描每一行。NR则是对应了共有几行。NF则是对应了共有几列。
12.统计一个文本文件 nowcoder.txt中每一行出现的1,2,3,4,5数字个数并且要计算一下整个文档中一共出现了几个1,2,3,4,5数字数字总数。
假设 nowcoder.txt 内容如下:
a12b8
10ccc
2521abc
9asf
你的脚本应当输出:
line1 number: 2
line2 number: 1
line3 number: 4
line4 number: 0
sum is 7
注意:每一行中的行号是通过NR来表示的,在awk循环每一行时,NR也是变量,NF则是多少列的变量。另外,由于每一行连续,或者说$0就代表了是整个行。而 i=1;i<=NF;i++ 则是代表了每一行的列号循环,在有空格的情况下,比如切割开了单词。
13. 写一个bash脚本以实现一个需求,求输入的一个的数组的平均值
第1行为输入的数组长度N
第2~N行为数组的元素,如以下为:
数组长度为4,数组元素为1 2 9 8
示例:
4
1
2
9
8
那么平均值为:5.000(保留小数点后面3位)
你的脚本获取以上输入应当输出:
5.000
注意NR的遍历范围是从1开始的,在每一行awk中。
另外printf的格式化输出,%0.3f
14. 写一个 bash脚本以实现一个需求,去掉输入中的含有B和b的单词
示例:
假设输入如下:
big
nowcoder
Betty
basic
test
你的脚本获取以上输入应当输出:
nowcoder test
awk ‘{print}’ | grep -v [Bb]
cat $1 | grep -v [Bb]
注意:grep -v 表示去掉不包含的项。
转发:yum工作原理及使用
yum工作原理及使用
yum工作原理
yum服务器
yum服务器提供rpm包及其基本信息、依赖关系的下载
yum客户端
每次yum install或者search的时候,都会去解析/etc/yum.repos.d/下面所有以.repo结尾的配置文件,获取yum服务器地址。yum会定期去更新yum服务器上的rpm包清单,下载到本地缓存(默认在/var/cache/yum/
b
a
s
e
a
r
c
h
/
basearch/
basearch/releasever)。每次调用yum安装的时候,都会去本地缓存查找清单,根据清单里的rpm包描述从而确定安装包的名字、版本号、所需要的依赖等,然后再去yum服务器下载(如果缓存中rpm包就不用下载)
常用用法
常用命令
yum install <package_name> #仅安装指定的软件
yum localinstall <rpm_package_path> #安装本地rpm包
yum localupdate <rpm_pacakge_path> #本地更新rpm包
yum check-update #列出所有可更新的软件清单命令
yum update #更新所有软件
yum update <package_name> #仅更新指定的软件
yum search #查找软件包
yum repolist #查看yum源列表
yum info <package_name> #查看软件包信息
删除软件
[tenmao@vm log]$ sudo yum list installed | grep mongodb
mongodb-org-server.x86_64 4.0.9-1.el7 installed
[tenmao@vm log]$ sudo yum remove mongodb-org-server.x86_64
查看已安装的包
[tenmao@vm ~]$ sudo yum list installed | grep mongo
mongodb-org.x86_64 4.0.9-1.el7 @mongodb-org-4.0
mongodb-org-mongos.x86_64 4.0.9-1.el7 @mongodb-org-4.0
mongodb-org-server.x86_64 4.0.9-1.el7 @mongodb-org-4.0
mongodb-org-shell.x86_64 4.0.9-1.el7 @mongodb-org-4.0
mongodb-org-tools.x86_64 4.0.9-1.el7 @mongodb-org-4.0
高级用法
代理配置
在/etc/yum.conf的[main]下配置代理
[main]
proxy=http://proxysever.yourdomain.com:3128
proxy_username=your_username
proxy_password=your_password
设置仓库源(国内源)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
mv CentOS6-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache
添加新的仓库
添加文件:/etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc