学Linux的第五天

news2024/11/5 13:08:49

目录

命令解释器-shell-负责解析用户输入的命令

分类:

type --查看命令是内置命令、外置命名、alias命令

注意

Linux 中的特殊符号

拓展

命令别名aliasalias 别名='原命令 - 参数'

常用的别名untar,wget,getpass,ping,speed,ipe,c

删除别名unalias

注意

history--查阅命令历史记录

注意

账户和组管理

账户和工作组的分类

用户分为三类:

工作组分析两类:

账户和工作组的配置文件

用户账号文件

id    查看账户的UID、GID等信息

用户密码文件

工作组账号文件

用户管理

添加新用户useradd

修改账户信息usermod

账号设置密码passwd

命令设置密码

删除账号userdel

账户切换su

控制用户对系统命令的使用权限sudo


 

命令解释器-shell-负责解析用户输入的命令

分类:

内置命令 (shell 内置 ) shell 为了完成自我管理和基本的管理,不同的 shell 内置不同的命令,但是大
部分都差不多
外置命令,在文件系统的某个目录下,有个与命令名称相同的文件

type --查看命令是内置命令、外置命名、alias命令

type - 参数 命令名
type -a 列出当前命令可以如何执行
type -t 仅列出命令按照哪种方式执行

注意

1.在命令行中cd可以直接写是因为系统环境可以识别,echo   $PATH
2.PATH=$PATH:/mnt在原来基础上加/mnt,这个是临时的
3.两个窗口独立,系统中设定在文件中保存才是永久


Linux 中的特殊符号

;    可使用分号分隔多条命令     在一行上输入和执行多条较短的命令,可使用分号来分隔命令
*    匹配任意零个或者多个字符    不能用于创建文件
?  匹配任意单个字符     不能用于创建文件
[]    匹配方括号中的任意一个字符,表示范围可以用"-”    不能用于创建文件
[^] 或者 [!]     匹配方括号中的任意一个字符或数字后进行取反
用于查找和删除文件,不用于创建文件
{string,string}      匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".."
可用于创建、查看、删除文件
\      使\ 后面的特殊字符失效
例如:可以在命令行后面加一个 \ ,再按回车键时 并不表示执行该命令,而是表示换行,通过此方式 将一个较长的命令分成多行表达,增强命令的可读 性。换行后系统自动显示提示符 >
`      反引号,一般用于引用命令,执行的时候反引号里面的命令会被执行,与$() 作用相同
'       单引号,将单引号内的所有内容都原样输出所有特殊字符在单引号里面都会失去特殊含义
"      双引号,除了几个特殊字符外,将双引号内的几乎所有内容都原样输出
       ”$“ “\” 以及 “ ` ” 在双引号里面仍然保留自己的特殊含义

拓展

 空格是一个字符
[[:alpha:]]字母lower小写,upper大写,digit数字
punct符号space空格alnum字母或数字,第一个中括号表示集合,两个第二个中括号连起来表示或,模糊匹配
{a,b,c}三个文件,[a-c]a到c,反选只能用于中括号,{1..5}1连续到5,

“”引号。批量转义。单引号-强引用。双引号-弱引用
单引号引起来先执行

命令别名alias
alias 别名='原命令 - 参数'

例子

[root@server ~] # alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'

常用的别名untar,wget,getpass,ping,speed,ipe,c

由于 tar 命令的参数太多不好记忆,所以将解压缩设为

alias untar='tar -zxvf '

下载大文件时的断点续连,防止网络异常中断

alias wget = 'wget -c '
生成 20 个字符的随机数密码,使用 openssl 命令,但命令又很长不方便,可以设置别名
alias getpass = "openssl rand -base64 20"
ping url 时会无限次输出,但其实没多大意义,可以使用 -c 命令将其限制为 5 次输出

alias ping='ping -c 5'

speed 测试网速命令speedtest-cli ,为了方便使用可以设置别名:
安装 : speedtest-cli 是基于 python 编写的需要使用 pip 工具下载
[root@server ~] # speedtest-cli --list
ipe
公网 IP别名设置: alias ipe = 'curl ipinfo.io/ip'
清屏,一般使用 ctrl + l 快捷键,也可以将 clear 命令定义得更短,这样使用起来更直接,更粗暴
alias c = 'clear'

删除别名unalias

unalias 别名
注意
1.在命令行中使用 alias 命令设置的别名仅在该次登入有效,如果重新开启一个 Shell ,或者重新登录系
统,则这些 alias 将无法使用。
2.在 linux 中提供 alias 永久化的方法:
将别名命令写入到 ~/.bashrc /etc/bashrc 文件中
执行 source ~/.bashrc source ~/etc/bashrc 生效
3.alias   ping='ping   -c1    -w1'别名,代替,每次使用ping(实际上是执行带有-c 1 -W 1参数的ping)时,就只会发送一个 ICMP 请求包并且等待 1 秒获取响应,而不是像原始ping命令那样一直发送请求直到手动停止。

