Linux下知识总结


前言:在我们平时的工作中,会经常遇到一些linux操作不便捷的情况,以下我就自己在工作中遇到的一些小技巧进行总结,方便自己在后期使用过程中被难住…

1. linux下修改history格式

[root@shell_test ~]# export HISTTIMEFORMAT="%F %`who am i` "
[root@shell_test ~]# history |more
  102  2019-07-15 11:45:14 AMoot     pts/0        2019-07-15 10:27 (192.168.1.5) cat -n passwd |grep "n$"
  103  2019-07-15 11:45:14 AMoot     pts/0        2019-07-15 10:27 (192.168.1.5) cat -n passwd |grep "/sbin/nologi$"
  104  2019-07-15 11:45:14 AMoot     pts/0        2019-07-15 10:27 (192.168.1.5) cat -n passwd |grep "/sbin/nologin$"

2. ASCII码表中字符排序

按照按ASCII码值比较大小从小到大顺序是:数字、大写字母、小写字母
a-z:97-122
A-Z:65-90
0-9:48-57

3. shell脚本中的知识点

  1. if语句中,数值比较的写法是if [ $var1 -ge v a r 2 ] ; 字 符 串 比 较 的 写 法 是 i f [ “ var2 ];字符串比较的写法是if [ “ var2]if[var1” != “ v a r 2 ” ] , 其 中 加 双 引 号 只 是 兼 容 var2” ],其中加双引号只是兼容 var2]var2处为空的情况
  2. 在各种运算中,test命令的运算和中括号是等效的
  3. 赋值时等号两边没空格,比较或测试时运算符两边都要有空格
  4. shell默认是字符运算,如果想当数值进行运算要在前边加上expr,如:var3=expr $var1 + $var2
  5. 只适用于数值的比较
    在这里插入图片描述
  6. 适用于字符串的比较(也可用于数值比较)
    在这里插入图片描述
  7. 字符串测试运算
    在这里插入图片描述
  8. 文件测试运算
    在这里插入图片描述

4. screen

平常开一个putty远程登录,经常需要在两个程序之间来回切换,怎么办?ctrl-z和fg、bg?这些太麻烦了。其实我们可以借助screen命令来实现轻松便捷的切换。
“首先用screen [-S]命令建立一个session,然后就可以在这个session中建立多个window了。使用screen [-S]可以建立多个session,而每个session又可以建立多个window。在不同的window之间可以用Ctrl-A n/p等命令来切换。而想要在多个session之间切换,则需要你Ctrl-A d回到登录session(就像一棵大树的根),然后再通过screen -ls查看有哪些session,然后使用screen -r来决定恢复到哪个session。对于已经Attached Session则不能直接screen -r,需要先screen -d,然后才能screen -r”
常用screen参数:
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

4. 修改linux用户的最大进程数以及进程最大文件打开数(文件描述符)、tcp连接数

查看博客https://www.cnblogs.com/clicli/p/5856486.html

#修改系统中用户的最大进程数
[root@localhost ~]# ulimit -u 10000
#修改用户进程的最大文件打开数
[root@localhost ~]# ulimit -n 4096
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3795
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 4096
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 10000
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
#以上操作为临时修改,下面操作则为永久修改,解除 Linux 系统的最大进程数和最大文件打开数限制:
        vi /etc/security/limits.conf
        # 添加如下的行
        * soft noproc 11000
        * hard noproc 11000
        * soft nofile 4100
        * hard nofile 4100

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. linux服务端口

服务端口备注
DNS域名解析UDP 53端口
ssh服务22
redis6379
mysql3306

6. linux主机性能分析

确认系统出现瓶颈需要从以下两点着手进行分析:

  1. 观察load average (平均负载)
  2. 观察cpu、io是否存在瓶颈

以下为进程描述符的状态的区别

状态说明
TASK_RUNNING (R running)运行状态。只要CPU空闲,任何时候都可运行
TASK_INTERRUPTIBLE(S sleep)可中断的等待状态。主要为恢复时间无法预测的长时间等待状态。例如系统睡眠或来自于用户的输入等待等
TASK_UNINTERRUPTIBLE(D sleep)不可中断的等待状态,例如磁盘输入输出的等待
TASK_STOPED响应暂停信号而运行中断的状态。直到恢复前都不会被调度
TASK_ZOMBLE (S)僵死状态,虽然子进程已经终止,但父进程尚未执行wait(),因此该进程的资源没有被系统释放。

事实证明:只有TASK_RUNNING和TASK_UNINTERRUPTIBLE会被换算成相应的load average

  • 即使需要即刻使用CPU,也还需要等待其他进程用完CPU
  • 即使需要继续处理,也必须等待磁盘输入输出完成才能进行

7. 两个nginx主进程处理

当存在两个master主进程时,需要重载特定主进程的conf
xxx代表:nginx配置文件的路径
nginx -p xxx -s reload

8. linux操作文件权限

在这里插入图片描述

9. ssh相关

  • 密码登录
    在这里插入图片描述
    Server收到Client用户的登录请求,Server将自己的公钥发送给用户;Client使用公钥将自己的密码加密Client将加密后的数据发送至Server端Server端使用对应的私钥解密数据,然后验证其合法性如果密码正确,Server同意用户登录。
    每个SSH用户(client端)都有自己的known_hosts文件, 此外系统也有一个这样的文件,通常是/etc/ssh/ssh_known_hosts,保存一些对所有用户都可信赖的远程主机的公钥。

  • 公钥登录
    请看下面两张图:
    在这里插入图片描述
    在这里插入图片描述
    解释说明:
    Client将自己的公钥存放在Server端,追加到authorized_keys文件中。Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey®,然后将加密后信息发送给Client。Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

9.1 ssh问题总结

  • 去掉第一次ssh连接的yes:

修改本机的/etc/ssh/ssh_config文件中的"# StrictHostKeyChecking ask" 为 “StrictHostKeyChecking no”,然后重启sshd服务即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值