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

目录

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

Linux shell 以及 shell配置文件

shell 命令

shell 特殊符号

shell 快捷键

Linux操作系统运行级别

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

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命令。

# 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: 

# 查看环境变量中的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
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操作系统运行级别

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

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

 

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

centos7 运行级别:

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

centos6 运行级别:

  • 使用 init 初始化系统,所有后台服务都会启动。
  • 默认配置文件是/etc/inittab。
  • init 运行级别是runlevel。
# 查看当前运行级别(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,$ 普通用户)
\t24小时制的时间(HH:MM:SS)
\T12小时制的时间
\A24小时制的时间(HH:MM)
\[\e[?m\]设置字体颜色,此处?为文字颜色数值
\[\e[m\]取消颜色设置
\[\e[?;?m\]设置字体颜色和背景色,第一个?是文字颜色,第二个?是背景色
颜色文字颜色数值背景色数值
红色3141
黄色3343
蓝色3444
绿色3242
白色3747
黑色3040
紫红色3545
青蓝色3646
# 修改命令行提示符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向下翻页。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704861.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯-外卖店优先级(简单写法)

“饱了么”外卖系统中维护着 N 家外卖店&#xff0c;编号 1∼N。 每家外卖店都有一个优先级&#xff0c;初始时 (0 时刻) 优先级都为 0。 每经过 1 个时间单位&#xff0c;如果外卖店没有订单&#xff0c;则优先级会减少 1&#xff0c;最低减到 0&#xff1b;而如果外卖店有订…

IDC:2023年中国IT安全软件市场同比增长4.7%

IDC最新发布的《中国IT安全软件市场跟踪报告&#xff0c;2023H2》显示&#xff0c;2023年下半年中国IT安全软件市场厂商整体收入约为169.8亿人民币&#xff08;约合23.5亿元美元&#xff09;&#xff0c;同比上升2.7%。结合全年数据&#xff0c;2023全年中国IT安全软件市场规模…

Linux---编辑器vim的认识与简单配置

前言 我们在自己的电脑上所用的编译软件&#xff0c;就拿vs2022来说&#xff0c;我们可以在上面写C/C语言、python、甚至java也可以在上面进行编译&#xff0c;这种既可以用来编辑、运行编译&#xff0c;又可以支持很多种语言的编译器是一种集成式开发环境&#xff0c;集众多于…

腾讯开源混元DiT文生图模型,消费级单卡可推理

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…

基于Java的飞机大战游戏的设计与实现(论文 + 源码)

关于基于Java的飞机大战游戏.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89313362 基于Java的飞机大战游戏的设计与实现 摘 要 现如今&#xff0c;随着智能手机的兴起与普及&#xff0c;加上4G&#xff08;the 4th Generation mobile communication &#x…

汇聚荣:拼多多长期没有流量如何提高?

在电商的海洋中&#xff0c;拼多多以其独特的团购模式吸引了众多消费者的目光。然而&#xff0c;随着市场竞争的加剧和消费者需求的多样化&#xff0c;一些商家发现自家店铺的流量持续低迷&#xff0c;销售业绩难以突破。面对这样的挑战&#xff0c;如何有效提升拼多多店铺的客…

【动态规划五】回文串问题

目录 leetcode题目 一、回文子串 二、最长回文子串 三、分割回文串 IV 四、分割回文串 II 五、最长回文子序列 六、让字符串成为回文串的最少插入次数 leetcode题目 一、回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/…

Polylang Pro插件下载:多语言网站构建的终极解决方案

在全球化的今天&#xff0c;多语言网站已成为企业拓展国际市场的重要工具。然而&#xff0c;创建和管理一个多语言网站并非易事。幸运的是&#xff0c;Polylang Pro插件的出现&#xff0c;为WordPress用户提供了一个强大的多语言解决方案。本文将深入探讨Polylang Pro插件的功能…

Go微服务开源框架kratos的依赖注入关系总结

该文章为学习开源微服务框架kratos的学习笔记&#xff01;官方文档见&#xff1a;简介 | Kratos Kratos 一套轻量级 Go 微服务框架&#xff0c;包含大量微服务相关框架及工具。 通过 Kratos 工具生成的 Go工程化项目模板如下&#xff1a; application |____api | |____hello…

ZYNQ之嵌入式驱动开发——字符设备驱动

文章目录 Linux驱动程序分类Linux应用程序和驱动程序的关系简单的测试驱动程序在petalinux中添加LED驱动新字符设备驱动 Linux驱动程序分类 驱动程序分为字符设备驱动、块设备驱动和网络设备驱动。 字符设备是按字节访问的设备&#xff0c;比如以一个字节收发数据的串口&#…

基于51单片机的自动浇花器电路

一、系统概述 自动浇水灌溉系统设计方案&#xff0c;以AT89C51单片机为控制核心&#xff0c;采用模块化的设计方法。 组成部分为&#xff1a;5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块&#xff0c;结构如…

基于SSM的婚恋网站的设计与实现(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的婚恋网站的设计与实现&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…