history--查阅命令历史记录

history - 参数
number :显示最近 number 条命令历史
-c :清空当前历史命令

注意

历史在bash.history里,清空文件里的历史

账户和组管理

账户和工作组的分类

用户分为三类:

超级账户 —— 账户名为 root ,它具有一切权限,只有进行系统维护 ( 例如:建立用户等 ) 或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
系统账户 —— Linux 系统正常工作所必需的账户,主要为了满足相应的系统进程对文件属主的要求而建立的,如:bin daemon adm sshd 等,注意:系统账户不能登录。
普通用户 —— 是为了让使用者能够使用 Linux 系统资源而建立的,大多数用户属于此类。

工作组分析两类:

基本组 ( 私有组 ) :新建立账户时,若没有指定账户所属的工作组,会建立和账户名相同的组
扩展组 ( 公有组 ) :可以容纳多个用户,组中的账户都具有组所拥有的权利。

账户和工作组的配置文件

用户账号文件     /etc/passwd
用户密码文件     /etc/shadow
工作组账号文件   /etc/group
工作组密码文件    /etc/gshadow

用户账号文件

/etc/passwd 是一个文本文件,用于定义系统的账号,由于所有账户都对 passwd 有读权限,所以该
文件中只定义用户账号,而不保存口令。
[root@server ~]# ll /etc/passwd
-rw-r--r--. 1 root root 2083 4月 26 14:39 /etc/passwd
账号名 : 密码 :UID:GID: 个人资料 : 主目录 :Shell
UID :账户的 ID 值,是一个数字标识,相当于账户的 身份证编号 ,具有唯一性
          root 账户 UID——0
          系统账户的 UID——1 999
          普通账户的 UID—— 1000
          注意:普通账户从 1000 开始编号,连续编号,即使系统管理员某些账户号码未使用,普
通账户也不可使用
GID :基本组的 ID 值,用来区分不同的工作组,相同的组具有相同的 GID
个人资料:注释信息,可以记录账户的完整姓名、地址、办公室电话、家庭电话等个人信息。
家目录:类似 Windows 的个人目录,通常是 /home/ 账户名
Shell :定义用户登录后激活的 Shell ,默认是 Bash Shell

id    查看账户的UIDGID等信息

id 账户名

用户密码文件

/etc/shadow 存储密码加密后的密文 ,该文件为了保证了账户密码的安全性只有 root 账户拥有读权限,注意:若该文件权限发生变化,需要留心恶意攻击
/etc/shadow 文件中的每行 9 个字段的含义为
登录名 : 加密口令 : 最后一次修改时间 : 最小时间间隔 : 最大时间间隔 : 警告时间 : 不活动时间 : 失效时间 : 标志

工作组账号文件

/etc/group 文件存储每个组工作组信息
Groupname     组的名字
Passwd           组的加密口令
GID                 是系统区分不同组的ID ,在 /etc/passwd 域中的 GID 字段是用这个数来指定账户的基本组
Userlist            是用“ 分开的账户名,列出的成员以该组为附加组

用户管理

添加新用户useradd

useradd - 参数 账户名
-c 注释信息:设置相关的说明信息,如 , :真实姓名、邮箱地址等。
-d :目录:设定账户的家目录 ( 默认为 /home/ 用户名 )
-e YYYY-MM-DD :设置用户的失效日期 , 此日期后将不能使用该账号。
-f 天数:指定密码到期后多少天账号被禁用 , 若指定为 0, 则表示账号到期后被立即禁用 ; 若指定 为 -1, 则表示账号过期后不被禁用( 即密码永不过期 )
-g 组名或 GID 号:为账户指定所属的基本组 , 该组在指定时必须已存在。
-G :组名或 GID 号列表:为账户指定所属的扩展组 , 各组在指定时已存在 , 附加组可以有多个 , 组之间用 “,” 分 隔。
-M :不创建账户家目录。
-N :不创建与账户名同名的基本组。
-p :密码:指定账户的登录密码。
-s shell 名:指定账户登录后使用的 Shell, 默认是 bash
-u 用户号:设置账号的 UID, 默认是已有账户的最大 UID 1 。如果同时有 -o 选项 , 则可以重复使用其他用户的标识号

修改账户信息usermod

usermod - 参数 账户名
常用参数 -c,-d,-m,-g,-G,-s,-u , 意义与 useradd 命令中的参数相同
-l 新账户名:更改账户的名称 , 必须在该用户未登录的情况下才能使用
-L :锁定 ( 暂停 ) 用户账户 , 使其不能登录使用
-U :解锁用户账户

