<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Yulv</title>
    <description>Welcome to my website!</description>
    <link>https://Yulv-git.github.io/</link>
    <atom:link href="https://Yulv-git.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Sun, 07 Jan 2024 15:57:15 +0000</pubDate>
    <lastBuildDate>Sun, 07 Jan 2024 15:57:15 +0000</lastBuildDate>
    <generator>Jekyll v3.9.3</generator>
    
      <item>
        <title>Linux Shell Usage Notes | Linux Shell 命令使用笔记</title>
        <description>&lt;p&gt;PS：本人记录的一些 Linux Shell 命令使用笔记&lt;/p&gt;

&lt;h2 id=&quot;1-用户权限管理&quot;&gt;1. 用户、权限管理&lt;/h2&gt;

&lt;h3 id=&quot;11-创建用户&quot;&gt;1.1. 创建用户&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 创建用户&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;useradd &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; /bin/bsah 用户名
&lt;span class=&quot;c&quot;&gt;# 设置密码&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;passwd 用户名

&lt;span class=&quot;c&quot;&gt;# 指定目录下创建用户&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;useradd &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; /data/home/test &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; /bin/bash &lt;span class=&quot;nb&quot;&gt;test&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 或者：sudo useradd -d /home/test -m test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;12-服务器用户登录&quot;&gt;1.2. 服务器用户登录&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# ssh登录&lt;/span&gt;
ssh 用户名@ip

&lt;span class=&quot;c&quot;&gt;# vocode免密登录&lt;/span&gt;
ssh-keygen &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; rsa &lt;span class=&quot;nt&quot;&gt;-b&lt;/span&gt; 4096  &lt;span class=&quot;c&quot;&gt;# 本地CMD，运行下面命令，生成本地配置文件（若已生成，则用原来生成的）&lt;/span&gt;
scp 本地配置路径/.ssh/id_rsa.pub 用户名@ip地址:~/tmp.pub  &lt;span class=&quot;c&quot;&gt;# 将生成的秘钥（id_rsa.pub），传输到远程服务器&lt;/span&gt;
ssh 用户名@ip地址 &lt;span class=&quot;s2&quot;&gt;&quot;mkdir -p ~/.ssh &amp;amp;&amp;amp; chmod 700 ~/.ssh &amp;amp;&amp;amp; cat ~/tmp.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys &amp;amp;&amp;amp; chmod 600 ~/.ssh/authorized_keys &amp;amp;&amp;amp; rm -f ~/tmp.pub&quot;&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 将秘钥写到远程服务器的ssh配置文件中&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 若因.ssh文件权限改变而无法免密登录，可执行如下命名：&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;chmod &lt;/span&gt;700 /用户主目录/
&lt;span class=&quot;nb&quot;&gt;chmod &lt;/span&gt;700 /用户主目录/.ssh/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;13-权限管理&quot;&gt;1.3. 权限管理&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 把某个文件夹及其内容的权限授权（包括所属权限）给指定用户&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo chown&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; 用户名 文件夹
&lt;span class=&quot;nb&quot;&gt;sudo chown&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; 用户名:组 文件夹  &lt;span class=&quot;c&quot;&gt;# 同时指定用户组&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 给指定用户开通某个文件夹的权限，不包括所属权限&lt;/span&gt;
setfacl &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; u:用户名:rwx 文件夹

&lt;span class=&quot;c&quot;&gt;# 给用户主目录设置权限，使得只有该用户才能访问&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo chmod&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; 700 用户主目录

&lt;span class=&quot;c&quot;&gt;# 设置共享目录，并赋予读写权限&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt; 777 /sharedata

&lt;span class=&quot;c&quot;&gt;# 设置用户所属的群组&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;usermod &lt;span class=&quot;nt&quot;&gt;-g&lt;/span&gt; G1 ahhh  &lt;span class=&quot;c&quot;&gt;# 给将用户ahhh的群组设置为G1&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;usermod &lt;span class=&quot;nt&quot;&gt;-G&lt;/span&gt; G2 ahhh  &lt;span class=&quot;c&quot;&gt;# 此外，再给ahhh设置为另一个群组G2的成员&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 给test用户赋予管理员的权限&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;adduser &lt;span class=&quot;nb&quot;&gt;test sudo&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;2-环境配置&quot;&gt;2. 环境配置&lt;/h2&gt;

