【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.mzph.cn/pingmian/12987.shtml

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

相关文章

vue3.0+antdv的admin管理系统vue-admin-beautiful推荐

前言 几年前&#xff0c;笔者自学了vue这一优秀的前端框架&#xff0c;但苦于没项目练手&#xff0c;无意间发现了vue-admin-beautiful这一优秀的前端集成框架。当时就使用它做了一很有意思的小项目---终端监控云平台&#xff0c;实现了前端和后台的整体功能。整体方案介绍参见…

查询新加 字段不返回数据要看 有没有 AllInfoResultMap 有要再里面加字段

查询新加 字段不返回数据要看 有没有 AllInfoResultMap 有要再里面加字段

HTTP客户端手动解析响应体数据

服务端 package mainimport ("easyGo/person""encoding/json""net/http" )func main() {http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {p : &person.Person{Name: "jackie",Age: 30,T: pe…

操作系统-单片机进程状态问题(三态模型问题)

例题&#xff1a;在单处理机计算机系统中有1台打印机、1台扫描仪&#xff0c;系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4&#xff0c;其中P1为运行状态&#xff0c;P2为就绪状态&#xff0c;P3等待打印机&#xff0c;P4等待扫描仪。此时&#xff0c;若P1释放…

Java并发编程VarHandle类

Java 的 VarHandle 是在 Java 9 中引入的一种新机制&#xff0c;旨在提供对变量&#xff08;包括对象字段、数组元素和静态变量&#xff09;的可变引用和非阻塞操作。VarHandle 主要用于并发编程&#xff0c;提供了一种更灵活且性能更高的方式来进行变量访问和更新操作&#xf…

es6新语法和ajax和json

es6新语法 1.定义变量&#xff1a;let 2.定义常量&#xff1a;const <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

用友GRP-U8 userInfoWeb SQL注入致RCE漏洞复现 (XVE-2024-10539)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8R10行政事业内控管理软件 userInfoWeb接口处存在SQL注入漏洞,未授权的…

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件 ADS使用记录之使用RFPro进行版图联合仿真中已经简单介绍了使用RFPro对版图就行仿真的方法。但是&#xff0c;如果版图中含有一些非微带的结构&#xff0c;比如说电感、电容、晶体管呢&#xff0c;在此举例解释一下。 …

leetcode61-Rotate List

题目 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 分析 这道题目用快慢指针即可解&#xff0c;先快指针往前走k个位置&#x…

MyBatis中关于resultType和resultMap的区别

在MyBatis中&#xff0c;resultType和resultMap都是用于处理查询结果的&#xff0c;但它们之间存在一些关键的区别。 映射方式&#xff1a; resultType&#xff1a;直接表示返回类型&#xff0c;它通常对应着Java模型对象&#xff08;如POJO&#xff09;中的实体。当查询出来的…

百度:文心大模型日均处理Tokens文本已达2490亿

今日&#xff0c;记者从百度获悉&#xff0c;文心大模型日均处理Tokens文本已达2490亿。百度表示&#xff0c;这几天&#xff0c;国内外多家厂商相继发布大模型最新进展和相关应用&#xff0c;百度很高兴地看到&#xff0c;“闭源大模型公有云”已经成为全球AI市场的主流趋势。…

Django信号与扩展:深入理解与实践

title: Django信号与扩展&#xff1a;深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tags: Django信号松耦合观察者扩展安全性能 第一部分&#xff1a;Django信号基础 Django信号概述 一. Django信号的定义与作用 Django信…

NAT技术总结与双向NAT配置案例

NAT的转换方式&#xff1a; 1.静态转换&#xff1a;固定的一对一IP地址映射。 interface GigabitEthernet0/0/1 ip address 122.1.2.24 nat static global 122.1.2.1 inside 192.168.1.1 #在路由器出接口 公网地址 私网地址。 2.动态转换&#xff1a;Basic NAT nat address-gr…

有多少小于当前数字的数字

链接&#xff1a;https://leetcode.cn/problems/how-many-numbers-are-smaller-than-the-current-number/description/ 思路&#xff1a; 最简单的思路来说&#xff0c;就是双重for循环进行遍历&#xff0c;来判断个数&#xff0c; 优化思路&#xff0c;其中一个思路就是递推 …

day3 leetcode20 有效的括号

有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相…

C语言操作符详解(一)

算术操作符&#xff1a; 算术操作符有&#xff1a;加法 减法- 乘法* 除法/ 取余% 算术操作符该注意的点&#xff1a; 1.除了%操作符之外&#xff0c;其他的操作符都可以作用于整数和浮点数。 2.对于/操作符来说&#xff0c;两个数都是整数的话&#xff0c;结果只能是…

[数组专题]力扣88

1. 力扣88 : 合并两个有序数组 题 : 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&…

多区域OSPF路由配置

一、基础配置 1.搭建实验拓扑图 2.实验编址 具体如何配置可以看这一篇详细的博文&#xff1a;单区域OSPF实验-CSDN博客 3.分别检查六个路由器的配置&#xff1a; 使用命令display ip interface brief R1的配置 其他大家可以调出来&#xff0c;再与实验拓扑图进行比对&#…

上班族兼职新篇章:10大实战攻略,轻松年赚1-20万

对于众多上班族而言&#xff0c;如何在工作之余赚取额外收入&#xff0c;开启自己的第一份副业&#xff0c;已成为许多人心中的疑问。每个人的才能和兴趣点不尽相同&#xff0c;但都有机会找到适合自己的兼职方式。接下来&#xff0c;就让我们一起探索这10大实战攻略&#xff0…

景源畅信电商:做抖音有哪些未开发的蓝海领域?

在互联网信息爆炸的今天&#xff0c;抖音已经成为人们获取信息和娱乐的重要渠道。然而&#xff0c;随着用户数量的增加和内容的丰富&#xff0c;抖音的红海竞争也日益激烈。在这样的背景下&#xff0c;寻找还未被充分开发的蓝海领域&#xff0c;对于内容创作者来说&#xff0c;…