Linux命令

一.基础命令

0.目录文件操作+常用操作
  • 进入dir目录

    cd dir

  • 回到父级目录

    cd ..

  • 回到上一级

    cd -

  • 回到根目录

    cd ~

  • 创建dir目录

    mkdir dir

  • 删除dir目录

    rm -rf dir

  • 更改old目录名为new

    mv old new

  • 复制old目录下所有文件到/data/new下

    cp old /data/new

  • 查找a.txt文件

    find a.txt

  • 查看磁盘剩余空间

    df -h

  • 查看历史操作记录

    history

  • 查看端口

    lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

  • 修改主机名

    永久修改 vim /etc/hostname
    临时修改 hostname JFSL

  • 修改hosts

    vim /etc/hosts

  • 修改环境信息

    vim /etc/profile
    source /etc/profile

1.ssh
  • 登录远程服务器

    ssh 0.0.0.0
    ssh root@0.0.0.0

  • 启动sshd服务

    systemctl start sshd

  • 查看sshd服务状态

    systemctl status sshd

  • 查看ssh信息

    ls -al ~/.ssh

  • SSH生成、管理和转换认证密钥,支持RSA和DSA

    ssh-keygen -t rsa -C "13232707551@163.com"

  • 本地主机的公钥复制到远程主机

    ssh-copy-id root@192.168.28.128

  • 拷贝本机指定公钥到远程主机

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128

  • 开启或禁用root登录

    vim /etc/ssh/sshd_config
    systemctl restart sshd.service

2.账号权限
  • 查询当前用户名

    whoami

  • 添加用户账号(创建用户abc 指定登录系统时指定/data目录,属于abc组)

    useradd -d /data abc -m

  • 删除用户

    userdel abc

  • 设置用户密码

    passwd root

  • 切换用户名

    su user
    su

  • 需要超级管理员权限

    sudo xxx命令

  • 查看有哪些用户组

    cat /etc/group

  • 修改用户所在组

    usermod -g 用户组 用户名

  • 修改文件的权限

    chmod u/g/o/a +/-/= rwx 文件
    chmod 777 a.txt

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     详细参数说明
      字母法:chmod u/g/o/a +/-/= rwx 文件
       u:拥有者
       g:同组者
       o:其他人
       a:所有,即u、g、o

      + 添加权限
      - 去除权限
      = 设定权限

      rwx:
        r :读------>对应的数字是4
        w :写------>对应的数字是2
        x :执行------>对应的数字是1

    注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”
3.文件上传下载
  • 安装lrzsz

    yum install -y lrzsz
    apt-get install lrzsz

  • 上传文件到当前目录

    rz + 选择文件

  • 下载a.txt文件到本地

    sz a.txt

4.压解缩
  • tar相关命令
    常用的解压命令

    tar -zxvf xxx.tar.gz

    详细参数说明(看看就行,基本都是只用上面那一条命令解决)

    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
    tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ]
    [-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>]
    [-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>]
    [-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>]

    -A或--catenate 新增文件到已存在的备份文件。
    -b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
    -B或--read-full-records 读取数据时重设区块大小。
    -c或--create 建立新的备份文件。
    -C<目的目录>或--directory=<目的目录> 切换到指定的目录。
    -d或--diff--compare 对比备份文件内和文件系统上的文件的差异。
    -f<备份文件>或--file=<备份文件> 指定备份文件。
    -F<Script文件>或--info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
    -g或--listed-incremental 处理GNU格式的大量备份。
    -G或--incremental 处理旧的GNU格式的大量备份。
    -h或--dereference 不建立符号连接,直接复制该连接所指向的原始文件。
    -i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
    -k或--keep-old-files 解开备份文件时,不覆盖已有的文件。
    -K<文件>或--starting-file=<文件> 从指定的文件开始还原。
    -l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
    -L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
    -m或--modification-time 还原文件时,不变更文件的更改时间。
    -M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
    -N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
    -o或--old-archive--portability 将资料写入备份文件时使用V7格式。
    -O或--stdout 把从备份文件里还原的文件输出到标准输出设备。
    -p或--same-permissions 用原来的文件权限还原文件。
    -P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
    -r或--append 新增文件到已存在的备份文件的结尾部分。
    -R或--block-number 列出每个信息在备份文件中的区块编号。
    -s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
    -S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
    -t或--list 列出备份文件的内容。
    -T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
    -u或--update 仅置换较备份文件内的文件更新的文件。
    -U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
    -v或--verbose 显示指令执行过程。
    -V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。
    -w或--interactive 遭遇问题时先询问用户。
    -W或--verify 写入备份文件后,确认文件正确无误。
    -x或--extract--get 从备份文件中还原文件。
    -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
    -z或--gzip--ungzip 通过gzip指令处理备份文件。
    -Z或--compress--uncompress 通过compress指令处理备份文件。

  • 解压gzip文件

    gzip -d ge.tar.gz

  • 解压zip文件

    unzip phpbb.zip