&lt;h3 id=&quot;21-python虚拟环境&quot;&gt;2.1. python虚拟环境&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 创建&lt;/span&gt;
conda create &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; 环境名 &lt;span class=&quot;nv&quot;&gt;python&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;X.X
&lt;span class=&quot;c&quot;&gt;# 创建并安装库&lt;/span&gt;
conda create &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; 环境名 numpy matplotlib &lt;span class=&quot;nv&quot;&gt;python&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;X.X

&lt;span class=&quot;c&quot;&gt;# 激活&lt;/span&gt;
conda activate 环境名

&lt;span class=&quot;c&quot;&gt;# 查看已存在的虚拟环境&lt;/span&gt;
conda info &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 或 conda env list  # conda info --envs&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 删除&lt;/span&gt;
conda remove &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; 环境名 &lt;span class=&quot;nt&quot;&gt;--all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;22-conda-镜像源&quot;&gt;2.2. conda 镜像源&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 添加conda清华镜像源&lt;/span&gt;
conda config &lt;span class=&quot;nt&quot;&gt;--add&lt;/span&gt; channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

&lt;span class=&quot;c&quot;&gt;# 换回conda的默认镜像源&lt;/span&gt;
conda config &lt;span class=&quot;nt&quot;&gt;--remove-key&lt;/span&gt; channels
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;23-pip-镜像源&quot;&gt;2.3. pip 镜像源&lt;/h3&gt;

&lt;p&gt;直接在~/.pip/pip.conf（若不存在，则新建该文件）中配置一下信息：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;[global]
index-url = https://pypi.douban.com/simple
[install]
trusted-host = https://pypi.douban.com
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;或者在安装时&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 安装库时，指定镜像源&lt;/span&gt;
pip &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt;  https://mirrors.aliyun.com/pypi/simple/ numpy

&lt;span class=&quot;c&quot;&gt;# 清华：https://pypi.tuna.tsinghua.edu.cn/simple&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 阿里云：http://mirrors.aliyun.com/pypi/simple/&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 华中理工大学：http://pypi.hustunique.com/&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 山东理工大学：http://pypi.sdutlinux.org/&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 豆瓣：http://pypi.douban.com/simple/&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# note：新版ubuntu要求使用https源&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;24-修改cuda版本&quot;&gt;2.4. 修改cuda版本&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; /usr/local  &lt;span class=&quot;c&quot;&gt;# 查看现有的cuda版本，系统会默认使用最新的cuda版本&lt;/span&gt;
vim ~/.bashrc  &lt;span class=&quot;c&quot;&gt;# 打开配置文件，并在最后添加如下内容：&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/local/cuda-10.1/bin:&lt;span class=&quot;nv&quot;&gt;$PATH&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;LD_LIBRARY_PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/local/cuda-10.1/lib64:&lt;span class=&quot;nv&quot;&gt;$LD_LIBRARY_PATH&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 其中，10.1则为要设置的cuda版本&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 重启当前终端，在新的终端中即可使用更改后的cuda&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;25-创建快捷命令&quot;&gt;2.5. 创建快捷命令&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;vim ~/.bashrc  &lt;span class=&quot;c&quot;&gt;# 打开配置文档最后输入:&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;ns&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;nvidia-smi

&lt;span class=&quot;c&quot;&gt;# 保存后，激活配置   &lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;source&lt;/span&gt; ~/.bashrc
&lt;span class=&quot;c&quot;&gt;# 即可使用 ns 快捷命令&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;26-系统变量&quot;&gt;2.6. 系统变量&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;env&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 查看所有系统变量&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;27-远程-本地端口映射&quot;&gt;2.7. 远程-本地，端口映射&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 将远端的地址的端口8888，映射到本地的端口8888&lt;/span&gt;
ssh &lt;span class=&quot;nt&quot;&gt;-L&lt;/span&gt;:8888:localhost:8888 usrname@ip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;3-系统命令&quot;&gt;3. 系统命令&lt;/h2&gt;

