持续更新

  • 通过ssh登陆linux服务器

    1
    2
    3
    $ ssh -y -l username serveraddress
    // username为用户名
    // serveraddress为服务器地址
  • 使用cygwin远程连接linux服务A后,通过A访问远程linux服务器B

    1
    2
    3
    ssh -y -l username server_A_address    // 先登录远程服务器A

    ssh -y -l username server_B_address // 再在A上登录远程服务器B
  • 使用cygwin连接linux服务器时,让cygwin客户端始终保持连接,本实现参考自命令行终端保持连接

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ls -a   // 当前用户主目录下,执行查看,看到隐藏的.ssh文件夹
    cd .ssh // 进入.ssh文件夹
    vi config // 打开配置文件(若不存在则创建)

    // 利用vi编辑器,在配置文件中输入以下配置,其中时间间隔可自行设置
    Host *hostname.com
    ServerAliveInterval 60
    // 保存退出

    chmod +x config // 为其增加执行权限,完成设置
  • 通过scp跨服务器复制文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    scp file1.txt username@serveraddress:/home/username
    // file1.txt 为复制源
    // username@serveraddress:/home/username为目标路径

    scp -r test username@serveraddress:/home/username
    // -r表示复制的是文件夹,test为文件夹

    scp -r -P 20782 test username@serveraddress:/home/username
    // -P 20782 表示端口号,对于有指定端口需求的,需要采用这种方式
  • 复制指定目录下的全部文件到另一个目录中

    1
    2
    3
    4
    5
    6
    7
    // 假设复制源目录为dir1,目标目录为dir2,怎样才能将dir1下所有文件复制到dir2下?
    // 如果dir2目录不存在,则可以直接使用
    cp -r dir1 dir2

    // 如果dir2目录已存在,则需要使用
    cp -r dir1/. dir2
    // 如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
  • 通过pkill终止指定用户的所有进程

    1
    2
    pkill -uusername
    // -u为指定用户的命令,username为指定的用户
  • 运行目录下的可执行程序

    1
    2
    ./submit.sh test.st
    // ./代表当前路径下,submit.sh是输入参数,test.st是可执行程序
  • 通过nohup后台运行可执行程序

    1
    2
    3
    4
    nohup ./submit.sh test.st &
    // nohup 表示忽略HUP信号,标准输出和标准错误缺省会被重定向到nohup.out文件中
    // 在结尾加上 & 来将命令放入后台运行
    // 退出终端时,需要使用exit命令退出终端,如果直接关闭终端窗口会将后台运行的程序一同关闭
  • linux 查看隐藏文件

    1
    2
    3
    4
    5
    6
    7
    8
    //方法一:显示所有文件(包含隐藏文件)
    ls -a

    //方法二:只显示隐藏文件
    l.

    //方法三:同样只显示隐藏文件
    ls -d .*
  • 通过XTerm打开linux下的图形界面

    1
    2
    3
    4
    5
    // 登陆方式
    $ ssh username@hostname -Y

    // 登陆成功后,直接输入应用程序名称调用该程序
    applicationName
  • 新建文件

    1
    2
    // 可简单利用编辑器vim,如果test.sh存在则打开,不存在则新建
    vim test.sh
  • 删除文件

    1
    rm filename
  • 删除文件夹(空与非空)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 删除空目录
    rmdir flodername

    // 删除非空目录
    // -r 就是向下递归,不管有多少级目录,一并删除
    // -f 就是直接强行删除,不作任何提示的意思
    rm -rf flodername

    // 例如
    rm -rf /var/log/httpd/access
    将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

    rm -f /var/log/httpd/access.log
    将会强制删除/var/log/httpd/access.log这个文件
  • Linux的关机与重启命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    重启命令:
    reboot
    shutdown -r now // 立刻重启(root用户使用)
    shutdown -r 10 // 过10分钟自动重启(root用户使用)
    shutdown -r 20:35 // 在时间为20:35时候重启(root用户使用)
    //如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

    关机命令:
    halt // 立刻关机
    poweroff // 立刻关机
    shutdown -h now // 立刻关机(root用户使用)
    shutdown -h 10 // 10分钟后自动关机
    // 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
  • 用户、用户组、权限相关

    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
    // 增加用户组
    groupadd groupName
    groupdel groupName

    // 增加用户
    useradd userName
    passwd userName

    // 将一个用户添加到用户组中,千万不能直接用:
    usermod -G groupName userName

    // 这样做会使你离开其他用户组,仅仅做为这个用户组groupName的成员。
    // 应该用加上-a选项,a代表append,也就是将自己添加到用户组groupName中,而不必离开其他用户组
    usermod -a -G groupName userName

    //查看当前登录用户所在的组
    groups

    //查看某个用户hmliao所在组
    groups hmliao

    //查看有多少用户
    cat /etc/passwd //使用此cat命令所打印出来的东西会很乱,可以用下面的命令
    cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

    //删除用户
    userdel -r username // 为了在删除用户时完全删除家目录,我们可以使用 -r 选项

    //普通用户加sudo权限
    sudo vim /etc/sudoers
    root ALL=(ALL) ALL //在“root ALL=(ALL) ALL”这一行下面,再加入一行
    hmliao ALL=(ALL) ALL
  • Linux 用户切换、修改用户名、修改密码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //普通用户到root
    方式一:命令:su 回车,然后输入root密码
    此种方式只是切换了root身份,但Shell环境仍是普通用户的Shell,pwd命令一下,目录仍然是普通用户的工作目录。

    方式二:命令:su - 回车,然后输入root密码
    此种方式,是连用户和Shell环境一起切换成root身份。 工作目录变成root的工作目录,pwd命令一下,即可看到。
    只有切换用户,才不会出现PATH环境变量错误

    //root到普通用户
    命令:su 普通用户名 或 exit

    //修改普通用户用户名
    usermod -l newUserName oldUserName //这种方法只改了表面,用pwd命令看一下,路径还是之前的用户名
    usermod -l newUserName -d /home/newUserName -m oldUserName

    //修改密码
    1. 修改普通用户密码
    命令:sudo passwd userName //如sudo passwd wyc
    输入两边新密码

    2. 修改 root密码
    命令:passwd suName //修改超级用户的密码,如root的密码
    输入两遍新密码
  • 通过chmod修改文件权限

    1
    2
    3
    4
    5
    chmod u+x submit.sh
    // u代表user,即所有用户,+x代表增加执行权限,submit.sh为要修改权限的文件

    chmod u-x submit.sh
    //取消权限
  • 通过chown修改 文件/目录 的所有者

    1
    2
    chown userName:userName testfile.xx //修改tesfile.xx文件拥有者为userName
    chown -R userName:userName testDir //修改testDir目录及其所包含的文件的拥有者为userName
  • Linux系统查看物理CPU个数、CPU核数及逻辑CPU个数
    CPU总核数 = 物理CPU个数 每颗物理CPU的核数
    总逻辑CPU数 = 物理CPU个数
    每颗物理CPU的核数 * 超线程数

    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
    // 查看CPU信息
    cat /proc/cpuinfo

    // 查看CPU信息(型号)
    hmliao@localhost:~> cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
    28 Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz

    // 查看物理CPU个数
    hmliao@localhost:~> cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
    2

    hmliao@localhost:~> grep 'physical id' /proc/cpuinfo | sort -u | wc -l
    2

    // 查看每个物理CPU中core的个数(即核数)
    hmliao@localhost:~> cat /proc/cpuinfo| grep "cpu cores"| uniq
    cpu cores : 14

    hmliao@localhost:~> grep 'core id' /proc/cpuinfo | sort -u | wc -l
    14

    hmliao@localhost:~> cat /proc/cpuinfo |grep "cores"|uniq
    cpu cores : 14

    // 查看逻辑CPU的个数(查看线程数)
    hmliao@localhost:~> cat /proc/cpuinfo| grep "processor"| wc -l
    28

    hmliao@localhost:~> grep 'processor' /proc/cpuinfo | sort -u | wc -l
    28

    // 查看CPU型号
    sudo dmidecode -s processor-version
  • 查看显卡

    1
    lspci -v -s `lspci | awk '/VGA/{print $1}'`
  • 查看系统版本

    1
    2
    3
    4
    5
    6
    cat /etc/issue
    cat /etc/redhat-release
    lsb_release -a

    //lsb_release: command not found 解决
    //解决方法:yum install redhat-lsb -y
  • 查看硬盘序列号

    1
    smartctl -i /dev/sda
  • 查看硬盘大小

    1
    df -lh
  • 查看各文件夹大小

    1
    du -h --max-depth=1
  • 查看当前cpu运行的频率、最大频率、最小频率

    1
    2
    3
    4
    5
    cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

    cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

    cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq