【Linux】系统登录,调用shell,shell配置文件,shell命令,特殊符号,shell快捷键,Linux运行级别,解决无限登录问题,修改提示符

目录

[Linux系统的登录方式 以及 调用shell](#Linux系统的登录方式 以及 调用shell)

[Linux shell 以及 shell配置文件](#Linux shell 以及 shell配置文件)

[shell 命令](#shell 命令)

[shell 特殊符号](#shell 特殊符号)

[shell 快捷键](#shell 快捷键)

Linux操作系统运行级别

单用户模式下解决无限登录问题

[centos7修改命令行提示符 PS1](#centos7修改命令行提示符 PS1)

补充、centos7没有滚动条


Linux系统的登录方式 以及 调用shell

Linux系统的登录方式:

1、本地登录:

  • 通过控制台登录,即在本地计算机上进行登录。
  • 只需要用户名和密码。
  • 终端类型:tty(终端设备)。
  • 本地登录有2种方式登录:图形界面登录,命令行模式登录。

2、远程登录:

  • 通过XShell 或者 cmd(ssh)远程连接运行Linux系统的计算机进行登录。
  • 需要ip地址或主机名、用户名和密码。
  • 终端类型:pts(伪终端/虚拟终端)。

可以通过who命令查看哪些用户登录系统。

注:提示符中若为"#"则为root(超级管理员/超级用户),若为"$"则为普通用户。

成功登录后,有多种方式调用shell:

1、交互式shell:shell等待用户输入命令,并立即执行。shell与用户交互。

① 登录式shell:

  • 输入用户名和密码进入shell。
  • 用户成功登录后,系统读取/etc/passwd中用户对应的凭据,读取/etc/profile和~/**.**bash_profile。
  • 例如:命令行模式登录(登录-->执行命令-->退出)。在命令行输入su -

② 非登录式shell:

  • 调用shell时不需要输入用户名和密码。
  • 复制父shell环境。读取~/**.**bashrc获取其他配置命令。
  • 例如:通过图形界面登录,打开Terminal窗口。在命令行输入su。

2、非交互式shell:

  • shell脚本(shell script)运行时,调用shell。用户不需要输入命令。
  • 使用父shell继承的环境,处理脚本文件,处理完就退出shell。
  • 一般执行脚本的shell都是非交互式,也可以特殊说明启动为交互式shell。

补充:shell:命令行解释器。用户和操作系统交互的接口。通过shell执行命令、启动程序等。

shell 脚本(shell script):脚本程序,存放一系列shell命令的文件,扩展名**.**sh(bash版本)。通过赋予可执行权限并运行文件,就会自动执行shell命令。

bash 复制代码
# hello.sh

#!/bin/bash          # 此行为脚本第一行,指定脚本运行时使用的解释器
echo 'hello world'   # 命令,输出hello world

Linux shell 以及 shell配置文件

shell:命令行解释器,用C语言编写的应用程序。shell是操作系统的外壳,为用户和内核的交互提供接口。接收用户输入的命令并传送给内核去执行。

Linux有多种shell,shell主要版本有bash,ksh,csh,zsh。其中Bash Shell是Linux系统的默认shell,是与sh兼容的shell。

可以使用以下命令查看shell:

bash 复制代码
# 查看环境变量中的shell值
echo $SHELL

# 查看bash命令的完整路径
which bash

# 查看bash版本
bash --version

# 查看系统支持的shell
cat /etc/shells

# 查看不同用户登录时的默认shell
cat /etc/passwd

shell的配置文件(初始化文件/启动文件 ):

  • 全局配置文件(/etc/profile,/etc/profile**.**d/,/etc/bashrc)。位于/etc目录下。
  • 个人配置文件(~/. bashrc,~/**.**bash_profile)。位于用户自己的家目录下。

| etc/profile | 存储系统范围的环境配置,登录时的启动程序配置。 配置系统环境变量PATH,权限掩码umask。 | 系统范围 |
| /etc/profile**.**d/ | 存储对环境自定义更改的shell脚本。 | 系统范围 |
| /etc/bashrc | 存储系统范围的函数和别名,包括用于所有系统用户的其他配置。 | 系统范围 |
| ~/.bash_profile | 存储用户的环境配置,登录时的启动程序配置。 配置用户环境变量PATH。 | 单个用户 |

~/.bashrc 用户特定的函数和别名。 配置命令行提示符PS1。 单个用户

shell 命令

shell 命令是在Linux系统通过shell解释器执行的一系列指令。

| exit | 退出终端(或者 Ctrl+D) |
| shutdown -h now | 关机 |

reboot 重启

| cat ~/.bash_history | 查看历史记录(不含本次登录后使用的命令。 本次登录后使用的命令 要退出终端后才会保存到文件中) |
| history | 查看历史记录(本次登录后使用的命令) |
| history -c | 清空历史记录(本次登录后使用的命令) |

!编号 执行历史记录中编号对应的命令

| date | 查看日期 |
| ip a 或 ip ad 或 ip add 或 ip addr | 查看ip地址 |
| ip route | 查看路由 |
| cat /etc/resolv.conf | 查看DNS |

cat /etc/sysconfig/network-scripts/ifcfg-ens33 查看网络配置

| env | 查看系统环境变量 |
| set | more | 翻页查看用户环境变量(按Ctrl+C退出more) |
| echo $PATH | 查看环境变量PATH |
| echo "hello" | 输出文本hello |

clear 清屏,也可以Ctrl+L
bash 复制代码
ip addr | grep 127                    # ip地址信息中过滤127
set | more | grep ^PATH               # 翻页查看用户所有变量,过滤以PATH开头的变量值
export PATH=/opt/mysql/bin/:$PATH     # 临时添加环境变量PATH

其他部分命令:目录和文件文件内容传输文件安装软件用户/组/文件权限


shell 特殊符号

|-------------------|------------------------------------------------------------------|
| >,>> | 输出重定向,写入到文件中,>> 追加写入 |
| <,<< | 输入重定向,从文件读取数据,<< 重定向到交互式shell脚本或程序 |
| # | 注释。shell脚本中第一行(#!),指定脚本运行时使用的shell解释器 |
| " ",' ' | 双引号,单引号。内容可多行显示。双引号还可以解析变量。 |
| ! | 历史命令调用,find中是取反 |
| / | 路径分隔符 |
| \ | 转义,表示某特殊字符只是普通字符。行末的 \ 表示一条长的命令换行输入 |
| | | 管道符,前面命令的结果给后面命令使用 |
| * | 通配符,匹配所有字符 |
| | 调用变量。正则表达式中表示行尾。 | | ( ) | 用来嵌套命令,反引号中的命令先执行 |
| ~ | 用户家目录(普通用户在/home目录下,root在/root目录下) |
| ... | 一个点是当前目录,两个点是上级目录 |
| ; ,|| ,&& | 命令连接符。"**;"**命令之间不影响。"&&" 命令都正确才执行。"||" 命令失败执行下一个,命令成功不执行下一个 |


shell 快捷键

| Ctrl + a | 移动到行首 |
| Ctrl + e | 移动到行尾 |
| Ctrl + k | 删除光标位置(含)之后的内容 |
| Ctrl + u | 删除光标位置(不含)之前的内容 |
| Ctrl + L | 清屏(或者 clear) |
| Ctrl + d | 退出终端(或者 exit) |
| Ctrl + c | 取消当前的命令 |
| Alt + f | 按单词前移(往右移) |

Alt + b 按单词后移(往左移)

Linux操作系统运行级别

| 运行级别 | 运行级别名称 | 说明 |
| 0 | poweroff**.target | 关机 |
| 1 | rescue.target | 单用户模式(root权限,用于修复系统、重置密码等) |
| 2 | multi-user
.target | 多用户模式(无网络) |
| 3 | multi-user.target | 多用户模式(完整),常用 |
| 4 | multi-user
.**target | 多用户模式(系统未使用,保留) |
| 5 | graphical.target | 图形界面模式,常用 |

6 reboot**.**target 重启

若本身是多用户模式,即使切换到图形界面模式,也没有图形界面(因系统安装时选择最小安装,只安装必须的程序,没有图形界面相关的程序)。

若本身就是图形界面模式,可以切换到多用户模式,也可以使用root身份再切换回图形界面模式。

centos7 运行级别:

  • 使用 systemd 初始化系统,只启动被请求的服务,使用结束会动态地关闭服务。
  • 通过单元(unit)实现管理,每个服务都有一个单元,每个单元都有一个配置文件(**.**service)。
  • 系统不同的运行级别通过目标(target)模拟实现。

centos6 运行级别:

  • 使用 init 初始化系统,所有后台服务都会启动。
  • 默认配置文件是/etc/inittab。
  • init 运行级别是runlevel。
bash 复制代码
# 查看当前运行级别(centos6)
runlevel

# 查看运行级别配置文件(centos6)
cat /etc/inittab

# 修改运行级别,方法一(centos6)
vi /etc/inittab
("id:运行级别数字:initdefault:" 修改运行级别数字,只能3或5)
reboot

# 修改运行级别,方法二(centos6)
# 将运行级别切换到图形界面模式
init 5
# 将运行级别切换到多用户模式
init 3

单用户模式下解决无限登录问题

因环境变量配置错误等原因,导致登录时 即使用户名密码输入正确,也会无限跳转到登录界面。

这时,root可以进入单用户模式下,修改配置文件。

步骤如下:

  1. 关机,重启。
  2. 选中内核,按键 e 进入编辑。
  3. 找到 "ro rgb quiet " 修改为 "rw init=/bin/bash"。
  4. 按键Ctrl + x 重启,即进入单用户模式。
  5. 修改配置文件。
  6. 输入exec /sbin/init 单用户模式下重启,即退出单用户模式。
  7. 重新登录。

注意:单用户模式只能root权限,用于修复系统、重置密码等,不能远程登录。

若重置密码,则第5步改为修改密码的命令即可。


centos7修改命令行提示符 PS1

| 常用选项(参数) | 说明 |
| \u | 当前用户名 |
| \h | 主机名 |
| \H | 完整的主机名称 |
| \W | 当前目录 |
| \w | 当前目录完整路径 |
| \d | 日期(星期几 月份 日),例如:Wed May 15 |
| \ | 提示字符(# root, 普通用户) |
| \t | 24小时制的时间(HH:MM:SS) |
| \T | 12小时制的时间 |
| \A | 24小时制的时间(HH:MM) |
| \\\e\[?m\\ | 设置字体颜色,此处?为文字颜色数值 |
| \\\e\[m\\ | 取消颜色设置 |

\\\e\[?;?m\\ 设置字体颜色和背景色,第一个?是文字颜色,第二个?是背景色

|-----|--------|-------|
| 颜色 | 文字颜色数值 | 背景色数值 |
| 红色 | 31 | 41 |
| 黄色 | 33 | 43 |
| 蓝色 | 34 | 44 |
| 绿色 | 32 | 42 |
| 白色 | 37 | 47 |
| 黑色 | 30 | 40 |
| 紫红色 | 35 | 45 |
| 青蓝色 | 36 | 46 |

bash 复制代码
# 修改命令行提示符PS1(紫红色文字,青蓝色背景)
# vi/vim打开并编辑~/.bashrc配置文件
vi ~/.bashrc

# \$:提示字符。root显示#,普通用户显示$。一开始设置失误,输成 \\$,导致root显示的是 $
(在文件末尾添加) PS1='[\[\e[35;46m\]\u@\h \W\[\e[m\]]\$ '"

#重新执行配置文件
source ~/.bashrc

# 查看命令行提示符PS1
echo $PS1

补充、centos7没有滚动条

centos7默认没有滚动条,可以按Shift+PgUp向上翻页,Shift+PgDn向下翻页。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式