&lt;h3 id=&quot;31-cpu&quot;&gt;3.1. cpu&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 物理CPU个数&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /proc/cpuinfo| &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;physical id&quot;&lt;/span&gt;| &lt;span class=&quot;nb&quot;&gt;sort&lt;/span&gt;| &lt;span class=&quot;nb&quot;&gt;uniq&lt;/span&gt;| &lt;span class=&quot;nb&quot;&gt;wc&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 每颗物理CPU的核数&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /proc/cpuinfo| &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;cpu cores&quot;&lt;/span&gt;| &lt;span class=&quot;nb&quot;&gt;uniq&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 逻辑CPU总数&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /proc/cpuinfo| &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;processor&quot;&lt;/span&gt;| &lt;span class=&quot;nb&quot;&gt;wc&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# CPU型号&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /proc/cpuinfo | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;name | &lt;span class=&quot;nb&quot;&gt;cut&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f2&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt;: | &lt;span class=&quot;nb&quot;&gt;uniq&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;32-显卡&quot;&gt;3.2. 显卡&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查看显卡使用情况&lt;/span&gt;
nvidia-smi

&lt;span class=&quot;c&quot;&gt;# 如果有几秒钟的延时，可管理员运行&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;nvidia-persistenced &lt;span class=&quot;nt&quot;&gt;--persistence-mode&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 或者，下面的命令也可以提升nvidia-smi运行速度&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo&lt;/span&gt; /usr/bin/nvidia-persistenced &lt;span class=&quot;nt&quot;&gt;--verbose&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查看0号、1号显卡的 当前温度、关机温度、减速温度&lt;/span&gt;
nvidia-smi &lt;span class=&quot;nt&quot;&gt;-q&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; 0,1 &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; TEMPERATURE

&lt;span class=&quot;c&quot;&gt;# 实时刷新并高亮显示状态&lt;/span&gt;
watch &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; 1 &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; nvidia-smi &lt;span class=&quot;c&quot;&gt;# 或用Python库查看：watch -n 1 -d gpustat -cpu&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;33-操作系统版本信息&quot;&gt;3.3. 操作系统版本信息&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; /proc/version  &lt;span class=&quot;c&quot;&gt;# Linux查看当前操作系统版本信息&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;34-ip&quot;&gt;3.4. ip&lt;/h3&gt;

&lt;h4 id=&quot;341-查看ip&quot;&gt;3.4.1. 查看ip&lt;/h4&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查看服务器ip&lt;/span&gt;
ip addr  &lt;span class=&quot;c&quot;&gt;# inet 便是ip地址&lt;/span&gt;
ifconfig  &lt;span class=&quot;c&quot;&gt;# inet 便是ip地址&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;342-修改ip&quot;&gt;3.4.2. 修改ip&lt;/h4&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ifconfig eth0 192.168.12.22  &lt;span class=&quot;c&quot;&gt;# 重启后无效&lt;/span&gt;

vim /etc/sysconfig/network-scripts/ifcfg-eth0  &lt;span class=&quot;c&quot;&gt;# 重启后永久生效&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;35-用户&quot;&gt;3.5. 用户&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查询当前登录的用户&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;who&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查询当前登录的用户，及其相关信息&lt;/span&gt;
w
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;36-进程&quot;&gt;3.6. 进程&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查看&lt;/span&gt;
top  &lt;span class=&quot;c&quot;&gt;# 当前所有进程，类似windows的任务管理器&lt;/span&gt;
fuser /dev/nvidia&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 查看当前用户在某张显卡上运行的进程&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;fuser &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; /dev/nvidia&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 查看所有用户在某张显卡上运行的进程&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查询某个PID是哪个用户的&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /proc/PID  &lt;span class=&quot;c&quot;&gt;# 进入对应进程的路径，输入 ll 即可查询该路径文件的所有者，即该PID所属用户&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 关掉&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;kill &lt;/span&gt;PID
&lt;span class=&quot;c&quot;&gt;# 强制关掉&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-9&lt;/span&gt; PID

