【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.rhkb.cn/news/328406.html

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

相关文章

Python进度条工具——tqdm

原文链接&#xff1a;http://www.juzicode.com/python-note-tqdm 在安装Python库文件的时候我们经常可以看到这种进度条&#xff1a; 其实Python库中就自带了现成的工具库——tqdm。 tqdm读起来比较拗口&#xff0c;它是从“进程”的阿拉伯语taqaddum简化而来。 安装tqdm 使用…

es 分词器(五)之elasticsearch-analysis-jieba 8.7.0

es 分词器&#xff08;五&#xff09;之elasticsearch-analysis-jieba 8.7.0 今天咱们就来讲一下es jieba 8.7.0 分词器的实现&#xff0c;以及8.x其它版本的实现方式&#xff0c;如果想直接使用es 结巴8.x版本&#xff0c;请直接修改pom文件的elasticsearch.version版本号即可…

OpenCV Radon变换探测直线(拉东变换)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 Radon变换可以将原始图像中直线特征的处理问题转化为变换域图像中对应点特征的处理问题,其中对应特征点的横坐标表示原始图像的旋转角度,一般来讲原始图像中的噪声不会分布在直线的特征上。因此,Radon变换在探测…

Spring Cloud Alibaba 网关 Gateway 集成(7)

项目的源码地址 Spring Cloud Alibaba 工程搭建&#xff08;1&#xff09; Spring Cloud Alibaba 工程搭建连接数据库&#xff08;2&#xff09; Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用&#xff08;3&#xff09; Spring Cloud Alibaba Ribbo…

网络 | 应用层-websocket协议概述与握手过程解析

背景&#xff1a;这里为了实现消息实时传输决定引入websocket协议。 不管是发送消息还是接收消息&#xff0c;都需要实时传输&#xff0c;张三发给李四&#xff0c;李四立马就能收到&#xff0c;基于HTTP实现是有些困难的。 但轮询方式也带来了一些问题 1、消耗更多系统资源&…

【Shell脚本】Shell编程之数组

目录 一.数组 1.基本概念 2.定义数组的方法 2.1.方法一 2.2.方法二 2.3.方法三 2.4.方法四 2.5.查看数组长度 2.6.查看数组元素下标 3.数组分片 4.数组字符替换 4.1.临时替换 4.2.永久替换 5.数组删除 5.1.删除某个下标 5.2.删除整组 6.数组遍历和重新定义 7…

每日Attention学习4——Spatial Attention Module

模块出处 [link] [code] [MM 21] Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection 模块名称 Spatial Attention Module (SAM) 模块作用 空间注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional a…

ubuntu下不生成core dumped

1、先用ulimit -c&#xff0c;如果看到0&#xff0c;说明没有开core dump。 所以我们输入ulimit -c unlimited&#xff0c;打开core dump。 再次用ulimit -c&#xff0c;看到unlimited了&#xff0c;说明core dump打开了。 注意这句ulimit -c unlimited只对当前会话有效。要永…

【操作系统期末速成】​内存管理|内存的装入模块在装入内存的方式|分配管理方式|页面置换算法|页面置换

&#x1f3a5; 个人主页&#xff1a;深鱼~&#x1f525;收录专栏&#xff1a;操作系统&#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到…

常见加解密算法02 - RC4算法分析

RC4是一种广泛使用的流密码&#xff0c;它以其简洁和速度而闻名。区别于块密码&#xff0c;流密码特点在于按位或按字节来进行加密。 RC4由Ron Rivest在1987年设计&#xff0c;尽管它的命名看起来是第四版&#xff0c;实际上它是第一个对外发布的版本。 RC4算法的实施过程简洁…

uniapp高性能图片裁剪插件,可添加水印

效果图&#xff1a; 插件地址&#xff1a;高性能图片裁剪&#xff0c;裁剪图片后自动添加水印 - DCloud 插件市场 示例&#xff1a; <template> <view><button click"select">选择图片</button><image mode"widthFix" :src&qu…

Java—如何判断两个浮点数相等

结论 一旦有浮点型数据参与运算的结果&#xff0c;一定不要使用 “ ” 与其比较。 提出问题 我们知道在Java中浮点数float 和 double 的值不能很精准的表示一个小数&#xff0c;因为会有精度损失。 下面来看一个例子&#xff1a; public class FloatTest {public static …

在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)

前言&#xff1a;原文在我的博客网站中&#xff0c;持续更新数通、系统方面的知识&#xff0c;欢迎来访&#xff01; 在Linux系统上使用nmcli命令配置各种网络&#xff08;有线、无线、vlan、vxlan等&#xff09;https://myweb.myskillstree.cn/123.html 更新于2024/5/13&…

基于SpringBoot的竹宣非遗宣传网站

摘要 随着互联网的普及和数字化时代的到来&#xff0c;竹编等非物质文化遗产的保护与传承面临新的机遇和挑战。该研究旨在使用SpringBoot后端框架与Vue前端框架&#xff0c;构建一个竹编非遗宣传网站&#xff0c;通过丰富的展示形式和交互体验&#xff0c;提升公众对竹编这一非…

[牛客网]——C语言刷题day2

答案&#xff1a;B 解析&#xff1a; char *p[10] 是指针数组,数组里存放了10个指针,在64位系统下指针占8个字节,所以sizeof(p) 10 * 8 80. char (*p1)[10]是数组指针,p1是一个指向存放10个char类型的数组的指针,所以sizeof(p1) 8. 答案&#xff1a;B 解析&#xff1a…

asp.net 齿轮加工车间生产管理系统-计算机毕业设计源码56014

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;在现实运用中&#xff0c;为方便用户能够可以随时进行在线…

Altium Designer封装库和元器件符号库下载与导入教程(SnapEDA 、Ultra Librarian、Alldatasheetcn)

1.AD封装库和元器件符号库下载网址 以下是一些全球热门的Altium Designer封装库和元器件符号库下载网址推荐&#xff1a; Altium Content Vault (现称为Altium Manufacturer Part Search)&#xff1a;这是Altium官方提供的元器件库&#xff0c;可以直接在Altium Designer中使用…

第 397 场 LeetCode 周赛题解

A 两个字符串的排列差 模拟&#xff1a;遍历 s s s 记录各字符出现的位置&#xff0c;然后遍历 t t t 计算排列差 class Solution {public:int findPermutationDifference(string s, string t) {int n s.size();vector<int> loc(26);for (int i 0; i < n; i)loc[s…

【2024华为HCIP831 | 高级网络工程师之路】刷题日记(18)

个人名片&#xff1a;&#x1faaa; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&a…

libsndfile读取wav文件基本属性

本文的目的是提供一种方法读取wav文件的基本属性&#xff1a;音频帧数&#xff0c;格式、通道数和采样率信息。 代码如下所示&#xff1a; #include <iostream> #include <QDebug> #include "sndfile.h"using namespace std;int main() {// 初始化 ALS…