2023.10.28
创建目录mkdir +目录名 创建目录
删除目录下的文件:rm -rf *
默认显示的是修改时间
Access访问时间:用户读取文件的内容时间
Modify修改时间:修改文件内容的时间
Change改变时间:用来标记文件原数据发生变化的时候
Brith创建时间:创建文件的时间
Stat用于显示文件、系统的状态信息
touch anaconda-ks.cfg
touch修改文件的时间戳
如果touch一个已经存在的文件,则会把它除了创建时间以外的剩下时间全部修改
如果touch一个不存在的文件,则会创建该文件
touch-a 只会修改访问时间
touch-c 不去创建任何文件
touch-m 只修改modify文件时间
touch创建多个文件
例:touch{1..3}
只有Birth行不变,其他三行都变了
创建目录 mkdir 例 mkdir a
级别目录
创建级别目录 mkdir -p a/b
忽略提示信息强制删除文件 :/rm 4(文件名称) 或者 rm -f 4
删除目录且目录里的东西全部删除:rm -f -r 5(目录文件) (联合使用:rm -rf 5(目录对象))
rm -rf - *(全部删除)*代表全部匹配
帮助手册: man (命令)例:man ls
info (命令)
Help (命令)
时间:date (显示当前系统时间)
更改系统时间:
date(不加-s)月+日+时间+年
date(+-s) 年+月+日+分
硬件时间同步到系统时间:hwclock -s
文件类型:- 普通文件 l 链接文件 字符文件 管道文件 d目录文件 设备文件 管道文件套接字文件
硬链接的所有节点是一样的,软连接是不一样的
软连接是浅蓝色, ln -s 软链接 ln 硬连接
2023.10.31
Cp 选项 源文件 目标文件
-a 复制目录,保留链接,文件属性,并将目录下所有东西复制
-p 保留源文件的权限,时间戳
-r 复制目录及其所有的子目录和文件 时间戳信息会改变,会变成复制时的时间
mv-move files(移动命令)
将文件2.3移动到b目录
将文件5移动文件6(不存在)则覆盖
将目录a移动到目录b
批量移动(目录)
移动到一个不存在的目录下,覆盖了
快捷键
Ctrl+a/Ctrl+左箭头:调到命令行行首
Ctrl+e/Ctrl+右箭头:调到命令行行位
Ctrl+d:删除光标上的命令
Ctrl+u:删除光标前的命令
Ctrl+k:删除光标后的命令
数据流和重定向
标准输入stdin(standard input):从键盘获取输入。代码0
标准正确输出 stdout (standard output): 命令执行后的正确信息会输出到屏幕上,
代码1
标准错误输出 stderr(standard error output): 命令执行失败后的错误信息会输出到屏幕上
代码2
重定向操作符
输出重定向操作符
>输出重定向符 >>追加重定向符
将系统时间放到f2文件
用cat命令查看
将pwd放到f2后,再查看
覆盖了原来的系统时间
用追加重定向符号,不会覆盖原有信息,会进行添加
Echo
后面跟什么内容就会达到屏幕
Echo +内容 重定向符到f2
查询f2
重定向符创建文件f7
Cat 查询文件时,省去了输入重定向符
直接输入cat回车,会出现在屏幕
Ctrl+C结束
Ctrl+C终止
结束语:eof
给name存储一个zhangsan
用echo $name 查询
赋值一个lisi,会将原先的zhangsan覆盖
tee
|(管道符):用于两个命令或者多个命令相连接
利用tee和管道符 filename,再用cat查一下,结果一样
ll / | tee f2
再cat一下f2
进入vim
Shift +:
退出vim :q!
Vim创建文件:
:help version
将etc 下的passed 放到aa让后vim
vim新建文件(在aa里建一个filename文件)
vim filename 打开vim并创建名为filename的文件
打开单个文件
vim file
同时打开多个文件
vim fil条e1 file2 file3 …
在vim窗口中打开一个新文件
:open file
在新窗口中打开文件
:split file
切换到下一个文件
:bn
切换到上一个文件跳到当前屏幕输出的
:bp
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。
:args
Vim编辑模式的快捷键
(esc退出)
a光标前插入
A光标后插入
o光标下一行插入
O光标上一行插入
i 光标前插入
I行首插入
s向光标所在的删了,并进入插入,插入在光标前插入
S将一行都删了
u撤销
命令模式的快捷方式
dd:删除当前行
djj:删除光标前的
dj:删除光标后的
d$:删除光标后的
d^:删除光标到行首的(不包括删除光标所在位置)
dw:删除光标后的
jj:跳到文章首部
J:跳到文档尾部的行首
x:光标所在的位置删除
yy:复制光标所在的行
p:粘贴到光标所在的下一行
cc(小写):剪切
H:跳到当前屏幕的首行
L:跳转到最后一行
$:跳转到行位
^:跳转到行首
w:跳转到单词
M:跳转到中间
esc shift: w保存
esc shift:w +文件名 新建文件
q! 强制退出不保存
set nu 显示行号
Set nonu 去除行号
shift:数字 根据行号跳转
shift:%s/(被替换的内容)o/(替换的内容)O/g
Set list 显示换行符
2023.11.1
Vim
cp /etc/passwd /home/zsw
将etc下的passwwd复制到普通用户下
创建一个hello文件,利用echo语句在文件中书写信息
whereis查找bin二进制文件,源代码文件,帮助页码
查找bash文件(只用whereis,所有文件都有)
-b 只查找二进制文件
-s查找源代码文件
-u查找不包括制定内心的文件
-m查找帮助文件
-f不显示某个文件前的路径名称
-S设置的目录下查找原始代码的文件
find
find 路径(绝对路径) 匹配表达式
-name +文件名
find .(当前目录下) -name aa
寻找home目录下的passwd
-type 文件类型(f普通文件
d目录文件
l链接文件
找根下的链接文件 find ..(/)-type l
-size 文件大小 +1M -1M c(字节) w(字数) b(块数)
搜索大于1M或者小于1M的文件
-user
-group 所属组
-atime(访问时间) n(1.2.3…….(1.2.3…..分钟内))查找n分钟内被访问的时间
十分钟以上访问的时间
十二分钟内访问的文件
-ctime (改变时间)n
-mmin (修改时间)n
grep(用于查找文件里面的字符串或者正则表达式)
-i忽略大小写进行匹配
-v反向查找(只打印不匹配的行)
-n显示匹配行的行号
-r递归查找子目录中的文件
-l只打印匹配的文件名
-c只打印匹配的行号
将helloworld打入f1
寻找f1中的hello
在passwd中查找有root的行号
打印f1中hello的行号
查找etc下的passwd文件里的root
显示passwd含有root的行号
寻找以1结尾的文件里的hello
寻找以小r开头的行
寻找以rg开头的行
寻找不以空格开头的行数
grep ^[^rg] 显示除了rg 的行
寻找除了f开头 的行
显示不以空格开头的行
grep ^[^^$] 文件
grep -v ^$ 文件
2023.11.4
如果链接不上xshell
可以链接160网卡 nmcli con up ens160,然后再查IP
最后重新连接xshell
cat(concatenate)显示文件内容
语法格式:cat 选项 文件
读取etc下的passwd的内容
将f1放入f2
将f1中的内容对行数进行编号放好f3中(空白行编号)
将f1放入f4里(空白行不编号)
head
不加任何命令默认显示前十行
寻找etc下的sha文件的前6行dow
head -c 显示字节数
显示出f1下以:为分隔符的前十行
tail(默认显示后十行)
cut:按列提取文件内容
-b 以字节为单位进行分割
-c 以字符为单位进行分割
-d 用户自定义分割
-f 制定显示哪个区域
查找第六部分passwd的内容
寻找passwd第六个字符
显示前三行的第三个字符(管道符 |)
显示后十行的第8个字符(管道符 |)
显示前十行的第三个字节(管道符 |)
sort 文件名 按照字母顺序排序
去除重复行
依照数值大小排序f1Uniq(去除重复行)
-c
查找passwd里的重复行没有则都是1
去除f3里的重复行
tr
-d 删除
-s 缩减连续重复的字符,成指定单个字符
-c 反选设定字符
将passwd里的a-e 变成A-E并查询
wc(用于统计行数、字数、字节数)
统计f1(行数、单词数、字节数(换行符也会统计)、文件名)
统计passwd
显示f1的行数
显示f1的单词数
显示f1的字节数
显示f3
压缩和解压缩
压缩f1
将f2 f3压缩成f4.zip
先删除源文件在解压缩
解压缩f1
解压缩f4
压缩b-e的目录并解压缩
tar
将a压缩成a.tar
将bc压缩成bc.tar
加压缩a.tar压缩到a目录下
将bc.tar压缩到普通目录下
压缩f1 f2 f3并压缩以bzip2的格式
scp -r 当前主机文件 目标主机的对应路径
将这台电脑的f1发送到另一个虚拟机上
Scp
在红帽8上将bb目录发到红帽九上
特殊符号
打印当前的目录并切换到普通目录
列出当前目录内容,切换到root下,打印出当前的目录路径
匹配单个字符查找文件
反引号的作用
单引号强引用 输入啥输出啥
双引号弱引用 输出字符含义
file
Pwd(内置命令)
Passwd(外部命令)
查询路径
alias 起别名 (暂时有效,重新登录则没用,若想一直有用,需要修改配置文档)
别名=‘原命令 选项’
删除别名(unalias 别名)
histoty(查看历命令的历史记录)
history 选项
命令的历史文件
删除指定命令历史(按照序号删除)
!序号,可执行此命令
两个!!执行上一条命令
用户分为三种:
1.超级用户 —— 用户名为 root ,它具有一切权限,只有进行系统维护 ( 例如:建立用户等 ) 或其他必要
情形下才用超级用户登录,以避免系统出现安全问题。
2.系统用户(伪用户) —— 是 Linux 系统正常工作所必需的用户。主要是为了满足相应的系统进程对
文件属主的要求而建立的,例如: bin 、 daemon 、 adm 、 lp 等用户。系统用户不能用来登录。
3.普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
/etc/passwd文件中(用户账号文件)每一列的具体含义:
a)第1列:记录的是这个用户的名字(在创建用户时root用户起的)
b)第2列:如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,表示该用户在登录时无须提供密码
c)第3列:记录的是这个用户的uid(root用户0,系统用户1-999,普通用户大于等于1000)
d)第4列:记录的是这个用户所属基本组组的gid
e)第5列:记录的是有关这个用户的备注信息(个人资料)
f)第6列:记录的是这个用户的家目录的路径(主目录)
g)第7列:记录的是这个用户登录后,第一个要执行的进程(shell)
/etc/shadow文件(用户密码文件,存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库)每一列的含义:
A)第1列:记录的是用户名
B)第2列:记录的是密码,这个密码是经过md5加密算法加密过的密码(( $id$ , id 为 1 表示 md5 , 5 表示sha256 , 6 为 sha512 )
*(该账户不能登录系统)
为空(不需要密码就能登录)
!(表示账户已经被锁定)
- 若有第3列,则是最后修改密码的时间(没有则为空
- 第4列,最小时间间隔,为0,什么时候都能修改
- 第5列,最大时间修改,密码在多少天后必须被修改
- 第6列,警告时间,默认值是7,0就是不警告
- 第7列,不活动时间,密码过期多少天后禁用此用户
- 第8列,密码失效时间
/etc/group文件(用户组账号文件,存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database))每一列的含义:
a)第1列:记录组名
b)第2列:如果为x,表示该用户登录Linux系统时必须使用密码;如果为空,表示该用户在登录时无须提供密码
c)第3列:记录的是这个群组的gid
d)第4列:记录的是这个群组里还有哪些群组成员
useradd
创建用户(不说明会默认都创建)
-u(uid)
-g(gid)
-G(制定附加组)
-c(“”双引号写注释信息)
-d(指定某个目录为用户的家目录)
-s(指定用户使用的shell)
创建wanger用户目录放到普通用户里,基本组叫zhangsan,uid为2013,注释为普通用户,放到root下的aa目录下
创建xiaoming用户目录放到zhangsan里,附加组wanger(因为wanger的附加组是zhangsan,所以xiaoming的附加组也是zhangsan),uid为2033,注释这个用户很特别,放到home下的xiaoming目录下
起的注释名无法进行远程链接,需要使用名字
登录lisi这个新用户
Passwd(passwd加用户名,设定密码)
-n 指定密码最短使用权限
-x 指定密码最长使用权限
-w 制定警告时间
-d 删除用户密码
(红帽禁止用户无密码登录)
给新用户设置密码
2023.11.6
Usermod(修改用户的信息)
-u 修改uid
将哪吒的uid改成2060
-g 修改基本组
将哪吒的基本组改成zhangsan
-l 新用户名 (更改账户的名称)更改前提账户没有登录到系统
-L锁定系统账户,让他不能登录到系统
-U解锁用户账户
Userdle(删除用户)
User +用户名
删除小明
小明的家目录还在、邮箱也在
-r 删除该账户的同时,将用户的家目录,用户邮箱也删除
删除大明 家目录不在了
groupadd(创建一个新的组)
-g --gid gid为新组使用 gid
groupmod (修改组)
-g 修改gid
修改zhangsan的gid为1010
-n 该用户组的名字
groupdel(删除组)
需要先删掉用户才能删掉用户的基本组
在vim中创建用户
进入vim后,点击i开始配置。配置小红
用户密码文件(以$分割)
第一步部分:加密文件
第二部分:盐,通过密码任意固定位置插入任意字符串
第三部分:密码密文
(盐值,也称为Salt值,是用户注册时系统用来和用户密码进行组合而生成的随机数值。这个随机值可以包括随机的大小写字母、数字、字符,位数可以根据要求而不一样。盐值可以使得加密的得到的密文更加冷僻,不宜查询。即使黑客有密文查询到的值,也是加了盐值的密码,而非用户设置的密码。经过添加盐值处理的密码,即使用户设置的原密码是相通的,数据库中的密文却是不同的。
加盐值是为了增加密码的安全性和保密性。盐值可以用来加密存储密码,同时也可以用于密码校验。通过添加盐值,可以有效防止黑客通过暴力破解用户ID和密码,即使数据库中的密码是以加密形式存储的,加盐加密的方式仍然能够增加破解的难度,保护用户的个人信息和隐私。
另外,使用盐值还可以避免使用相同密码的用户在系统中的密码被轻易破解。因为盐值是随机生成的,不同的用户即使使用相同的密码,他们的盐值也是不同的,因此加密后的密文也会不同,从而增加了密码的安全性。
需要注意的是,盐值的产生和存储都需要安全随机数生成,并且盐值的长度也需要有一定的要求,较短的盐值仍然存在被破解的风险。因此,在使用加盐加密的方式时,需要确保盐值的生成、存储和使用都符合安全要求。)
/etc/gshadow
A)组名 与/etc/group 文件中的组名相对应。
B)组密码
对于大多数用户来说,通常不设置组密码,因此该字段常为空,但有时为 “!”,指的是该群组没有组密码,也不设有群组管理员。
C)组管理员
从系统管理员的角度来说,该文件最大的功能就是创建群组管理员。考虑到 Linux 系统中账号太多,而超级管理员 root 可能比较忙碌,因此当有用户想要加入某群组时,root 或许不能及时作出回应。这种情况下,如果有群组管理员,那么他就能将用户加入自己管理的群组中,也就免去麻烦 root 了。不过,由于目前有 sudo 之类的工具,因此群组管理员的这个功能已经很少使用了。
D)组中的附加用户
该字段显示这个用户组中有哪些附加用户,和 /etc/group 文件中附加组显示内容相同。
对于目录
R 列出目录的内容 w 可以写该目录 x执行
chmod(更改权限,修改文件 或目录的权限)
u文件的所属者
g文件所属组
o其他人
a所有人
增加权限 + 去除权限- 覆盖权限 =
给f1增加所属者的权限
给f2的组和其他增加写的能力
给f3的所有用户给予读写切换的能力
让f1里的所有人都没有权限
让f3(原先都有权限)只有读的权限
给file2的所属组和其他有修改和执行的权限,所属者只有执行的权限
2023.11.8
数字设定法
- 没有权限 0
X 执行权限 1
W修改权限 2
R 读取权限 4
格式:chmod n1n2n3(所有者的权限,所属组的权限,其他人的权限) 文件名称
对f3文件的所有者拥有执行,所属组读取和修改,其他人读取修改执行
特殊权限
Suid(set uid)
作用:是为了让一般用户在执行某些程序的时候,在程序运行期间,暂时获得该程序文件的所属者的权限
Sgid
文件:如果设置在二进制文件上,则无论用户是谁,都可以在执行该程序时,程序的所属组将变成该文件的所属组
目录:如果sgid设置在A目录上,则在该目录内创建的文件或者目录的所属组会变成A目录的所属组
Sticky bit(只针对目录有效,在具有sbit权限的目录下,如果该用户在该目录下拥有wx权限,则当用户在该目录下创建文件或者目录的时候,只有文件拥有者和root目录才有权限去删除里面的东西)