&lt;span class=&quot;c&quot;&gt;# 杀死指定用户所有进程&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-9&lt;/span&gt; &lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;ps &lt;span class=&quot;nt&quot;&gt;-ef&lt;/span&gt; | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;hnlinux&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 方法一 过滤出hnlinux用户进程 &lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; hnlinux  &lt;span class=&quot;c&quot;&gt;# 方法二&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查看僵尸进程&lt;/span&gt;
ps &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-ostat&lt;/span&gt;,ppid,pid,cmd | &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'^[zZ]'&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 杀死僵尸进程（上面得到的PID中的第一个为父进程，杀死父进程即可）&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;kill&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-HUP&lt;/span&gt; ppid
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;37-内存空间&quot;&gt;3.7. 内存空间&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查看CPU空余&lt;/span&gt;
free &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查看磁盘内存空间&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;38-开机自启&quot;&gt;3.8. 开机自启&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;编写需要开机自启的sh脚本，或者添加到适当的现有sh脚本中。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;例如 autorunFFF.sh：&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /home/XXX/FFF

&lt;span class=&quot;nb&quot;&gt;nohup &lt;/span&gt;java &lt;span class=&quot;nt&quot;&gt;-jar&lt;/span&gt; FFF.jar &lt;span class=&quot;nt&quot;&gt;-start&lt;/span&gt; &amp;amp; &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$!&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;设置脚本权限&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;chmod &lt;/span&gt;755 autorunFFF.sh
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;将脚本移动到/etc/init.d目录下&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo mv &lt;/span&gt;autorunFFF.sh /etc/init.d/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;更新脚本优先级&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /etc/init.d/
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;update-rc.d autorunFFF.sh defaults 90
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;若要取消该开机自启脚本程序，则：&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /etc/init.d/
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;update-rc.d &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; autorunFFF.sh remove
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;4-字符匹配&quot;&gt;4. 字符匹配&lt;/h2&gt;

&lt;h3 id=&quot;41-通配符&quot;&gt;4.1. 通配符&lt;/h3&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;通配符&lt;/td&gt;
      &lt;td&gt;含义&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;*&lt;/td&gt;
      &lt;td&gt;文件代表文件名中所有字符&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls te*&lt;/td&gt;
      &lt;td&gt;查找以 te 开头的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls *html&lt;/td&gt;
      &lt;td&gt;查找结尾为 html 的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;？&lt;/td&gt;
      &lt;td&gt;代表文件名中任意一个字符&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls ?.c&lt;/td&gt;
      &lt;td&gt;只找第一个字符任意，后缀为 .c 的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls a.?&lt;/td&gt;
      &lt;td&gt;只找只有 3 个字符，前 2 字符为 a. ，最后一个字符任意的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;[] “[” 和 “]”&lt;/td&gt;
      &lt;td&gt;将字符组括起来，表示可以匹配字符组中的任意一个。“-” 用于表示字符范围。&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;[abc]&lt;/td&gt;
      &lt;td&gt;匹配 a、b、c 中的任意一个&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;[a-f]&lt;/td&gt;
      &lt;td&gt;匹配从 a 到 f 范围内的任意一个字符&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls [a-f]*&lt;/td&gt;
      &lt;td&gt;找到从 a 到 f 范围内的任意一个字符开头的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls a-f&lt;/td&gt;
      &lt;td&gt;查找文件名为 a-f 的文件,当 “-” 处于方括号之外失去通配符的作用&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;\&lt;/td&gt;
      &lt;td&gt;如果要使通配符作为普通字符使用，可以在其前面加上转义字符。“?” 和 “*” 处于方括号内时不用使用转义字符就失去通配符的作用。&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;ls *a&lt;/td&gt;
      &lt;td&gt;查找文件名为 *a 的文件&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;42-grep-全局正则表达式输出&quot;&gt;4.2. grep 全局正则表达式输出&lt;/h3&gt;

&lt;p&gt;grep (global regular expression print，全局正则表达式输出)，是一个搜索工具。&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 例1 在文件中查找模式（单词）&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;ahhh /etc/passwd

&lt;span class=&quot;c&quot;&gt;# 例2 在多个文件中查找模式&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;ahhh /etc/passwd /etc/shadow /etc/gshadow

&lt;span class=&quot;c&quot;&gt;# 例3 使用-l参数列出包含指定模式的文件的文件名&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-l&lt;/span&gt; ahhh /etc/passwd /etc/shadow /etc/fstab /etc/mtab

