Linux命令基础
Shell
shell概述
- Linux系统中运行的一种特殊程序
- 再用户和内核之间充当“翻译官”
- 用户登录Linux系统时,自动加载一个shell程序
- bash是Linux系统默认使用的shell程序 文件位于/bin/bash ::: hljs-center
:::
shell的作用
- 接收用户输入的指令
- 解释命令
- 传递给系统内核执行
::: hljs-center
:::
Linux命令的分类
Linux命令分为内部命令和外部命令。
内部命令和外部命令的区别
::: hljs-center
内部命令 | 外部命令 |
---|---|
集成于shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行/bin,/usr/bin,/usr/local/bin等 |
:::
如何查看命令是内部命令还是外部命令
三种方式:
type 命令 ###下面的提示显示内嵌就是内部命令,显示路径就是外部命令
::: hljs-center
::: 有一个特例是cd命令:它既是内部命令,又是外部命令
type cd ###### 显示是命令类型是内嵌
enable -n cd ###### 关闭内部命令
type cd ###### 显示路径,是外部命令
enable cd ###### 解除命令
::: hljs-center
:::
Linux命令行格式
通用的命令行使用格式
::: hljs-center
::: 命令字:
- 是整条命令中最关键的一部分
- 唯一确定一条命令
选项:
- 短格式选项:使用“-”符号引导,加字母
- 长格式选项:使用“- -”符号引导,加单词
参数:
- 命令字的处理对象
- 可以使文件名、目录(路径)名或用户名等内容
- 个数可以使零到多个
注:命令行英文字符区分大小写,多个单字符选项可以组合在一起使用
编辑Linux命令行的辅助操作
- Tab键:自动补全(2次显示相关的命令)
- 反斜杠“\”:强制换行(还是属于一行,且无法使用Tab键)
- Ctrl+U组合键:清空至行首
- Ctrl+K组合键:清空至行尾
- Ctrl+L组合键:清屏
- Ctrl+C组合键:取消本次命令编辑
- Ctrl+a组合键:切换到行首
- Ctrl+e组合键:切换到行尾
获取命令帮助的方法
内部命令help
- 查看Shell内部命令的帮助信息 ::: hljs-center
:::
命令“ - - help”选项
- 适用于大多数Linux外部命令 ::: hljs-center
:::
使用man命令阅读手册
- 使用“↑"、“↓” (ENTER)方向键滚动一行文本
- 使用Page Up和Page Down (空格) 键翻页
- 按Q或q键退出阅读环境
- 按"/"键查找内容, n键向下查找,,N键向上查找
Linux基础操作命令
命令行提示字符
[root@localhost ~]# [当前登录系统的用户@主机名称 当前所在的目录]# #表示为管理员登录 $ 表示为普通用户登录
切换用户
su 用户名 #切换后所在目录不变 su - 用户名 #切换后所在目录变成用户家目录 ::: hljs-center
:::
查看当前主机的完整名称
hostname ::: hljs-center
:::
临时设置主机名
hostname 主机名 ::: hljs-center
:::
永久设置主机名
hostnamectl set-hostname 主机名 或 vi /etc/hostname(设置完后需重启系统才生效) 按i键先删除旧主机名,再输入新主机名(只有第一行有效) 按ESC键,再按SHIFT + “:” 组合键,输入 wq ,再按回车键退出 ::: hljs-center
::: ::: hljs-center
:::
查看当前系统版本信息
cat /etc/redhat-release 或 cat /etc/*release ::: hljs-center
:::
查看当前内核版本
uname -r ::: hljs-center
:::
临时修改网卡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
::: ::: hljs-center
:::
添加静态路由条目
临时添加路由(重启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参数作用相同,哪个最后修改或重启,系统就使用哪个配置。