Sum's blog Sum's blog
  • 知识

    • Markdown语法
    • ASCII (opens new window)
    • 缩略语
  • 语言篇

    • C
    • C++
    • C#
    • Python
    • Verilog
  • 必备篇

    • Git
    • Linux
    • 环境搭建
  • 工作专项

    • WLAN从入门到精通 Wi-Fi 6
    • 企业WLAN架构与技术
  • Games

    • CSGO
  • Evan's

    • OtherBlog
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 摘抄
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Sum

有苦吗我有时间
  • 知识

    • Markdown语法
    • ASCII (opens new window)
    • 缩略语
  • 语言篇

    • C
    • C++
    • C#
    • Python
    • Verilog
  • 必备篇

    • Git
    • Linux
    • 环境搭建
  • 工作专项

    • WLAN从入门到精通 Wi-Fi 6
    • 企业WLAN架构与技术
  • Games

    • CSGO
  • Evan's

    • OtherBlog
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 摘抄
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 语言篇

  • 必备篇

    • Git笔记
    • Linux

      • Linux历史拓展
      • Linux命令大全
      • Linux必备操作
        • Linux常见错误
      • 环境搭建

      • 编程更好地可视化
    • 工作专项篇

    • games

    • 笔记
    • 必备篇
    • Linux
    wangzhe
    2021-11-16
    目录

    Linux必备操作

    # 1. Linux给用户添加sudo权限

    linux给用户添加sudo权限:
    有时候,linux下面运行sudo命令,会提示类似:
    xxxis not in the sudoers file. This incident will be reported.
    这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决:

    1. 进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
    2. 添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。
    3. 编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。
    4. 撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。
      然后就行了。

    # 2. VIM基本操作

    # 1.查找某个字符串

    # 在命令模式下,输入/str
    :/str
    
    #输入n,查找下一个
    #输入N,查找上一个
    
    1
    2
    3
    4
    5

    # 2.跳转到某行

    # 第一种
    # 在命令模式下,直接输数字即可
    :$ # 最后一行
    :n # 跳转到第n行
    
    # 第二种
    shift+g # 跳转到最后一行
    gg      # 跳转到第一行
    command+上下箭头
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 3.显示行号

    : set nu
    
    1

    # 4.复制部分

    
    
    1

    Vim 有以下几个模式:

    • 正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都可以通过键盘上的 Esc 键回到正常模式。
    • 命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
    • 插入(insert)模式,输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。
    • 可视(visual)模式,用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。
    • 选择(select)模式,与普通的 Windows 编辑器较为接近的选择文本块的方式;在以可视模式和选择模式之一选定文本块之后,可以使用“Ctrl-G”切换到另一模式——该模式很少在 Linux 上使用

    编辑-->输入:

    i: 在当前光标所在字符的前面,转为输入模式;   
    a: 在当前光标所在字符的后面,转为输入模式;    
    o: 在当前光标所在行的下方,新建一行,并转为输入模式;    
    I:在当前光标所在行的行首,转换为输入模式    
    A:在当前光标所在行的行尾,转换为输入模式    
    O:在当前光标所在行的上方,新建一行,并转为输入模式;
    
    1
    2
    3
    4
    5
    6

    输入-->编辑:

    ESC
    
    1

    编辑-->末行:

    :
    
    1

    末行-->编辑:

    ESC, ESC
    
    1

    注:输入模式和末行模式之间不能直接切换,默认处于编辑模式

    关闭文件

    末行模式关闭文件

    :q  退出
    :wq 保存并退出
    :q! 不保存并退出
    :w 保存
    :w! 强行保存
    :wq --> :x
    
    1
    2
    3
    4
    5
    6

    编辑模式下退出

    ZZ: 保存并退出
    使用vim编辑多个文件
    
    1
    2
    vim FILE1 FILE2 FILE3
    :next 切换至下一个文件
    :prev 切换至前一个文件
    :last 切换至最后一个文件
    :first 切换至第一个文件
    :q退出当前文件
    :qa 全部退出
    
    1
    2
    3
    4
    5
    6
    7
    yy|2yy 复制行
    dd|2dd 删除、剪切行
    p粘贴到下一行
    P粘贴到上一行
    ^|$定位到行首,行尾
    dG从当前行删到文档最后一行
    
    1
    2
    3
    4
    5
    6
    w 下一個word
    W 下一個word(跳過標點符號)
    b  前一個word
    e  跳到目前word的尾端
    
    0  跳到目前行的開頭
    ^ 跳到目前行第一個非空白字元
    $  跳到行尾:
    
    /xxxx  搜尋xxxx
    #  往前搜尋目前游標所在的字(word)
    *  往後搜尋目前游標所在的字(word)
    fx  在目前行往後搜尋字元x
    gd  跳到目前游標所在的字(word)的定義位置
    
    :split  分割視窗(可加檔名順便開啟另一檔案)
    :diffsplit xxx  以分割視窗和檔案xxx做比較(diff)
    Ctrl-W p  跳到前一個分割視窗(在兩個分割窗來回切換)
    Ctrl-W j  跳到下面的分割窗
    Ctrl-W h  跳到左邊的分割窗
    Ctrl-W k  跳到上面的分割窗
    Ctrl-W l  跳到右邊的分割窗
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    # 3. nginx配置SSL

    # 1 . 开启防火墙

    查看已开启的端口 firewall-cmd --list-port

    开启端口 firewall-cmd --zone=public --add-port=18083/tcp --permanent

    重启防火墙 systemctl restart firewalld

    netstat -nupl (UDP类型的端口)
    netstat -ntpl (TCP类型的端口)
    你可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:
    lsof -i:80
    如果有显示说明已经开放了,如果没有显示说明没有开放。

    附:
    TCP 21端口:FTP 文件传输服务
    TCP 23端口:TELNET 终端仿真服务
    TCP 25端口:SMTP 简单邮件传输服务
    UDP 53端口:DNS 域名解析服务
    TCP 80端口:HTTP 超文本传输服务
    TCP 110端口:POP3 “邮局协议版本3”使用的端口
    TCP 443端口:HTTPS 加密的超文本传输服务
    6379端口: Redis
    11211端口: Memcached
    3306端口: MySql

    # 2. 添加pem,key

    pem,key是在SSL证书申请的地方下载的,阿里云在这里 (opens new window)

    申请的时候注意,这三个参数是阿里云手动申请用到的。附:上面的图片是域名服务商里面DNS需要设置的。

    在/etc/nginx/ 目录下创建文件夹cert,然后把pem和key文件放进去,然后在nginx.conf文件里面设置如下:

    server {
    		listen      443;
    		server_name wangzhe.gq; #不用加www
    		ssl         on;
    		index       index.html index.htm;
    		ssl_certificate     cert/3354559_www.wangzhe.gq.pem; #注意cert前不用加/
    		ssl_certificate_key cert/3354559_www.wangzhe.gq.key;
    		ssl_session_timeout 5m;
    		ssl_ciphers   ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    		ssl_protocols SSLv2 SSLv3 TLSv1;
    		ssl_prefer_server_ciphers on;
    		location / {
    			root  /var/www/Embed;        #设置根路径,需要提前放好,并且文件夹中有index.html文件
    			index index.html index.htm;
    		}
    	}
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    疑问:不用配置80端口的什么事,直接输入http://www.wangzhe.gq就转到https了,应该来说应该配置如下呀

    # 3. nginx 配置

    配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。

    $ nginx -t // 检查nginx配置文件
    
    1

    配置正确后,重新加载配置文件使配置生效:

    $ nginx -s reload // 使配置生效
    
    1

    至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。

    如需重启nginx,用以下命令:

    $ service nginx stop // 停止
    $ service nginx start // 启动
    $ service nginx restart // 重启
    
    1
    2
    3

    # 4. putty安装及使用

    https://blog.csdn.net/Rafe_ma/article/details/77838613

    # 5. 服务器搭建FTP服务

    参考这里 (opens new window)

    **环境:**CentOS 7

    # 0.准备

    使用root用户登录,

    # 0.0:卸载命令

    如果服务器上安装了vsftpd,配置出错需要卸载vsftpd

    rpm -aq vsftpd
    
    1

    vsftpd-2.0.5-16.el5_5.1 #此处是查找vsftpd的返回结果

     rpm -e vsftpd
    
    1

    用rpm -e 查找结果 进行删除就ok了。

    # 0.1:连接方式:

    ①直接在浏览器输入ftp://ip即可,

    ②或者下载FileZilla (opens new window)连接助手。

    ③或者文件夹里面输入ftp://ip

    # 0.2.遇到的bug:

    <1>如果用阿里云服务器一定要记住,要在安全组里把端口都开了,具体设置如下:

    <2>. win10文件夹连接不成功,修改设置,并且重启电脑。

    Windows设置  --> 网络和Internet  --> 网络和共享中心(最下面)  -->  Internet选项(左下角) -->高级
    
    取消掉“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”
    
    1
    2
    3

    修改如下:

    # 0.3 为什么要创建用户

    下载文件就要对本地文件操作,就要验证用户,所以要创建用户

    # 1.执行yum命令安装:

    yum -y install vsftpd
    
    1

    # 2.修改配置文件

    按照下面修改配置文件

    cd /etc/vsftpd && vim vsftpd.conf
    
    1
    #是否允许匿名,默认no
    anonymous_enable=NO
    
    #这个设定值必须要为YES 时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
    local_enable=YES
    
    #具有写权限
    write_enable=YES
    
    #本地用户创建文件或目录的掩码
    local_umask=022
    
    #当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息!您也可以设定其它档名!
    dirmessage_enable=YES
    
    #当设定为YES时,使用者上传与下载日志都会被纪录起来。记录日志与下一个xferlog_file设定选项有关:
    xferlog_enable=YES
    xferlog_std_format=YES
    
    #上传与下载日志存放路径
    xferlog_file=/var/log/xferlog 
    
    #开启20端口
    connect_from_port_20=YES
    
    #关于系统安全的设定值:
    ascii_download_enable=YES(NO)
    如果设定为YES ,那么 client 就可以使用 ASCII 格式下载档案。
    一般来说,由于启动了这个设定项目可能会导致DoS 的攻击,因此预设是NO。
    ascii_upload_enable=YES(NO)
    与上一个设定类似的,只是这个设定针对上传而言!预设是NO。
    ascii_upload_enable=NO
    ascii_download_enable=NO
    #通过搭配能实现以下几种效果: 
    ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 
    ②当chroot_list_enable=YES,chroot_local_user=NO时, 
    在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 
    ③当chroot_list_enable=NO, chroot_local_user=YES时,所有的用户均不能切换到其他目录。 
    ④当chroot_list_enable=NO, chroot_local_user=NO时,所有的用户均可以切换到其他目录。
    
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    
    #这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd
    pam_service_name=vsftpd
    
    #当然我们都习惯支持TCP Wrappers的啦!
    tcp_wrappers=YES
    
    #不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    allow_writeable_chroot=YES
    
    #下面的暂时没用到。
    #启动被动式联机(passivemode)
    pasv_enable=YES
    #上面两个是与passive mode 使用的 port number 有关,如果您想要使用65400 到65410 这 11 个 port 来进行被动式资料的连接,可以这样设定
    pasv_min_port=65400
    pasv_max_port=65410
    
    #FTP访问目录
    local_root=/home/wangzhe/ftp
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62

    # 3.创建FTP用户

    添加FTP用户命令:useradd XXX

    设置FTP用户密码:passwd XXX

    这里以用户名:wz,密码:wangzhe为例

    useradd -d /home/wangzhe/ftp/ -s /sbin/nologin wz
    passwd wz
    
    1
    2

    设置用户访问权限:

    chown -R wz /home/wangzhe/ftp/
    
    1

    # 4.设置vsftpd服务开机启动

    systemctl enable vsftpd.service
    
    1

    # 5.启动暂停查看服务状态命令

    systemctl start vsftpd.service 
    systemctl status vsftpd.service 
    
    1
    2

    # 6. PATH路径中配置

    表现:

    linux命令行下面执行某个命令的时候,首先保证该命令是否存在,若存在,但输入命令的时候若仍提示:command not found

    # 当前命令是否存在于PATH环境变量中
    echo $PATH
    
    1
    2

    如果不在,参考下面的方法针对不同的用户和场景

    # 方法一:
    export PATH=/usr/local/bin:$PATH
    #配置完后可以通过echo $PATH查看配置结果。
    #生效方法:立即生效
    #有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢#复原有的path配置
    #用户局限:仅对当前用户
    
    
    
    # 方法二:
    #通过修改.bashrc文件:
    vim ~/.bashrc 
    #在最后一行添上:
    export PATH=/usr/local/bin:$PATH
    #生效方法:(有以下两种)
    #1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
    #2、输入“source ~/.bashrc”命令,立即生效
    #有效期限:永久有效
    #用户局限:仅对当前用户
    
    
    
    # 方法三:
    #通过修改profile文件:
    vim /etc/profile
    export PATH=/usr/local/bin:$PATH
    #生效方法:系统重启
    #有效期限:永久有效
    #用户局限:对所有用户
    
    
    # 方法四:
    #通过修改environment文件:
    vim /etc/environment
    在PATH="/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin"中加入 
    ":/usr/local/bin"
    #生效方法:系统重启
    #有效期限:永久有效
    #用户局限:对所有用户
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39

    # 7. 文件权限

    1:想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。

    例如:

    [root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx

    [root@localhost ~]# chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为 rwxrwxrwx

    权限说明:

    # 常用的linux文件权限如下:

    444 r--r--r--
    600 rw-------
    644 rw-r--r--
    666 rw-rw-rw-
    700 rwx------
    744 rwxr--r--
    755 rwxr-xr-x
    777 rwxrwxrwx
    
    1
    2
    3
    4
    5
    6
    7
    8

    从左至右,先是3个数字,代表文件的权限
    然后是9个字母(或者连字符)
    其中 1-3位数字代表文件所有者的权限
    4-6位数字代表同组用户的权限
    7-9数字代表其他用户的权限

    而具体的权限是由数字来表示的
    读取的权限等于4,用r表示
    写入的权限等于2,用w表示
    执行的权限等于1,用x表示
    通过4、2、1的组合,得到以下几种权限:
    0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)

    # 8. 版本切换

    # 1.python

    场景一:Ubuntu14.04 自带python3.4 切换成 python3.6

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    sudo apt install python3.6
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
    
    1
    2
    3
    4
    5
    6
    7

    # 9. KVM配置

    虚拟机的话,首先在VMware里勾选相应的选项这里 Link to Anchor

    Link to Anchor

    (1)安装 Qemu-KVM 和 cpu-checker

    sudo apt-get install qemu-kvm cpu-checker
    
    1

    (2)查看系统 KVM 是否可用

    $ kvm-ok
      INFO: /dev/kvm exists
      KVM acceleration can be used
    
    1
    2
    3

    (3)创建 kvm 用户组并把当前登录用户(如 king )添加到 kvm 用户组

    sudo addgroup kvm
    sudo usermod -a -G kvm king
    
    1
    2

    (4)改变 /dev/kvm 用户组为 kvm

    sudo chgrp kvm /dev/kvm

    (5)创建 udev rule,并写入 KERNEL=="kvm", GROUP="kvm", MODE="0660"

    sudo gedit /etc/udev/rules.d/60-qemu-kvm.rules
    KERNEL=="kvm", GROUP="kvm", MODE="0660"
    
    1
    2

    (6)重启在运行 emulator

    # 10. ssh互访

    需求:解决两个用户之间ssh免密互访,当然可以是两台计算机。

    假设A用户要访问B用户,只需要将A用户的公钥给B用户,反之亦然。

    大致分为三个步骤。

    • A用户生成公私钥
    • 将A用户公钥放到B用户(B)目录下/home/B/.ssh/authorized_keys文件中,注意是authorized_keys
    • 测试

    # 1. A用户生成公私钥

    ssh-keygen 或 ssh-keygen -t rsa 或 ssh-keygen -t dsa

    # 2. A用户的公钥 TO B用户

    可以选择直接在用户文件夹下新建,也可以直接使用1直接生成,新建authorized_keys文件,直接copy进去即可。

    # 3. 测试

    ssh user@host # 使用对应的用户名和ip
    
    1

    # 11. Linux必备的包列表

    sudo apt install net-tools curl git python 
    
    1

    # 12.开机自启服务

    参考这里 (opens new window)

    # 13.常用的.bashrc设定

    科普下.bashrc的作用,相当于shell的配置文件

    不同目录下的 .bashrc 文件其作用不尽相同,比如:

    • /etc/skel/.bashrc :文件将复制到系统上创建的任何新用户的主文件夹中
    • /home/hj/.bashrc:是 bash 的配置文件,保存个人的一些个性化设置,如命令别名、路径等
    # 常见的alias
    alias ls='ls -F --color'
    alias h='history 25'
    alias vi='vim'
    alias l="ls -F --color=auto"
    alias ll="ls -alt --color=auto"
    alias la="ls -alt --color=auto"
    alias ..="cd ..; ls"
    alias ...="cd ...; ls"
    alias ....="cd ....; ls"
    # 命令提示符修改为"[用户名: 当前目录]$ "
    export PS1="[\u: \W]$ "
    
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    具体参考这里 (opens new window)

    编辑 (opens new window)
    #Linux
    上次更新: 2022/05/11, 17:15:43
    Linux命令大全
    Linux常见错误

    ← Linux命令大全 Linux常见错误→

    最近更新
    01
    编程更好地可视化
    07-04
    02
    C语言编程规范
    07-01
    03
    摘抄
    05-29
    更多文章>
    Theme by Vdoing | Copyright © 2019-2022 Sum | MIT License | 鲁ICP备20003168号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式