&lt;span class=&quot;c&quot;&gt;# 例4 使用-n参数，在文件中查找指定模式并显示匹配行的行号&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-n&lt;/span&gt; ahhh /etc/passwd

&lt;span class=&quot;c&quot;&gt;# 例5 使用-v参数输出不包含指定模式的行&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; ahhh /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 输出/etc/passwd文件中所有不含单词“ahhh”的行&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例6 使用 ^ 符号输出所有以某指定模式开头的行&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; ^root /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 输出/etc/passes文件中所有以“root”开头的行&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例7 使用 $ 符号输出所有以指定模式结尾的行。&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;bash&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;/etc/passwd  &lt;span class=&quot;c&quot;&gt;# 输出/etc/passwd文件中所有以“bash”结尾的行&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例8 使用 -r 参数递归地查找特定模式&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; ahhh /etc/  &lt;span class=&quot;c&quot;&gt;# 递归的在/etc目录中查找“ahhh”单词&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例9 使用 grep 查找文件中所有的空行&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; ^&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;/etc/shadow

&lt;span class=&quot;c&quot;&gt;# 例10 使用 -i 参数（忽略字符的大小写）查找模式&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; ahhh /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 在paswd文件中查找“ahhh”单词&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例11 使用 -e 参数查找多个模式&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;ahhh&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;root&quot;&lt;/span&gt; /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 在一条grep命令中查找‘ahhh’和‘root’单词&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例12 使用 -f 用文件指定待查找的模式&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; grep_pattern /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 使用grep_pattern文件进行搜索&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 例13 使用 -c 参数计算模式匹配到的数量&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; grep_pattern /etc/passwd

&lt;span class=&quot;c&quot;&gt;# 例14 输出匹配指定模式行的前或者后面N行&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-B&lt;/span&gt; 4 &lt;span class=&quot;s2&quot;&gt;&quot;games&quot;&lt;/span&gt; /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 使用-B参数输出匹配行的前4行&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt; 4 &lt;span class=&quot;s2&quot;&gt;&quot;games&quot;&lt;/span&gt; /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 使用-A参数输出匹配行的后4行&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-C&lt;/span&gt; 4 &lt;span class=&quot;s2&quot;&gt;&quot;games&quot;&lt;/span&gt; /etc/passwd  &lt;span class=&quot;c&quot;&gt;# 使用-C参数输出匹配行的前后各4行&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;5-文件管理&quot;&gt;5. 文件管理&lt;/h2&gt;

&lt;h3 id=&quot;51-文件大小&quot;&gt;5.1. 文件大小&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 查看当前目录下所有文件总共的内存占用大小&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-sh&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 查看当前目录下，所有文件夹的内存占用大小&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# 查看当前目录下，各一级目录的内存占用大小&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--max-depth&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;1  &lt;span class=&quot;c&quot;&gt;# 1 表示第一级目录&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;52-复制文件&quot;&gt;5.2. 复制文件&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c&quot;&gt;# 同一服务器下，复制文件夹及其内容&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; /&lt;span class=&quot;k&quot;&gt;**&lt;/span&gt;/&lt;span class=&quot;k&quot;&gt;***&lt;/span&gt;/文件夹名 /&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;/存放复制的文件夹的文件夹名

&lt;span class=&quot;c&quot;&gt;# 不同服务器之间，复制文件夹及其内容&lt;/span&gt;
scp &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; root@ip:/&lt;span class=&quot;k&quot;&gt;**&lt;/span&gt;/&lt;span class=&quot;k&quot;&gt;***&lt;/span&gt;/文件夹名 /&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;/存放复制的文件夹的文件夹名
scp &lt;span class=&quot;nt&quot;&gt;-P&lt;/span&gt; 端口号 &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; root@服务器ip:/home/wwwroot/.&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt; /Users/apple/Desktop/  &lt;span class=&quot;c&quot;&gt;# 指定端口号&lt;/span&gt;

