Linux命令基础

Shell

shell概述

  • Linux系统中运行的一种特殊程序
  • 再用户和内核之间充当“翻译官”
  • 用户登录Linux系统时,自动加载一个shell程序
  • bash是Linux系统默认使用的shell程序 文件位于/bin/bash ::: hljs-center

shell位置.png

:::

shell的作用

  1. 接收用户输入的指令
  2. 解释命令
  3. 传递给系统内核执行

::: hljs-center

shell作用.png

:::

Linux命令的分类

Linux命令分为内部命令和外部命令。

内部命令和外部命令的区别

::: hljs-center

                         内部命令                                             外部命令                  
集成于shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行/bin,/usr/bin,/usr/local/bin等

:::

如何查看命令是内部命令还是外部命令

三种方式:
type  命令   ###下面的提示显示内嵌就是内部命令,显示路径就是外部命令

::: hljs-center

11.png

::: 有一个特例是cd命令:它既是内部命令,又是外部命令

type  cd  ###### 显示是命令类型是内嵌
enable -n cd  ###### 关闭内部命令
type  cd  ###### 显示路径,是外部命令
enable  cd  ###### 解除命令

::: hljs-center

12.png

:::

Linux命令行格式

通用的命令行使用格式

::: hljs-center

通用命令使用格式.png

::: 命令字:

  • 是整条命令中最关键的一部分
  • 唯一确定一条命令

选项:

  • 短格式选项:使用“-”符号引导,加字母
  • 长格式选项:使用“- -”符号引导,加单词

参数:

  • 命令字的处理对象
  • 可以使文件名、目录(路径)名或用户名等内容
  • 个数可以使零到多个

:命令行英文字符区分大小写,多个单字符选项可以组合在一起使用

编辑Linux命令行的辅助操作

  • Tab键:自动补全(2次显示相关的命令)
  • 反斜杠“\”:强制换行(还是属于一行,且无法使用Tab键)
  • Ctrl+U组合键:清空至行首
  • Ctrl+K组合键:清空至行尾
  • Ctrl+L组合键:清屏
  • Ctrl+C组合键:取消本次命令编辑
  • Ctrl+a组合键:切换到行首
  • Ctrl+e组合键:切换到行尾

获取命令帮助的方法

内部命令help

  • 查看Shell内部命令的帮助信息 ::: hljs-center

13.png

:::

命令“ - - help”选项

  • 适用于大多数Linux外部命令 ::: hljs-center

14.png

:::

使用man命令阅读手册

  • 使用“↑"、“↓” (ENTER)方向键滚动一行文本
  • 使用Page Up和Page Down (空格) 键翻页
  • 按Q或q键退出阅读环境
  • 按"/"键查找内容, n键向下查找,,N键向上查找

Linux基础操作命令

命令行提示字符

[root@localhost ~]# [当前登录系统的用户@主机名称 当前所在的目录]# #表示为管理员登录 $ 表示为普通用户登录

切换用户

su 用户名            #切换后所在目录不变 su - 用户名            #切换后所在目录变成用户家目录 ::: hljs-center

16.png

:::

查看当前主机的完整名称

hostname ::: hljs-center

17.png

:::

临时设置主机名

hostname 主机名 ::: hljs-center

18.png

:::

永久设置主机名

hostnamectl set-hostname 主机名 或 vi /etc/hostname(设置完后需重启系统才生效) 按i键先删除旧主机名,再输入新主机名(只有第一行有效) 按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出 ::: hljs-center

19.png

::: ::: hljs-center

20.png

:::

查看当前系统版本信息

cat /etc/redhat-release 或 cat /etc/*release ::: hljs-center

21.png

:::

查看当前内核版本

uname -r ::: hljs-center

22.png

:::

临时修改网卡IP

ifconfig ens33 192.168.80.3/24 或 ifconfig ens33 192.168.80.3 netmask 255.255.255.0

永久修改网卡IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet            #设置网卡类型,“Ethernet”表示以太网 DEVICE=ens33            #设置网卡的名称 ONBOOT=yes            #设置网卡是否在 Linux 操作系统启动时激活 BOOTPROTO=static            #设置网卡的配置方式,“static”表示使用静态IP地址,“dhcp”时表示动态获取地址 IPADDR=192.168.80.3            #设置网卡的 IP 地址 NETMASK=255.255.255.0            #设置网卡的子网掩码 GATEWAY=192.168.80.2            #设置网卡的默认网关地址 DNS1=192.168.80.2            #设置DNS服务器的 IP 地址

重启网卡

systemctl restart network            #重启所有的网卡 ifdown ens33 ; ifup ens33 ifdown ens33            #关闭某个网卡 ifup ens33            #启动某个网卡

ifconfig ens33 down            #临时禁用某个网卡 ifconfig ens33 up            #重新激活某个网卡(不会更新IP地址)

查看网卡地址

ifconfig 或 ip add ::: hljs-center

23.png

::: ::: hljs-center

24.png

:::

添加静态路由条目

临时添加路由(重启network服务失效) 方法一: route add -net 192.168.3.0/24 gw 192.168.8.2 [dev ens33] -net:指定目标网段的地址 gw:指定下一跳路由器的 IP 地址 dev: 为路由指定的输出接口 查看路由表条目 route -n 删除静态路由条目 route del -net 192.168.3.0/24 方法二: ip route add 192.168.15.0/24 via 192.168.80.2 [dev ens33]

永久添加路由(重启network服务生效) 方法一: vi /etc/sysconfig/static-routes any net any gw 192.168.80.2 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

systemctl restart network

方法二: vim /etc/sysconfig/network-scripts/route-ens33 default via 192.168.80.2 dev ens33ens33            #默认路由,另一种格式 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

systemctl restart network

测试网络连接 ping traceroute (静态跟踪) mtr (动态跟踪)

重启系统 reboot init 6 shutdown -r now

关机 poweroff init 0 shutdown -h now

shutdown -c

给命令行提示字符加颜色

PS1="[\e[1;34m][\u@\h \W]\$[\e[0m] "

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] ====> 一段不显示字串的结束

/etc/resolv.conf 是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名。最多可以指定3个不同的DNS服务器地址,优先使用第一个 DNS 服务器。对该文件所做的修改将会立刻生效。 nameserver 192.168.80.2 #定义DNS服务器的IP地址

注意:此配置文件与网卡配置文件的DNS1参数作用相同,哪个最后修改或重启,系统就使用哪个配置。