02.Linux 系统优化
调试命令行
第一步: 写入/etc/profile
[root@oldboy:~]
export PS1='[\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;36m\]\h\[\033[00m\]:\[\033[1;34m\]\W\[\033[00m\]]\$ '
第二步: 重新连接xshell或者使用source /etc/profile
安装常用命令:
麒麟:
yum -y install net-tools tree lrzsz
ubuntu:
apt -y install net-tools tree lrzsz
lrzsz包含了两个命令
rz
xshell: 鼠标拖拽文件到linux
不能上传空文件
[root@oldboy:~]
sz
[root@oldboy:~]
03.Linux 系统常用命令
1.echo输出内容到屏幕和文件中。
语法结构:
echo 字符串 回车
echo 字符串 > file
其他命令输出 >file
案例1.输出oldboy字符串到oldboy.txt文件中,如果oldboy.txt 不存在则自动创建
[root@oldboy:~]
[root@oldboy:~]
total 4
-rw-r--r-- 1 root root 7 Jul 9 10:20 oldboy.txt
[root@oldboy:~]
oldboy
案例2.默认> 先清空文件的内容在写入新的内容
[root@oldboy:~]
[root@oldboy:~]
test
案例3.追加oldboy字符串到文件中
[root@oldboy:~]
[root@oldboy:~]
test
oldboy
案例4.ip a 结果输入到ip.txt文件中
[root@oldboy:~]
[root@oldboy:~]
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:65:96:4a brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::b4c3:3c61:51f7:2655/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@oldboy:~]
[root@oldboy:~]
PING www.a.shifen.com (110.242.68.3) 56(84) bytes of data.
64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=128 time=13.2 ms
--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 13.224/13.224/13.224/0.000 ms
>
>>
2>
2>>
案例1.正确的执行结果定向到a.txt
正确: 命令正确,文件正确,啥都正确,结果也是正确的
358 ll > a.txt
359 cat a.txt
360 ip add
361 ip add|grep 10.0.0.200
362 ip add|grep 10.0.0.200 >> a.txt
363 cat a.txt
364 history
案例2.错误的执行结果
错误: 命令错,结果错。
[root@oldboy:~]
-bash: lllllllllll: command not found
[root@oldboy:~]
-bash: lllllllllll: command not found
[root@oldboy:~]
ls: cannot access 'aaaaaaaaaa.txt': No such file or directory
[root@oldboy:~]
ls: cannot access 'aaaaaaaaaa.txt': No such file or directory
[root@oldboy:~]
[root@oldboy:~]
案例3.接收错误的结果 2> 2>>
[root@oldboy:~]
-bash: lll: command not found
[root@oldboy:~]
[root@oldboy:~]
-bash: lll: command not found
[root@oldboy:~]
[root@oldboy:~]
ping: www.aaaaaaccc.com: Name or service not known
[root@oldboy:~]
[root@oldboy:~]
ping: www.aaaaaaccc.com: Name or service not known
ping: www.aaaaaaccc.com: Name or service not known
服务: 两个日志文件 ok.log error.log
错误和正确的日志放在一起的。
案例4.同时接收正确和错误的结果
正确的结果写入到 ok.txt
错误的结果写入到 error.txt
[root@oldboy:~]
[root@oldboy:~]
[root@oldboy:~]
[root@oldboy:~]
[root@oldboy:~]
[root@oldboy:~]
ping: www.aaaaaaccc.com: Name or service not known
[root@oldboy:~]
[root@oldboy:~]
PING www.aa.com (184.50.93.141) 56(84) bytes of data.
64 bytes from a184-50-93-141.deploy.static.akamaitechnologies.com (184.50.93.141): icmp_seq=1 ttl=128 time=45.2 ms
--- www.aa.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 45.198/45.198/45.198/0.000 ms
[root@oldboy:~]
ping: www.aaaaaaccc.com: Name or service not known
案例5.正确的和错误的都写入到ok.txt文件中
[root@oldboy:~]
[root@oldboy:~]
PING www.aa.com (184.50.93.141) 56(84) bytes of data.
64 bytes from a184-50-93-141.deploy.static.akamaitechnologies.com (184.50.93.141): icmp_seq=1 ttl=128 time=44.8 ms
--- www.aa.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 44.775/44.775/44.775/0.000 ms
ping: www.aa.comaaaaaaaaaa: Name or service not known
案例6.其他写法
第一种写法: 正确的结果输入到ok.txt,错误的结果和1一样。
[root@oldboy:~]
第二种写入: & 正确和错误的都输出到ok.txt
[root@oldboy:~]
第三种方法:
[root@oldboy:~]
1.less 一页一页查看文件 查看大文件。
参数选项:
-N 显示行号
f 空格 往下翻页
b 往上翻页
1G 快速到首行
g 快速到首行
/ 搜索内容
n 查找下一个
N 查找上一个
q 退出
2.more 了解
3.sort 排序
语法结构:
sort 文件
cat file|sort
参数选项:
-n 按照数字正序排序
-r 逆序排序
-k 指定列数
案例1.对数字进行排序
[root@oldboy:~]# cat a.txt
123
222
1
34
456
5
6
7
8
9
10
语法结构:
[root@oldboy:~]# sort a.txt
[root@oldboy:~]# cat a.txt |sort
默认按照第一列数字进行排序
[root@oldboy:~]# sort a.txt
1
10
123
222
34
456
5
6
7
8
9
字符串:
[root@oldboy:~]# echo {a..h}|xargs -n1 # 设置为1列输出
a
b
c
d
e
f
g
h
[root@oldboy:~]# echo {a..h}|xargs -n1 > b.txt
[root@oldboy:~]# cat b.txt
afee
h
b342
f
cfweew
dfe
e
g
[root@oldboy:~]# sort b.txt
afee
b342
cfweew
dfe
e
f
g
h
案例2.按照数字进行正序排序
[root@oldboy:~]# sort -n a.txt
1
5
6
7
8
9
10
34
123
222
456
案例2.按照数字进行逆序排序
[root@oldboy:~]# sort -rn a.txt
456
222
123
34
10
9
8
7
6
5
1
案例3.数字在第2列
[root@oldboy:~]# sort -nk2 a.txt
aaa 1
aaa 5
aaa 6
aaa 7
aaa 8
aaa 9
aaa 10
aaa 34
aaa 123
aaa 222
aaa 456
案例4.统计成绩
[root@oldboy:~]# sort -rnk2 count.txt
熊征宇 100
张恒源 100
刘文言 100
马诗凯 98
陈柏松 98
案例5.统计单词出现的数量
[root@oldboy:~]# cat d.txt
test
oldboy
mysql
shell
docker
shell
mysql
test
test
第一步: 排序
[root@oldboy:~]# cat d.txt|sort
docker
mysql
mysql
oldboy
shell
shell
test
test
test
4.uniq -c 去重并统计
第二步: 去重并统计重复的次数
[root@oldboy:~]# cat d.txt|sort |uniq
docker
mysql
oldboy
shell
test
[root@oldboy:~]# cat d.txt|sort |uniq -c
1 docker
2 mysql
1 oldboy
2 shell
3 test
案例.统计日志文件中IP地址的TOP10
[root@oldboy:~]# cat ip.txt|sort |uniq -c|sort -rn|head
189 157.66.48.147
76 219.82.2.110
53 123.112.20.52
53 117.132.188.205
44 143.198.0.139
36 180.98.131.167
36 113.215.189.214
36 113.215.188.106
21 113.215.188.107
19 113.215.188.108
扩展:
1.统计passwd中单词的数量
2.统计passwd中每个字母出现的数量
5.diff 比对两个文件的不同
[root@oldboy:~]# cat 1.txt
www.oldboy.com
www.baidu.com
[root@oldboy:~]# cat 2.txt
www.test.com
www.baidu.com
[root@oldboy:~]# diff 1.txt 2.txt
1c1
< www.oldboy.com
---
> www.test.com
6.alias 别名 起外号 了解 /etc/profile
04.软件安装
Linux三种软件安装方式:
1.yum安装
特点:
a.简单快速
b.类似在手机应用商店搜索到软件直接安装
c.自动解决依赖的问题
d.类似点外卖,水饺煮熟,酱油 醋辣椒 蒜
e.不能选择默认安装的位置
2.rpm安装
特点:
a.类似windows先将软件下载下来,exe文件,双击安装
b.不能解决依赖问题,需要我们手动解决
c.类似吃水饺,购买速冻水饺 买锅 勺子 辣椒 醋 燃气 筷子
d.默认的仓库没有软件,只能通过官网下载软件使用rpm进行安装
f.软件比较大,网络不好的情况,通过rpm包本地安装(类似windows直接在360软件管家下载vmware自动安装vmware
,先将vmware下载到windows,然后我们手动安装)
企业中,没有外网的情况下。
出现依赖,缺少依赖使用yum安装依赖。
3.编译安装 nginx编译安装 k8s
a.自定义模块
b.自定义安装位置
c.类似自己包水饺
知识点小结:
1.命令提示符
2.yum apt
3.less
4.sort
5.uniq
6.软件安装特点
05.软件安装
1.centos和麒麟
语法结构:
yum -y install 包名称 包 包 包
yum -y remove 包名称 包 包 包
yum -y reinstall 重新覆盖安装 了解
yum clean all
参数选项:
-y
查看当前哪些仓库:
[root@oldboy:~]
repo id repo name
epel Extra Packages for Enterprise Linux 7 - x86_64
ks10-adv-os Kylin Linux Advanced Server 10 - Os
ks10-adv-updates Kylin Linux Advanced Server 10 - Updates
无法安装软件:
01.连接不上网
02.命令错误
03.包名称错误 很多命令属于其他包 比如 route命令属于net-tools包
04.不知道包的名字: 百度一下
如果都没有问题,还是无法安装,使用yum clean all 清空缓存在尝试。
2.ubuntu操作系统安装软件
语法结构: apt install 包 包 包
dpkg -r 包
查看默认的仓库
root@ubuntu:~
Package files:
100 /var/lib/dpkg/status
release a=now
100 https://mirrors.aliyun.com/ubuntu focal-backports/universe amd64 Packages
release v=20.04,o=Ubuntu,a=focal-backports,n=focal,l=Ubuntu,c=universe,b=amd64
rpm安装:
语法结构:
rpm -ivh 包名
rpm -e 包名
参数选项:
i install
v 显示安装过程
h 进度
ivh 一起使用。
-qa
rpm -qa wget
rpm -ql
第一步: 下载rpm包
第二步: 使用rpm安装
[root@oldboy:Packages]
[root@oldboy:Packages]
Verifying...
Preparing...
Updating / installing...
1:zziplib-0.13.69-8.ky10
[root@oldboy:Packages]
zziplib-0.13.69-8.ky10.x86_64
[root@oldboy:Packages]
[root@oldboy:Packages]
error: package zziplib-0.13.69-8 is not installed
[root@oldboy:Packages]
[root@oldboy:Packages]
[root@oldboy:Packages]
Verifying...
Preparing...
Updating / installing...
1:zziplib-0.13.69-8.ky10
[root@oldboy:Packages]
[root@oldboy:Packages]
zziplib-0.13.69-8.ky10.x86_64
查看软件是否安装
[root@oldboy:~]
lrzsz-0.12.20-46.ky10.x86_64
cowsay-3.04-4.el7.noarch
如果名称不记得使用grep 过滤
[root@oldboy:~]
cowsay-3.04-4.el7.noarch
[root@oldboy:~]
1.配置yum仓库
centos需要配置默认仓库为阿里云,安装epel
麒麟默认仓库不需要配置,可以安装扩展epel仓库
ubuntu需要修改默认的仓库为阿里云
2.安装软件
yum -y install xx
yum -y remove xx
rpm -ivh xxx.rpm xxx.rpm xx.rpm
rpm -e 包的名字或者带版本号
rpm -qa 查看所有安装过的软件
rpm -qa wget
rpm -ql wget
ubuntu:
apt -y install xx
dpck -r xxx
没有外网情况如何安装软件。
1.找一台可以联网的服务器先下载rpm包
[root@oldboy:~]
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
keepcache=1
chachedir=/var/cache/yum/
安装软件
yum -y install wget
完成后检查下面的目录:
/var/cache/yum/ks10-adv-os-f52f2e63634844ad/packages/
2.上传到不能联网的服务器中使用rpm安装
sz xx.rpm 下载到windows
上传rpm包到不能上网的服务器中
ubuntu好玩的命令:
apt -y install cmatrix lolcat nyancat libaa-bin boxes
echo 呵呵哒|boxes -d sunset
libaa-bin aafire 一团火