5.进程管理
  • 查看xxx服务的进程id

    ps -ef|grep xxx
    ps -aux | grep xxx

  • kill进程(服务=xxx,pid=123)

    kill 123
    kill -9 123
    kill -15 123
    killall xxx

  • 列出所有运行中/激活进程

    ps -a

  • kill进程(服务=xxx,pid=123)

    kill 123

  • ps命令的常用参数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    -A    显示所有进程(等价于-e)(utility)
    -a 显示一个终端的所有进程,除了会话引线
    -N 忽略选择。
    -d 显示所有进程,但省略所有的会话引线(utility)
    -x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
    -p pid 进程使用cpu的时间
    -u uid or username 选择有效的用户id或者是用户名
    -g gid or groupname 显示组的所有进程。
    U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
    -f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
    -l 长格式(有F,wchan,C 等字段)
    -j 作业格式
    -o 用户自定义格式。
    v 以虚拟存储器格式显示
    s 以信号格式显示
    -m 显示所有的线程
    -H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
    e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
    h 不显示第一行
  • 进程的状态说明
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    5种状态:
    1. 运行 ( 正在运行或在运行队列中等待 )
    2. 中断 ( 休眠中, 受阻, 在等待某个条件的形成或接受到信号 )
    3. 不可中断 ( 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 )
    4. 僵死 ( 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 )
    5. 停止 ( 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 )
    ps工具标识进程的5种状态码:
    D 不可中断 uninterruptible sleep (usually IO)
    R 运行 runnable (on run queue)
    S 中断 sleeping
    T 停止 traced or stopped
    Z 僵死 a defunct (”zombie”) process

二.进阶命令

1.Ubuntu系统替换镜像地址
解决 操作系统“Failed to fetch”错误
  • 备份原文件

    cp /etc/apt/sources.list /etc/apt/sources.list_backup

  • 编辑文件内容

    vim /etc/apt/sources.list

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #网易163更新服务器(广东广州电信/联通千兆双线接入),包含其他开源镜像:
    deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
  • update镜像

    apt-get update

2.SCP服务器间传输文件
scp xxx 用户名@IP:目录
  • 简单的命令

    scp canal.deployer-1.1.4.gz iyourcar_test@192.168.6.30:/data/iyourcar/canal

3.nginx相关
前提是已经安装好nginx,并且已经配置好环境变量,能直接调用相关命令脚本
  • 查找nginx安装在什么目录

    whereis nginx

  • 检查修改后的配置文件

    nginx -t

  • 重新加载配置文件

    nginx -s reload

  • 启动

    service nginx start

  • 停止

    service nginx stop

  • 重启

    service nginx restart

  • http重定向到https

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    server {
    listen 443;
    server_name yangguangren.cn;
    ssl on;
    root /var/www/yangguangren.cn;
    index index.html index.htm;
    ssl_certificate 1_www.yangguangren.cn_bundle.crt;
    ssl_certificate_key 2_www.yangguangren.cn.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
    index index.html index.htm;
    }
    }
    server {
    listen 80;
    server_name www.yangguangren.cn;
    rewrite ^(.*)$ https://$host$1 permanent;
    }

  • https证书配置
    复制1_www.yangguangren.cn_bundle.crt和2_www.yangguangren.cn.key到nginx配置同级目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    server {
    listen 443;
    server_name yangguangren.cn;
    ssl on;
    root /var/www/yangguangren.cn;
    index index.html index.htm;
    ssl_certificate 1_www.yangguangren.cn_bundle.crt;
    ssl_certificate_key 2_www.yangguangren.cn.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
    index index.html index.htm;
    }
    }
  • 配置负载均衡
    主要是新增一个upstream
    具体四种模式参考负载均衡4种模式

    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
    upstream xxxproxy {
    server localhost:8083;
    server x.x.x.x:8083;
    }
    server {
    listen 443;
    server_name yangguangren.cn;
    ssl on;
    root /var/www/yangguangren.cn;
    index index.html index.htm;
    ssl_certificate 1_www.yangguangren.cn_bundle.crt;
    ssl_certificate_key 2_www.yangguangren.cn.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    underscores_in_headers on;
    location / {
    proxy_pass http://x.x.x.x:4000;
    }
    # 项目路径 => 主要是这个
    location /xxx/ {
    proxy_pass http://xxxproxy/project/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Port $server_port;
    }
    }

  • 配置二级域名访问静态资源

    例如:se.yangguangren.cn访问/data/xxs/files目录的文件

    1.配置域名解析(必须)
        给yangguangren.cn域名增加一条A类型的解析记录:主机记录为se,值为nginx所在的服务器ip,记录类型为A.
    2.nginx配置,增加一条server监听
        server{
            listen 80;
            server_name se.yangguangren.cn;
            root /data/xxs/files;
            location / {
                    autoindex on;
            }
        }
            
    3.执行命令刷新配置
    > nginx -t
    > nginx -s reload
    
    4.在/data/xxs/files下创建一个a.txt测试
    5.访问http://se.yangguangren.cn/a.txt能正常访问表示成功.
  • 解决访问静态资源出现403错误码

    权限问题,更改最顶上的用户为root.或者改对应静态目录的权限

  • 解决静态资源a.txt中文乱码问题

    charset ‘utf-8’;

      server{
          listen 80;
          server_name se.yangguangren.cn;
          root /data/xxs/files;
          charset 'utf-8';
          location / {
                  autoindex on;
          }
      }
    
4.七牛相关

三.总结

实在太菜,所以才记录这些命令下来

 各种框架软件的命令
 更多命令待更新中...

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!