1 Linux运维学习笔记 1.1 基本操作命令 |
1.1.1 权限管理 |
1.1.1.1 chmod |
1.1.1.2 chown |
1.1.1.3 setfacl |
1.1.1.4 chattr |
1.1.2 用户管理 |
1.1.2.1 useradd(添加用户) |
1.1.2.2 passwd(修改用户密码) |
1.1.2.3 userdel(删除用户角色) |
1.1.2.4 usermod(修改用户信息) |
1.1.2.5 groupadd(添加工作组) |
1.1.2.6 groupdel(删除工作组) |
1.1.3 文件管理 |
1.1.3.1 cat |
1.1.3.2 mv |
1.1.3.3 scp,rsync文件传输 |
1.1.3.3.1 scp |
1.1.3.4 rz |
1.1.3.5 awk |
1.1.3.5.1 案例 |
1.1.3.6 cp复制 |
1.1.3.7 more |
1.1.3.8 less |
1.1.3.9 mkdir |
1.1.3.10 diff |
1.1.3.11 head |
1.1.3.12 tail |
1.1.3.13 sed |
1.1.3.14 sort |
1.1.3.15 uniq (去重语句) |
1.1.3.16 grep |
1.1.3.16.1 grep(2) |
1.1.3.17 xargs |
1.1.3.18 tr |
1.1.3.19 cut |
1.1.3.20 od |
1.1.3.21 dos2unix |
1.1.3.22 cpio |
1.1.3.23 tee |
1.1.3.24 column |
1.1.3.25 swapon |
1.1.4 软件包管理 |
1.1.4.1 yarn |
1.1.4.2 zip |
1.1.5 备份策略 |
1.1.5.1 tar |
1.1.5.2 cp |
1.2 系统工作常用命令 |
1.2.1 ab(压力测试) |
1.2.1.1 ab常见问题 |
1.2.2 nohup |
1.2.2.1 bg fg |
1.2.3 crontab |
1.2.4 find |
1.2.4.1 find |
1.2.5 tcpdump |
1.2.6 ifconfig |
1.2.7 netstat(网络通信情况) |
1.2.8 ps (查看系统进程) |
1.2.9 top (系统运维状态) |
1.2.10 alias |
1.2.11 pidof |
1.2.12 kill与killall与pkill |
1.2.13 uptime(系统负载信息) |
1.2.14 free(系统内存情况) |
1.2.15 last(登陆日志) |
1.2.16 fdisk(磁盘分区) |
1.2.17 strace |
1.2.18 lsmod |
1.2.19 ssh |
1.2.19.1 sshpass |
1.2.20 ftp (sftp) |
1.2.21 du |
1.2.22 umask(文件权限) |
1.2.23 df (磁盘占用情况) |
1.2.24 curl |
1.2.25 date |
1.2.26 lsof |
1.2.27 chrony |
1.2.28 cpu运行状态 |
1.2.29 lshw |
1.2.30 vim |
1.2.31 lsb_release -a (系统版本信息) |
1.3 网络基础 |
1.3.1 ifconfig |
1.3.2 route |
1.3.3 nslookup |
1.3.4 ping网关 |
1.3.5 ISO/OSI七层模型 |
1.3.6 TCP/IP三次握手(四次挥手) |
1.3.6.1 三次握手 |
1.3.6.2 四次挥手 |
1.3.7 IP地址网段(可用IP地址)(广播地址) |
1.3.8 网络连接数 |
1.3.9 mtr |
1.3.10 ip |
1.4 系统管理类 |
1.4.1 进程与线程 |
1.4.1.1 pstree |
1.4.2 系统安全 |
1.4.2.1 记录一次远程挖矿病毒 |
1.4.2.2 漏洞修补 |
1.4.3 nfs远程挂载 |
1.4.3.1 nfs自动挂载 |
1.4.4 查询系统用户登录情况 |
1.4.5 权限优化 |
1.4.6 备份策略 |
1.4.7 Raid(磁盘阵列) |
1.4.8 资源查看(监控) |
1.4.8.1 dstat(网络监控) |
1.4.9 启动流程 |
1.4.10 系统优化 |
1.4.11 cpu |
1.5 Shell编程 |
1.5.1 数组类型 |
1.5.2 if 条件判断 |
1.5.3 for |
1.5.4 文本截取 |
1.5.5 随机字符串 |
1.5.6 网站检测 |
1.5.6.1 nmap |
1.5.7 Debug |
1.5.8 declare |
1.6 网络服务类 |
1.6.1 网关 |
1.6.2 SSH服务 |
1.6.3 DHCP + FTP |
1.6.4 DNS服务 |
1.6.4.1 智能DNS |
1.6.5 Apache配置 |
1.6.5.1 Apache 三种工作模式 |
1.6.6 Apache优化 |
1.6.6.1 CDN |
1.6.7 Nginx配置 |
1.6.7.1 nginx开启SSL证书 |
1.6.7.2 Session一致性解决方案 |
1.6.7.3 异步非阻塞方式 |
1.6.7.4 Nginx反向代理配置出现问题 |
1.6.7.5 nginx 负载均衡算法 |
1.6.7.6 nginx status |
1.6.8 Nginx优化 |
1.6.8.1 Nginx请求PHP(Tomcat)过程 |
1.6.8.2 gzip压缩 |
1.6.8.3 缓存优化 |
1.6.8.4 反向代理 |
1.6.9 http状态码 |
1.7 数据库管理类 |
1.7.1 集群部署(Amoeba) |
1.7.2 索引 |
1.7.3 误操作Drop语句如何解决? |
1.7.4 Redis(缓存数据库) |
1.7.4.1 Redis_ |
1.8 Good Luck |
1.9 Linux(实际工作可能常用命令) |
1.10 LeetCode(Bash) |
1.10.1 统计词频 |
1.10.2 有效电话号码 |
2 三剑客 |
2.1 正则表达式 |
2.1.1 扩展正则表达式 |
2.2 grep(...过滤) |
2.3 sed(...替换) |
2.3.1 sed删除,增加 |
2.3.2 sed 替换 |
2.4 awk(...取列统计) |
2.4.1 awk模式匹配 |
2.4.2 awk数组 |
Linux tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
语法 tr [-cdst][--help][--version][第一字符集][第二字符集] tr [OPTION]…SET1[SET2] 参数说明:
-c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 -d, --delete:删除指令字符 -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符 -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等 --help:显示程序用法信息 --version:显示程序本身的版本信息 字符集合的范围:
\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符) \\ 反斜杠 \a Ctrl-G 铃声 \b Ctrl-H 退格符 \f Ctrl-L 走行换页 \n Ctrl-J 新行 \r Ctrl-M 回车 \t Ctrl-I tab键 \v Ctrl-X 水平制表符 CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。 [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止 [CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始) [:alnum:] :所有字母字符与数字 [:alpha:] :所有字母字符 [:blank:] :所有水平空格 [:cntrl:] :所有控制字符 [:digit:] :所有数字 [:graph:] :所有可打印的字符(不包含空格符) [:lower:] :所有小写字母 [:print:] :所有可打印的字符(包含空格符) [:punct:] :所有标点字符 [:space:] :所有水平与垂直空格符 [:upper:] :所有大写字母 [:xdigit:] :所有 16 进位制的数字 [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符) 实例 将文件testfile中的小写字母全部转换成大写字母,此时,可使用如下命令:
cat testfile |tr a-z A-Z testfile文件中的内容如下:
$ cat testfile #testfile原来的内容 Linux networks are becoming more and more common, but scurity is often an overlooked issue. Unfortunately, in today’s environment all networks are potential hacker targets, fro0m tp-secret military research networks to small home LANs. Linux Network Securty focuses on securing Linux in a networked environment, where the security of the entire network needs to be considered rather than just isolated machines. It uses a mix of theory and practicl techniques to teach administrators how to install and use security applications, as well as how the applcations work and why they are necesary. 使用 tr 命令大小写转换后,得到如下输出结果:
$ cat testfile | tr a-z A-Z #转换后的输出 LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS, FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS. LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES. IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY. 大小写转换,也可以通过[:lower][:upper]参数来实现。例如使用如下命令:
cat testfile |tr [:lower:] [:upper:] 输出结果如下:
$ cat testfile | tr [:lower:] [:upper:] #转换后的输出 LINUX NETWORKS ARE BECOMING MORE AND MORE COMMON, BUT SCURITY IS OFTEN AN OVERLOOKED ISSUE. UNFORTUNATELY, IN TODAY’S ENVIRONMENT ALL NETWORKS ARE POTENTIAL HACKER TARGETS, FROM TP-SECRET MILITARY RESEARCH NETWORKS TO SMALL HOME LANS. LINUX NETWORK SECURTY FOCUSES ON SECURING LINUX IN A NETWORKED ENVIRONMENT, WHERE THE SECURITY OF THE ENTIRE NETWORK NEEDS TO BE CONSIDERED RATHER THAN JUST ISOLATED MACHINES. IT USES A MIX OF THEORY AND PRACTICL TECHNIQUES TO TEACH ADMINISTRATORS HOW TO INSTALL AND USE SECURITY APPLICATIONS, AS WELL AS HOW THE APPLCATIONS WORK AND WHY THEY ARE NECESARY. |