账号设置密码passwd

passwd - 参数 账户名
Linux 的账户必须设置密码后,才能登录系统
-d :清空指定用户的口令,与未设置口令的账户不同 , 未设置口令的账户无法登录系统 , 而口令为空的账户可
以。
-e :使用户的账号密码立即过期,强迫用户下次登录时必须修改口令。
-i :口令过期后多少天停用账户。
-l :锁定 ( 停用 ) 用户账户。
-n :指定口令的最短存活期。
-x :指定密码的最长使用期限。
-u :解锁用户账户
密码不能为空
密码不要写成回文
只有 root 用户才能指定用户名
命令设置密码
echo 密码 | passwd --stdin 用户名
echo 密码 | passwd --stdin 用户名 > /dev/null # 无信息提示

删除账号userdel

userdel 账户名
参数
-r :在删除该账户的同时,一并删除该账户对应的家目录

账户切换su

su   账户名

su su - 命令区别
区别:加载的配置文件不一样
su 切换方式加载的文件: ~/.bashrc /etc/bashrc
su - 切换方式加载的文件: /etc/bashrc /etc/profile ~/.bashrc ~/.bash_profile
注意: su - 相当于重新建立环境,若全局变量需要继续使用则不能使用 su - 命令
注意
root 用户切换到任何用户不需要密码验证,而从普通用户到 root 或其他普通用户均需要输入目标
用户的密码且验证成功后才可切换。

控制用户对系统命令的使用权限sudo

作用
使用 sudo 命令可以提高普通用户的操作权限,使用前需要 root 进行配置
sudo 的执行流程如下:
当执行 sudo 提权时,需要输入自己密码来确认( root 执行 sudo 时不需要输入密码)
若密码输入成功,系统会去 /etc/sudoers 文件中查找该用户是否有执行 sudo 的权限
若用户具有执行 sudo 的权限,便开始 sudo 后续接的命令;
配置 /etc/sudoers 文件方式
执行 visudo vim /etc/sudoers
[root@server ~]# vim /etc/sudoers
# 定位100行输入:
fox ALL=(ALL) ALL
# 需要wq!强制保存退出
[root@server ~]# su fox
[fox@server root]$ cd /root
bash: cd: /root: 权限不够
[fox@server root]$ sudo cd /root
[sudo] fox 的密码:
[fox@server root]$ pwd
/root

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

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

相关文章

JavaEE初阶---servlet篇(二)(smartTomcat的使用相关错误类型)

文章目录 1.servlet创建项目问题说明2.SamrtTomcat插件3.乱码问题的说明4.其他的错误类型说明4.1常见错误之4044.2常见错误之4054.3常见错误之5004.4空白页面/无法访问 1.servlet创建项目问题说明 servlet进行这个项目创建的时候,我们的这个web.xml里面的这个内容就…

Centos 网络接口打vlan标签

Centos 网络接口打vlan标签 本次使用给bond打vlan标签,其实其他普通接口也一样 Centos创建bond前需要关闭NetworkManager [root192 network-scripts]# systemctl disable NetworkManager --now Removed symlink /etc/systemd/system/multi-user.target.wants/Netwo…

使用Docker-Compose安装redis,rabbitmq,nacos,mysql,nginx,tomcat,portainer组件教程

因为开发经常会用到一些组件,又不想在本地启动,所以买了个服务器,然后将这些组件都安装到服务器上以便开发使用。下面就记录下使用docker-compose安装组件的教程以及一些需要注意的地方。 关于docker和docker-compose的安装在另一篇博客中有…

WPF+MVVM案例实战(二十二)- 制作一个侧边弹窗栏(CD类)

文章目录 1、案例效果1、侧边栏分类2、CD类侧边弹窗实现1、样式代码实现2、功能代码实现3 运行效果4、源代码获取1、案例效果 1、侧边栏分类 A类 :左侧弹出侧边栏B类 :右侧弹出侧边栏C类 :顶部弹出侧边栏D类 :底部弹出侧边栏2、CD类侧边弹窗实现 1、样式代码实现 在原有的…

解决 “Error: listen EACCES: permission denied 0.0.0.0:80“ 错误

前言 在开发过程中,我们经常会遇到各种各样的错误。其中一个常见的错误是 Error: listen EACCES: permission denied 0.0.0.0:80。这个错误通常发生在尝试启动一个开发服务器时,服务器试图绑定到80端口,但由于权限不足而失败。本文将详细介绍…

国产之光-海豚调度器的入门知识篇