&lt;span class=&quot;c&quot;&gt;# 复制时自动输入密码：&lt;/span&gt;
sshpass &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; 密码 scp &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; root@ip:/&lt;span class=&quot;k&quot;&gt;**&lt;/span&gt;/&lt;span class=&quot;k&quot;&gt;***&lt;/span&gt;/文件夹名 /&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;/存放复制的文件夹的文件夹名
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;53-输出重定向命令&quot;&gt;5.3. 输出重定向命令&lt;/h3&gt;

&lt;p&gt;Linux 允许将命令执行结果重定向到一个文件，本应显示在终端上的内容保存到指定文件中。如：&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; test.txt   &lt;span class=&quot;c&quot;&gt;# test.txt 如果不存在，则创建，存在则覆盖其内容&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; test.txt 2&amp;gt;&amp;amp;1  &lt;span class=&quot;c&quot;&gt;# 2&amp;gt;&amp;amp;1：将标准错误输出重定向到标准输出&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;注意： &amp;gt; 输出重定向会覆盖原来的内容， » 输出重定向则会追加到文件的尾部。&lt;/p&gt;

&lt;h3 id=&quot;54-查找文件&quot;&gt;5.4. 查找文件&lt;/h3&gt;

&lt;h4 id=&quot;541-find&quot;&gt;5.4.1. find&lt;/h4&gt;

&lt;p&gt;find 命令功能非常强大，通常用来在特定的目录下搜索符合条件的文件，也可以用来搜索特定用户属主的文件。&lt;/p&gt;

&lt;p&gt;常用用法：&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;命令&lt;/td&gt;
      &lt;td&gt;含义&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find ./ -name test.sh&lt;/td&gt;
      &lt;td&gt;查找当前目录下所有名为test.sh的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find ./ -name ‘*.sh’&lt;/td&gt;
      &lt;td&gt;查找当前目录下所有后缀为.sh的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find ./ -name “[A-Z]*”&lt;/td&gt;
      &lt;td&gt;查找当前目录下所有以大写字母开头的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find /tmp -size 2M&lt;/td&gt;
      &lt;td&gt;查找在/tmp 目录下等于2M的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find /tmp -size +2M&lt;/td&gt;
      &lt;td&gt;查找在/tmp 目录下大于2M的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find /tmp -size -2M&lt;/td&gt;
      &lt;td&gt;查找在/tmp 目录下小于2M的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find ./ -size +4k -size -5M&lt;/td&gt;
      &lt;td&gt;查找当前目录下大于4k，小于5M的文件&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find ./ -perm 0777&lt;/td&gt;
      &lt;td&gt;查找当前目录下权限为 777 的文件或目录&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;find / -name “hadooop*” -exec rm {} \;&lt;/td&gt;
      &lt;td&gt;查找并删除&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;55-创建文件&quot;&gt;5.5. 创建文件&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;touch &lt;/span&gt;test.out  &lt;span class=&quot;c&quot;&gt;# 创建单个文件&lt;/span&gt;

&lt;span class=&quot;nb&quot;&gt;touch&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;test1.log, cache2.txt&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 同时创建两个文件&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;6-历史命令&quot;&gt;6. 历史命令&lt;/h2&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;history&lt;/span&gt;  &lt;span class=&quot;c&quot;&gt;# 显示命令历史&lt;/span&gt;

Ctrl+r  &lt;span class=&quot;c&quot;&gt;# 搜索历史命令&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Sun, 29 May 2022 00:00:00 +0000</pubDate>
        <link>https://Yulv-git.github.io/2022/05/Linux-Shell-Usage-Notes/</link>
        <guid isPermaLink="true">https://Yulv-git.github.io/2022/05/Linux-Shell-Usage-Notes/</guid>
        
        <category>Linux</category>
        
        <category>Shell</category>
        
        
      </item>
    
      <item>
        <title>SSH security defense after server is hacked and mined | 服务器被黑客攻击和被挖矿之后的SSH安全防御</title>
        <description>&lt;p&gt;PS：本人非专业网络安全攻防人员，仅为个人实践经验。本文可能难免有不当之处，欢迎您的讨论和指导。&lt;/p&gt;

&lt;h2 id=&quot;1-确定服务器是否被黑客攻击和被挖矿&quot;&gt;1. 确定服务器是否被黑客攻击和被挖矿&lt;/h2&gt;

