(目录)

一些Linux命令和Shell内外部命令

命令提示符

  • 命令提示符 :[当前登陆系统用户名@主机名 当前所在目录名]# 文件夹位置~为当前用户的宿主目录(家目录)(与用户一一对应) #为管理员登录 $为普通用户登录

用户/主机相关

  • 切换用户(切换为root用户需要密码)

    操作 结果
    su 用户名 仅切换用户
    su - 用户名 切换后进入该用户的家目录
    useradd 用户名 创建用户在/home/

    71EI9WJNDYC5MOTS9B1.png

  • 主机

    操作 结果
    hostname 主机名 更改主机名(不加主机名则显示当前主机名,su后生效,重启后重置)
    hostnamectl set-hostname 主机名 修改主机名,永久更改,su后生效
    vim修改/etc/hostname修改主机名 修改主机名,重启后生效,需要先删主机名,只有第一行有效

    NUEVLF4K8KMILL_6026.png 4K~LZSEI.png

查看版本

  • 版本

    操作 结果
    cat /etc/redhat-release 查看安装的发行版本
    cat /etc/centos-release 查看安装的发行版本
    cat /etc/*release 一次性显示所有release结尾版本
    uname -r 查看内核版本

网卡相关

  • 网卡IP配置文件位于 /etc/sysconfig/network-scripts/ifcfg-ens33

    TYPE=Ethernet        ### 设置网卡类型,此处为以太网
    DEVICE=ens33         ### 设置网卡名称
    ONBOOT=yes           ### 设置网卡是否在Linux操作系统重启时激活
    BOOTPROTO=static     ### 设置网卡的配置方式,“static”表示静态IP地址,“dhcp”表示动态获取地址
    IPADDR=192.168.80.3  ### 设置网卡的IP地址
    NETMASK=255.255.255.0   ### 设置网卡的子网掩码(也可用24)
    GATEWAY=192.168.80.2 ### 设置网卡的默认网关地址
    DNS1=192.168.80.2    ### 设置DNS服务器的IP地址
    
  • 临时设置网卡(network服务重启即失效)

    ifconfig ens33 192.168.80.80 netmask 255.255.255.0

  • 设置虚拟网卡 ifconfig ens33:0 192.168.80.81/24(id号从0开始)

  • 重启所有网卡(生产环境要慎重) systemctl restart network

  • 关闭一个网卡 ; 打开一个网卡(两命令合一次输入,重启单个网卡,虚拟网卡会失效) ifdown ens33 ; ifup ens33

  • 临时禁用某个网卡(可用ip addr看到该网卡) ifconfig ens33 down

  • 重新激活网卡(与上条命令共用无法实现ip修改) ifconfig ens33 up

网络相关(都需要重启网络服务)

  • 添加静态路由条目

    • 临时:route add -net 192.168.3.0/24 gw 192.168.80.2 dev ens33 (单张网卡时可省略dev ens33) net:添加网段 gw:设置下一跳 dev:指定网卡
    • 临时:route add -host 192.168.4.1 gw 192.168.80.2 dev ens33 host:目标主机或ip地址
    • 临时:ip route add 192.168.15.0/24 via 192.168.80.2 dev ens33 via:指定下一跳
  • 删除静态路由条目

    • route del -net 192.168.3.0/24
  • 永久添加路由

    • vim /etc/sysconfig/static-routes ### 打开配置文件

      any net any gw 192.168.80.2      ### 默认路由   gw:网关
      any net 192.168.3.0/24 gw 192.168.80.2
      any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.80.2
      any host 192.168.100.100 gw 192.168.80.2
      
    • vim /etc/sysconfig/network-scripts/route-ens33 ### 打开配置文件

      default via 192.168.80.2 dev ens33    #默认路由,另一种格式0.0.0.0/0 192.168.14.254 dev ens33
      10.211.6.0/24 via 192.168.80.2 dev ens33
      192.168.100.200 via 192.168.14.254 dev ens33
      
  • 查看路由表

    route -n

  • 测试网络

    ping
    traceroute       ### 静态跟踪
    mtr                  ### 动态跟踪
    

开关机器

  • 重启
    • reboot
    • init 6
    • shutdown -r 10(10分钟后重启,立即now)
  • 关机
    • poweroff
    • init 0
    • shutdown -h 10(10分钟后关机,立即now)
  • 取消设定的关机
    • shutdown -c

一个实用小知识

  • 给命令行提示字符加颜色

    PS1="\[\e[1;34m\][\u@\h \W]\\$\[\e[0m\]" ### 阿拉伯数字指定颜色编号

    AX5~CG_91WP8RZC24FNH.png

  • 单个符号更改

    PS1="[\e[1;35m][[\e[1;34m]\u[\e[1;36m]@[\e[1;34m]\h [\e[1;31m]\w[\e[1;35m]][\e[1;36m]\$[\e[0m] "

    [\e[1;35m][ ====> 定义左边的"[" [\e[1;34m]\u ====> 定义用户名 [\e[1;36m]@ ====> 定义"@" [\e[1;34m]\h ====> 定义第一个点(.)之前的主机名 [\e[1;31m]\w ====> 定义目录完整路径 [\e[1;35m]] ====> 定义"]" [\e[1;36m]\$ ====> 定义"#"或"$" [\e[0m] ====> 一段不显示字串的结束

    UQ10196VZ~Q15~3.png

Shell

定义

  • linux系统中运行的一种特殊程序
  • 在用户和内核之间充当翻译
  • 用户登录Linux系统时,自动加载一个Shell程序
  • Bash是Linux系统中默认使用的Shell程序
    • 位于/bin/bash 接收用户输入的命令 - 解释命令 - 传递给系统内核执行

内部命令&外部命令

  • 内部命令

    集成于Shell解释器程序内部的一些特殊指令,也称内建(Built-in)命令,属于Shell的一部分,没有单独对应的系统文件,自动载入内存,可以直接使用

  • 外部命令

    Linux系统中能够完成特定功能的脚本文件或二进制程序,属于Shell解释器程序之外的命令,每个外部命令对于了系统中的一个文件,必须知道其文件位置,由Shell加载后才能执行/bin,/usr/bin,/usr/local/bin等

  • help和enable可判断命令为内或外部命令(help 参数)(命令 enable) type可查询到指令的内外部命令信息:有路径是外部命令,内部则会告知内嵌(cd是特殊的内部命令,有对应的路径)(type 参数)

  • 通用的命令行使用格式(区分大小写) 命令字 + 空格 + 选项(非必需) + 空格 + 参数(非必需)

    • 命令字:是整条命令中最关键的一部分

      唯一确定一条命令

    • 选项:命令的扩展功能

      短格式选项 "-" 引导 (多个单字符可组合一起使用也可连接)

      长格式选项 "--" 引导 (不可组合但可连接)

    • 参数:命令字处理的对象

      可以是文件名,目录名或用户名等

      个数可是0或多个

      选项参数大多可以不分前后顺序

  • 编辑命令行的辅助操作

    • Tab:自动补全
    • 反斜杠\:强行换行(仅视觉换行)
    • Ctrl + U:清空至行首
    • Ctrl + K:清空至行尾
    • Ctrl + L:清屏(clear)
    • Ctrl + C:取消本次命令编辑
    • Ctrl + A:切换到行首
    • Ctrl + E:切换到行尾
  • 获得命令帮助方法

    • 内部命令help:(help cd)查看Shell内部命令的帮助信息

    • 命令的--help:( ls --help )适用于大多数Linux外部命令

    • 使用man阅读手页:(man ls)

      使用上下和enter滚动一行

      PgUp和PgDn和空格翻页

      q退出

      “/”查找内容,n向下查找,N向上查找