目录 概念和定义 核心特性 核心组件 工作流程 环境准备 系统软件方面 硬件方面 部署方式 单机模式 伪集群模式 集群模式 基本配置 工作流定义 调度管理 定时调度 手动调度 监控告警 任务类型扩展 资源管理 权限控制 概念和定义 Apache DolphinScheduler是一…

使用Netty实现一个简单的聊天服务器

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:Netty 🥭本文内容&a…

新世联科技:NG2-A-7在DAC空气捕集提取CO2的应用

一、DAC空气捕集提取CO2的介绍 直接空气碳捕获(Direct Air Capture,简称DAC)是一种直接从大气中提取二氧化碳的技术。 二、DAC空气捕集提取CO2的前景 从大气中提取的这种二氧化碳可以作为循环经济的一部分以各种不同方式使用。未来&#xf…

ISUP协议视频平台EasyCVR视频融合平台接入各类摄像机的方法

安防视频监控ISUP协议视频平台EasyCVR兼容性强、支持灵活拓展,平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 想要将摄像机顺利接入EasyCVR平台,实现视频监控的集中管理和分发&#x…

(五)Spark大数据开发实战:灵活运用PySpark常用DataFrame API

目录 一、PySpark 二、数据介绍 三、PySpark大数据开发实战 1、数据文件上传HDFS 2、导入模块及数据 3、数据统计与分析 ①、计算演员参演电影数 ②、依次罗列电影番位前十的演员 ③、按照番位计算演员参演电影数 ④、求每位演员所有参演电影中的最早、最晚上映时间及…

达梦数据库宕机问题分析及处理

官方宕机原因排查 官方故障诊断排除 相关概念 达梦数据库宕机往往会产生core文件,解读core文件是分析宕机原因的主要手段,类似oracle的diag.trc或system dump转储文件,记录数据库线程状态、sql语句等。 首选的排查方向可以从内存溢出、磁盘…

spring ai 入门 之 结构化输出 - 把大模型llm返回的内容转换成java bean

目录 ​编辑 将AI非结构化文本转换为特定格式数据的应用场景说明 Spring AI 介绍 :为Java开发者打造的AI应用开发框架 Qwen 介绍 : 一个国内领先的开源大模型 Spring AI Alibaba框架介绍 : 一个国内最好的spring ai实现 使用spring ai …

HbuildderX运行到手机或模拟器的Android App基座识别不到设备 mac

寻找模拟器 背景: 运行的是h5,模拟器是网易MuMu。 首先检查一下是否配置dab环境,adb version 配置一下hbuilderX的adb: 将命令输出的路径配置到hbuilderx里面去,然后重启下HbuilderX。 开始安装基座…一直安装不…

使用Docker Compose构建多容器应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Docker Compose构建多容器应用 引言 Docker Compose 简介 安装 Docker Compose 创建基本配置 运行多容器应用 查看服务状态 …

react-router与react-router-dom的区别

写法上的区别: 写法1: import {Swtich, Route, Router, HashHistory, Link} from react-router-dom;写法2: import {Switch, Route, Router} from react-router; import {HashHistory, Link} from react-router-dom;react-router实现了路由的核心功能 react-router-…

Python 字符串类型中 ``split(“\n“)`` 与 ``splitlines()`` 方法的一些区别

最近在以 self.__print("#" * 20 "\n") 调用自己写的 __print 接口时发现打印的时候 "\n" 没有打出来,进而发现了 split("\n") 与 splitlines() 方法的一些区别。 一个是参数上,split 需要传递一个字符串作为…

Java Iterator 实现杨辉三角

一、问题描述 杨辉三角定义如下: 1/ \1 1/ \ / \1 2 1/ \ / \ / \1 3 3 1/ \ / \ / \ / \1 4 6 4 1/ \ / \ / \ / \ / \ 1 5 10 10 5 1 把每一行看做一个list,试写一个 Iterator,不断输出下一行的 list&#xf…

Spark 的介绍与搭建:从理论到实践

目录 一、分布式的思想 (一)存储 (二)计算 二、Spark 简介 (一)发展历程 (二)Spark 能做什么? (三)spark 的组成部分 (四&…

Linux操作系统 ------(3.文本编译器Vim)

目录 1.前言 2.本章学习目标 3.vim的三种工作模式 3.1一般模式‌ 3.2编辑模式‌ 3.3命令行模式‌ 4.运行vim 5.vim 不同工作模式下的常见命令 6.一般模式下的功能键 6.1移动光标类 6.2删除、复制和粘贴类 6.3查找替换类 7.从一般模式进入编辑模式 8.命令行模式下的…

RocketMQ的消息类型

RocketMQ的消息类型 文章目录 RocketMQ的消息类型一、顺序消息二、广播消息应用场景:示例代码:实现思路:注意点: 三、延时消息应用场景:核心方法: 四、批量消息应用场景:示例代码:注…