CentOS 7

CentOS7下的各种应用


常用命令+工具

<p>[TOC]</p> <p>-目录</p> <pre><code class="language-bash">1、安装gcc、c++编译器以及内核文件 2、Windows命令robocopy 3.如何在sed中使用变量 4.Windows下FAT32格式U盘转换成NFS格式命令 5.vi/vim字符串替换 6.使用grep排除空行和注释行 7.Linux下,用命令进行 大文件(日志)分割、合并 8 linux gz 解压缩 9、pstree 10、pgrep 10.回车与换行 11.disown命令</code></pre> <h4>1、安装gcc、c++编译器以及内核文件</h4> <p><code>yum -y install gcc gcc-c++ kernel-devel</code> CentOS8下make安装</p> <pre><code class="language-bash">dnf -y install gcc automake autoconf libtool make dnf -y install gcc gcc-c++</code></pre> <h4>2、Windows命令robocopy</h4> <p><a href="http://blog.chinaunix.net/uid-26782198-id-3265496.html">http://blog.chinaunix.net/uid-26782198-id-3265496.html</a> <a href="https://www.cnblogs.com/xinyuxin912/archive/2013/07/10/3181564.html">https://www.cnblogs.com/xinyuxin912/archive/2013/07/10/3181564.html</a></p> <h4>3、Linux rysnc命令</h4> <p><a href="https://blog.csdn.net/wana_one_gy/article/details/82557309">https://blog.csdn.net/wana_one_gy/article/details/82557309</a> <a href="https://www.cnblogs.com/f-ck-need-u/p/7220009.html">https://www.cnblogs.com/f-ck-need-u/p/7220009.html</a> <a href="https://www.cnblogs.com/fuhai0815/p/10238255.html">https://www.cnblogs.com/fuhai0815/p/10238255.html</a></p> <h3>3.如何在sed中使用变量</h3> <p>在sed条件中是不认识变量取值的,解决办法就是:把&quot;单引号&quot;变成&quot;双引号&quot; 原语句:</p> <pre><code class="language-bash">sed -i 's/localhost.domain/$HTNAME/g' /etc/hostname</code></pre> <p>把&quot;单引号&quot;变成&quot;双引号&quot;,修改后语句:</p> <pre><code class="language-bash">sed -i "s/localhost.domain/$HTNAME/g" /etc/hostname</code></pre> <h3>4.Windows下FAT32格式U盘转换成NFS格式命令</h3> <pre><code class="language-bash">convert i: /fs:ntfs</code></pre> <h3>5.vi/vim字符串替换</h3> <pre><code class="language-bash">:%s/vivian/sky/g 替换每一行中所有 vivian 为 sky (等同于 :g/vivian/s//sky/g) </code></pre> <p>更多的替换方法详见: <a href="https://www.cnblogs.com/black/p/5171633.html">https://www.cnblogs.com/black/p/5171633.html</a></p> <h3>6.使用grep排除空行和注释行</h3> <p><strong>grep的排除选项为 -v</strong></p> <p>排除空行的命令是:</p> <pre><code class="language-bash">grep -v '^$' filename</code></pre> <p>排除以#注释的命令是:</p> <pre><code class="language-bash">grep -v '^#' filename</code></pre> <p>结合起来就是,既排除空行又排除注释行的命令</p> <pre><code class="language-bash">grep -v "^#" nova.conf | grep -v "^$"</code></pre> <pre><code class="language-bash">grep去除空行与注释行的三种方式 cat elasticsearch.yml | grep -v ^# |grep -v ^$ grep "^[^#]" kk.txt 不以#字符的其他字符 开头的。因为[ ]指定了是单个字符,所以就把空行排除了 grep -v "^$\|[#;]" kk.txt ////这个是 ^$ 或者 含有#的,^被或者符 分开了,^过不去的 grep -v "^$\|^#" kk.txt /////既然过不去那就只能 在后面加上^了</code></pre> <h3>7.Linux下,用命令进行 大文件(日志)分割、合并</h3> <h4>7.1.指定文件大小分割:</h4> <p>以每个文本文件10M方式分割日志</p> <pre><code class="language-bash">split -b 10m catalina.out imsoft</code></pre> <h4>7.2.大文件合并</h4> <pre><code class="language-bash">cat small_file* &gt; large_file</code></pre> <h3>8 linux gz 解压缩</h3> <pre><code class="language-bash">Linux压缩保留源文件的方法: gzip –c filename &gt; filename.gz Linux解压缩保留源文件的方法: gunzip –c filename.gz &gt; filename gunzip的用法 1.作用 gunzip命令作用是解压文件,使用权限是所有用户。 2.格式 gunzip [-acfhlLnNqrtvV][-s ][文件...] 或者gunzip [-acfhlLnNqrtvV][-s ][目录] 3.主要参数 -a或--ascii:使用ASCII文字模式。 -c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。 -f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。 -h或--help:在线帮助。 -l或--list:列出压缩文件的相关信息。 -L或--license:显示版本与版权信息。 -n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。 -N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。 -q或--quiet:不显示警告信息。 -r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。 -S或--suffix:更改压缩字尾字符串。 -t或--test:测试压缩文件是否正确无误。 -v或--verbose:显示指令执行过程。 -V或--version:显示版本信息。 4.说明 gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。</code></pre> <h3>9、pstree</h3> <p>在 Fedora/Red Hat/CentOS 上安装pstree yum -y install psmisc <a href="https://www.cnblogs.com/alongdidi/archive/2019/08/06/linux_process.html">https://www.cnblogs.com/alongdidi/archive/2019/08/06/linux_process.html</a></p> <h3>10、pgrep</h3> <p>查看进程专用工具-----pgrep 系统最小化安装就有这命令 <a href="https://blog.51cto.com/12790236/1981861https://blog.51cto.com/12790236/1981861">https://blog.51cto.com/12790236/1981861https://blog.51cto.com/12790236/1981861</a></p> <h3>10.回车与换行</h3> <p><a href="https://cloud.tencent.com/developer/article/1423461">https://cloud.tencent.com/developer/article/1423461</a> 仅回车换行</p> <pre><code class="language-bash">echo -e "\r"</code></pre> <p>回车换行并一空行</p> <pre><code class="language-bash">echo -e "\n"</code></pre> <h3>11.disown命令</h3> <p>disown命令可以从当前shell的作业列表中移除全部作业,也可移除指定的一到多个作业;正在运行的作业也可以移除;也可以标记作业,使得它们在当前shell退出后也不会结束。</p> <p>该命令需要set选项monitor处于开启状态时才能执行;查看作业控制状态:输入set -o查看 monitor行;执行set -o monitor或set -m开启该选项。disown命令该命令是bash内建命令,相关的帮助信息请查看help命令。</p> <h4>语法格式</h4> <p>disown [参数] [标识符or进程ID]</p> <h4>常用参数</h4> <p>-h 标记每个作业标识符,这些作业将不会在shell接收到sighup信号时接收到sighup信号 -a 移除所有的作业 -r 移除运行的作业</p> <h4>参考实例</h4> <p>删除全部作业:</p> <pre><code class="language-bash">disown -a</code></pre> <p>删除运行状态的作业:</p> <pre><code class="language-bash">disown -r</code></pre> <p>根据jobId,移出指定的后台任务:</p> <pre><code class="language-bash">jobs -l disown %2 disown -h %2 ```bash # 演示 -h 选项作用 sleep 90 &amp; [1] 109080 jobs -l [1]+ 109080 Running sleep 90 &amp; disown -h %1 exit # 此时前一个终端已经关闭,现在打开新终端查找该作业。 pgrep -a -u user2 -f 'sleep 90' 或 ps -ef |grep sleep 109080 sleep 90</code></pre> <h3>12 vim tab设置为4个空格</h3> <p><a href="https://blog.csdn.net/jiang1013nan/article/details/6298727">https://blog.csdn.net/jiang1013nan/article/details/6298727</a></p> <h3>13 Linux expr命令</h3> <p><a href="https://www.runoob.com/linux/linux-comm-expr.html">https://www.runoob.com/linux/linux-comm-expr.html</a></p> <h3>14 禁ping配置</h3> <pre><code class="language-bash">firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop' firewall-cmd --reload</code></pre> <p>取消禁ping</p> <pre><code class="language-bash">firewall-cmd --remove-rich-rule='rule protocol value=icmp drop' firewall-cmd --reload</code></pre> <h3>15.SSH自动断开连接的原因和解决办法|SSH保持长连接方法</h3> <p>export TMOUT 在CentOS7中没有,则添加即可。</p> <pre><code class="language-bash">vim /etc/profile中 export TMOUT=300 改为: export TMOUT=0 vim /etc/ssh/sshd_config 中 将下面两句前的#去掉 #ClientAliveInterval 0 #ClientAliveCountMax 3 并ClientAliveInterval 0 改成 ClientAliveInterval 60</code></pre> <p>shell脚本</p> <pre><code class="language-bash">sudo sed -i 's/^export TMOUT=.*/export TMOUT=0/' /etc/profile &amp;&amp;sudo sed -i "/#ClientAliveInterval/a\ClientAliveInterval 60" /etc/ssh/sshd_config &amp;&amp;sudo sed -i "/#ClientAliveInterval/d" /etc/ssh/sshd_config &amp;&amp;sudo sed -i '/ClientAliveCountMax/ s/^#//' /etc/ssh/sshd_config &amp;&amp;sudo /bin/systemctl restart sshd.service</code></pre>

页面列表

ITEM_HTML