&lt;p&gt;确认服务器是否出现被黑客攻击和被挖矿等异常情况的方法有：&lt;/p&gt;

&lt;h3 id=&quot;11-查看显卡使用是否异常&quot;&gt;1.1. 查看显卡使用是否异常&lt;/h3&gt;

&lt;p&gt;使用&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nvidia-smi&lt;/code&gt;或其他命令发现显卡使用出现异常，如：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;显卡被某用户的不明进程占用，且利用率很高甚至为100%。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;12-查看进程信息是否异常&quot;&gt;1.2. 查看进程信息是否异常&lt;/h3&gt;

&lt;p&gt;使用&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top&lt;/code&gt;或其他命令发现进程出现异常，如：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;某用户的进程运行命令中出现了&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;eth&lt;/code&gt;、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;coin&lt;/code&gt;、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wallet&lt;/code&gt;、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pool&lt;/code&gt;或其他与挖矿相关的参数。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;PS：黑客经常很狡猾的，会将挖矿程序改成python或其他常用的程序的名字，其运行参数也可能改成其他名字，故有时较难发现某进程是否为挖矿进程。&lt;/p&gt;

&lt;h3 id=&quot;13-查看登录用户信息是否异常&quot;&gt;1.3. 查看登录用户信息是否异常&lt;/h3&gt;

&lt;p&gt;使用&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;last&lt;/code&gt;或其他命令发现某用户的登录出现异常，如：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;登录时间&lt;/code&gt;异常（非内部人员服务器使用习惯的登录时间，比如在三更半夜时登录）；&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;登录ip&lt;/code&gt;异常（非已知的内部人员所用网络设备的ip，比如外网甚至是国外的ip，比如校园网内其他非内部人员的ip）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;14-查看可能异常用户是否有异常文件&quot;&gt;1.4. 查看可能异常用户是否有异常文件&lt;/h3&gt;

&lt;p&gt;若发现某用户的文件中存在一些挖矿相关配置的文件或者程序，则该用户很可能被用来进行过挖矿等异常操作。和该用户沟通确认后，对挖矿或其他异常操作的文件或程序进行删除。挖矿相关配置文件示例（黑客在root用户目录的./.cache/.x/目录的config.ini的挖矿配置信息）：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog/ETH_show.png&quot; alt=&quot;ETH_show&quot; /&gt;&lt;/p&gt;

&lt;p&gt;PS：黑客可能比较狡猾，将进行异常操作的文件或程序命名为不容易察觉的名字或者存放到不容易发现的地方。&lt;/p&gt;

&lt;h2 id=&quot;2-设置ssh安全防御&quot;&gt;2. 设置SSH安全防御&lt;/h2&gt;

&lt;p&gt;配置hosts.allow和hosts.deny文件来过滤通过SSH连接服务器的ip，设置流程如下：&lt;/p&gt;

&lt;h3 id=&quot;21-配置hostsallow&quot;&gt;2.1. 配置hosts.allow&lt;/h3&gt;

&lt;p&gt;在&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts.allow&lt;/code&gt;文件中添加如下内容：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;sshd:192.168.1.108
sshd:192.168.2.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;其中，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sshd:192.168.1.108&lt;/code&gt;是允许单个ip进行SSH访问，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sshd:192.168.2.&lt;/code&gt;是允许ip段内的所有ip进行SSH访问。&lt;/p&gt;

&lt;h3 id=&quot;22-配置hostsdeny&quot;&gt;2.2. 配置hosts.deny&lt;/h3&gt;

&lt;p&gt;在&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts.deny&lt;/code&gt;文件中添加如下内容：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;sshd:ALL
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;其中，&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sshd:ALL&lt;/code&gt;是禁止除了&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts.allow&lt;/code&gt;中允许的ip之外的所有其他ip进行SSH访问（hosts.allow权限等级高于hosts.deny）。&lt;/p&gt;

&lt;h3 id=&quot;23-重启ssh服务&quot;&gt;2.3. 重启SSH服务&lt;/h3&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service sshd  restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;3-验证ssh安全防御效果&quot;&gt;3. 验证SSH安全防御效果&lt;/h2&gt;

&lt;p&gt;查看&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/var/log/auth.log&lt;/code&gt;或其他登录日志文件（如/var/log/auth.log.1），确定是否有&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts.allow&lt;/code&gt;中允许的ip之外的ip被成功禁止了SSH访问。可用如下命令查看：&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo cat&lt;/span&gt; /var/log/auth.log | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;refused
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog/SSH_refused_show.png&quot; alt=&quot;SSH_refused_show&quot; /&gt;&lt;/p&gt;

&lt;p&gt;此处，公示下某个一直尝试爆破我所用服务器的校园内的ip（至今被探查到连接失败就有54555次）:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;54555  Apr 28 08:07:17 amax sshd[852562]: refused connect from 172.31.111.189 (172.31.111.189)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;PS：若您在设置SSH安全防御之后，黑客没有再通过SSH攻击您的服务器，那可能没有被禁止访问的ip记录。此时，您可将您现有某个ip不放到&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts.allow&lt;/code&gt;中，并拿其来连接您的服务器就会有其访问记录了。&lt;/p&gt;
</description>
        <pubDate>Wed, 04 May 2022 00:00:00 +0000</pubDate>
        <link>https://Yulv-git.github.io/2022/05/Server-SSH-Security-Defense/</link>
        <guid isPermaLink="true">https://Yulv-git.github.io/2022/05/Server-SSH-Security-Defense/</guid>
        
        <category>Server</category>
        
        
      </item>
    
      <item>
        <title>Hello World</title>
        <description>&lt;h2 id=&quot;hello-im-yulv-&quot;&gt;Hello! I’m Yulv 👋&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;🌱 I’m currently learning AI research algorithms - computer vision.&lt;/li&gt;
  &lt;li&gt;😄 I’m interested in computer vision, medical image computing, NLP, etc.&lt;/li&gt;
  &lt;li&gt;📫 &lt;a href=&quot;mailto:yulvchi@qq.com&quot; target=&quot;_blank&quot;&gt;yulvchi@qq.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;hobby-&quot;&gt;Hobby ⛹&lt;/h2&gt;

&lt;p&gt;My hobbies are running, playing badminton, playing table tennis and so on.&lt;/p&gt;

&lt;h2 id=&quot;github-stats-&quot;&gt;GitHub Stats ⚡&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/Yulv-git&quot;&gt;&lt;img height=&quot;180em&quot; src=&quot;https://github-readme-stats.vercel.app/api?username=Yulv-git&amp;amp;show_icons=true&amp;amp;include_all_commits=true&amp;amp;count_private=true&amp;amp;hide_border=true&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://github.com/Yulv-git&quot;&gt;&lt;img height=&quot;180em&quot; src=&quot;https://github-readme-stats.vercel.app/api/top-langs/?username=Yulv-git&amp;amp;show_icons=true&amp;amp;hide_border=true&amp;amp;layout=compact&amp;amp;langs_count=12&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;details open=&quot;&quot;&gt;
    &lt;summary&gt;&lt;b&gt;🔭 GitHub Pinned&lt;/b&gt;&lt;/summary&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Awesome-Ultrasound-Standard-Plane-Detection&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Awesome-Ultrasound-Standard-Plane-Detection&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Model_Inference_Deployment&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Model_Inference_Deployment&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Campus_network_OM_WAL&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Campus_network_OM_WAL&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Correlation_and_Agreement_Analysis&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Correlation_and_Agreement_Analysis&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Search-for-Typos&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Search-for-Typos&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
        &lt;a href=&quot;https://github.com/Yulv-git/Master-Thesis-LaTeX-Template-of-SZU&quot;&gt;&lt;img width=&quot;370em&quot; height=&quot;150em&quot; src=&quot;https://github-readme-stats.vercel.app/api/pin/?username=Yulv-git&amp;amp;repo=Master-Thesis-LaTeX-Template-of-SZU&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/details&gt;
</description>
        <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
        <link>https://Yulv-git.github.io/2022/05/Hello-World/</link>
        <guid isPermaLink="true">https://Yulv-git.github.io/2022/05/Hello-World/</guid>
        
        <category>Yulv</category>
        
        
      </item>
    
  </channel>
</rss>
