RHCSA第二天

这篇博客详细介绍了Linux系统中的一些基本命令,包括ls、ln、touch、rm、cat、nano、date、cal、stat等,以及文件系统、权限管理、文件类型、硬链接和软链接的概念。此外,还提到了shell、环境变量、别名的设置和管理,以及一些文本处理工具如sort、uniq、wc等。内容涵盖了RHCSA认证考试中的关键知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令格式:命令+选项(可重叠)+参数
Ls—list查看命令解析:
ls 列出制定目录下的文件
ls-l[home] 长列表列出当前目录[home]下的文件的详细信息
ll---->ls-l (简写)
ls-h 做单位转换(默认为字节)
ls-a 显示所有隐藏文件(.xxx.文件),包括.和…(.表示此目录,…表示上一级目录)
ls-A 显示所有隐藏文件,包括.和…
ls-d 显示目录本身的属性
ls-i 显示索引节点号(inode),一个索引节点号代表一个文件,在Linux中保存在磁盘分区中的文件给它分配一个编号称之为索引节点
ls-r 逆序列出

Nmtui 更改Linux的设置
文件类型 文件权限 ACL other 硬连接次数 所属用户 所属组 大小 (单位字节) 文件最后一次修改时间 文件名
- rw- r-- r-- 1 root root 1789 1月 13 13:47 anaconda-ks.cfg
d rwx r-x r-x 2 root root 6 1月 13 11:46 公共

user:所属用户的权限 group:所属组的权限 other:其他用户的权限

文件类型:

  •   普通文件
    

d 目录文件
c 字符设备文件—顺序存储
b 块设备文件—随机读取----磁盘
l 链接文件----软连接(快捷方式)
s 套接字文件 systemctl restart mariadb /var/lib/mysql s
p 管道文件

.acl 扩展权限
硬连接次数 (备份文件 内容是同步变化的)
所属用户 所属组
大小
时间
文件名

硬连接:指通过索引节点进行连接。在linux文件系统中,保存在硬盘分区中的
文件不管是是什么类型都会给它分配一个编号,称之为索引节点号。 inode
在linux系统中多个文件名指向同一个索引节点称为硬链接。
ln 源文件 目标文件

软连接:(符号连接文件)类似于window下的快捷方式,就是一种特殊的文件。
在符号连接中文件实际上是一个文本文件,其中包含的有另一个文件的位置信息。
ln-s 源文件 目标文件

touch 文件名 创建文件
ln 原文件 目标文件 创建硬链接
ln -s 原文件 目标文件 创建软连接
rm 目标文件 删除文件
cat 文件名 查看文件
nano 文件名 编辑文件
查找一个文件下有哪些硬链接
#find / -inum id

快捷键:
Ctrl+U 删除光标前面所有字符
Ctrl+K 删除光标后面所有字符
Ctrl+L 清屏
Ctrl+C中断当前命令
Ctrl+S/Q 暂停/开始当前命令

Passwd:
1.用户帐户的名称
2.加密的密码字串或者摩玛占位符
3.帐户的UID号
4.所属基本帐户的GID号
5.全名
6.目录
7.登录Shell信息

Shadow:
*1.名称
2.加密密码字串信息
*3.上此修改密码的时间
*4.密码的最短有效天数,默认为0
*5.密码的最长有效天数,默认为99999
*6.提前多少天警告用户口令即将过期
7.在密码过期之后多少天禁用此用户
8.帐号多少时间失效
9.保留字段(未使用)

文件系统:操作系统用于明确存储设备或分区上的文件的方法和数据结构;
(磁盘上组织文件的方法 在操作系统中负责管理和存储文件信息的软件机构)
linux层次化文件结构,倒树状结构文件结构
FHS filesystem hierarchy standard定义了两层规范,第一层是/下面的各个目录应该要放什么文件数据,
第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

FHS 文件系统层级结构标准,规定了目录的类型和文件存放类型

FHS 文件系统层级结构

   /      根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
	/usr  	系统核心所在目录  系统资源
	/bin	可执行文件,binary,二进制目录用户命令
	/boot	系统启动相关的文件
	/dev	device,设备文件因为在这个目录中包含了所有linux系统中使用的外部设备。它实际上是一个访问这些外部设备的端口。
	        可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
			设备文件
			块设备		可实现随机访问的设备,如磁盘,按数据块访问
			字符设备 	线性访问的设备,如键盘,以字符为单位
	/etc	配置文件
	/home	家目录,root用户的家目录不在/home目录
	/mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。
    /media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
	/var	可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。
	/root	root用户的家目录,在生产环境中不允许用root用户登录
	/sbin	管理员命令 
	/tmp 	temp,临时文件目录
	
	/lib	 library,库文件和内核模块文件,这个目录是用来存放系统动态连接共享库的。
	/lib64
	/srv	系统服务相关数据   系统启动服务时候可以访问的数据库目录    
	服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中
	/sys	跟硬件设备相关的属性映射文件,可以修改磁盘I/O调度 
    /opt	option自由选择,主要给源码安装软件时候选择的安装目录位置
	/proc	process,该目录保存系统运行时内核的映射文件 
    /run	进程相关的数据

库文件:可以理解为许多程序运行使用相同的代码,并且这些库可以放在一个公共的位置上,
以此减少运行程序时的大小。
映射文件:就是由一个文件到一块内存的映射。内存映射文件可以保留一个地址空间的区域,
将物理存储器提交给此区域内存文件映射的物理存储器来自一个已经存在于磁盘上的文件。

内核:控制计算机系统上所有的硬件和软件,在必要时分配硬件并根据需要执行软件。
主要功能(系统内存管理)
(软件程序管理)
(硬件设备管理)
(文件系统管理)
shell"提供用户的使用界面"的软件,通常是指命令行界面的解释器。

type 查看命令类型
命令类型
内置命令 (shell内置)
外置命令,在文件系统的某个目录下,有个与命令名称相同的文件
区别:shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多
那命令怎么知道是那个路径下的命令呢?系统为了让用户在命令行快速方便地执行命令,用一种机制来实现,这种机制就叫做环境变量,
变量是什么?变量是命名的内存空间。
变量赋值
NAME=haha
变量声明的过程就是申请内存使用的过程
环境变量
定义当前用户工作环境属性的变量
PATH
#echo $

hash 实现缓存管理 哈希
缓存,命中率相当高,在hash表中保存了执行过的所有的路径,
当缓存很大时,一定比PATH查找速度快吗?
hash 命令哈希
-p /bin/ls haha 添加哈希表
-t ls 查看指定命令的哈希表
-d ls 删除指定命令的哈希表
-r 清空所有的hash表
alias 添加指定命令别名
alias 目标命令名称=‘需要执行的命令串本身’
alias chakan='cat ’
nano ~/.bashrc 当前用户生效的别名信息
source ~/.bashrc 生效
unalias 别名 删除指定的命令别名
例子:
查看ip地址改为ipconfig
查看文件cat改为chakan

[root@localhost /]# nano /etc/bashrc
[root@localhost /]# nano /etc/bashrc
[root@localhost /]# source /etc/bashrc
[root@localhost /]# ipconfig
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:4a:ea:67 brd ff:ff:ff:ff:ff:ff
    inet 192.168.59.128/24 brd 192.168.59.255 scope global dynamic eno16777736
       valid_lft 1558sec preferred_lft 1558sec
    inet6 fe80::20c:29ff:fe4a:ea67/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 52:54:00:56:3a:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
    link/ether 52:54:00:56:3a:de brd ff:ff:ff:ff:ff:ff
[root@localhost /]# hash -p /bin/cat chakan
[root@localhost /]# hash -t chakan
/bin/cat
[root@localhost /]# chakan aa
cjfkaehfnn

date 输出和更改日期时间
更改日期的格式 月日时分年.秒
date -s //设置当前时间,只有root权限才能设置,其他只能查看
date -s 20160813 //设置成20160813,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2016-08-13″ //这样可以设置全部时间
date -s “01:01:01 20160813″ //这样可以设置全部时间
date -s “2016-08-13 01:01:01″ //这样可以设置全部时间
date -s “20160813 01:01:01″ //这样可以设置全部时间
双引号可以替换单引号
clock 查看时间
hwclock 查看硬件时间
-w or hwclock --systohc(从系统时间同步到硬件时间)
-s or systohc–hctosys (从硬件时间同步到系统时间)

cal 查看日历,如果只有一个参数则表示年份,如果有两个则表示月份,年份 1752
cal [参数][月份][年份]
-1 显示一个月的月历
-3 显示系统前一个月,当 b前月,下一个月的月历
-s 显示星期天为一个星期的第一天,默认的格式
-m 显示星期一为一个星期的第一天
-j 显示在当前年份中的第几天
-y 显示当前年份的日历
-h 显示帮助信息

命令使用帮助

内部命令   
		help COMMAND
		COMMAND --help/-h
	外部命令
		COMMAND --help
	命令手册	manual
		man COMMAND
			man手册分段
				NAME			命令名称及功能简要说明
				SYNOPSIS		格式说明,用法说明,包括可用的选项
				DESCRIPTION		命令功能的详尽说明,可能包括每一个选项的意义
				OPTIONs			选项,说明每一个选项的意义
				EXAMPLE			示例,举例说明
				FILES			此命令相关的配置文件
				AUTHOR			作者
				REPORTING BUGS	bug反馈
				COPYRIGHT		版权
				SEE ALSO		参见
			
		man手册章节
			从1到9哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?
				用whatis read
			举例man read,man 2 read,export LANG=en修改字符集
			1	用户命令,/bin,/usr/bin,/usr/local/bin
			2	系统调用,系统调用和命令有可能重名,但是不是一回事
			3	库调用,只有库才有库调用
			4	特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
			5	文件格式,配置文件的格式说明,举例passwd
			6	games,游戏,休闲益智类的游戏
			7	杂项,不便归类的杂项,Miscellaneous
			8	管理命令,/sbin,/usr/sbin,/usr/local/sbin
			9	
			
		手册符号说明
			[]	可省略
			<>	必选
			...	多选多
			{}	分组
			#
			//
			/* */
			;
		翻屏
			下翻一页		空格
			上翻一页		b
			下翻一行	回车
			上翻一行	k
		查找
			/KEYWORD	向后
				n	下一个
				N	前一个
			?KEYWORD
				n	上一个
				N	下一个
		退出
			q

文件命名规则
1、文件名不能超过255个字符
2、不能使用“/”来当文件名,为什么?/是用来做根的,也是用来做路径分隔符的
3、严格区分大小写
除此之外,没有限制

touch 默认三个时间都发生改变
1,2,3,4
[5,6]
{1,11,111}{a,b,c}
{1…3}{1,2}
{4,7}{3,4}
月日时分
月日年
atime access time 看了一下内容 cat
mtime modify time 内容被改变了 修改数据 数据 文件内容
ctime change time 元数据被改变 属性 元数据 ()

stat 查看文件的详细信息

目录管理
mkdir
-p parents 父目录
-v verbose 详细信息
mkdir /test/{1,2}/{3,4}
rmdir 只能删除空目录
rm 删除文件,命令别名默认带-i,该选项用来提示用户进行交互。
-f force,强行删除,不提示
-r recursive,递归删除来删除目录
-rf 强行删除目录
-i 删除普通文件

目录复制没有覆盖过程 ------目录下必须有文件时再次复制才会提示覆盖。
cp 复制命令/文件
cp -r 复制目录
cp -p 复制的时候保留文件原有的属性,时间戳等信息
cp -a 归档复制,常用于备份

mv 移动文件
mv -i 提示
mv -f 强制覆盖
mv -t 先写目标 后写源

cat 连接并显示文件到标准输出
cat -n 显示行号,行号只是行号,不是文件内容
不带任何选项时,从标准输入接收输出到标准输出

tac 按行逆序显示文件,同cat
more 支持向后翻,在没有翻到最后一屏时支持向前翻, 空格/k/回车
less 前后翻,用法同man,man手册就是用less命令打开的

head 查看文件前n行,默认是10行
head -n 指定多少行
head -行号 直接用行数作为选项

tail 查看文件后n行,默认是10行
tail -n 指定多少行
tail -f follow ,查看文件后并不退出,滚动显示追加内容

#tail  -f /var/log/messages

ll 查看特定位置的文件
nano 查看编辑文件
文本处理
cut 文件切割,passwd 文件
cut -d delimiter ,指定分隔符,默认选项是空格
cut -f fields,指定字段
cut -f 1 显示第一字段
cut -f 1,3 显示1,3字段
cut -f 1-3 显示第1到3字段

截取日期时分秒:
[root@localhost /]# date | cut -d " " -f 5
11:45:02	
    [root@localhost ~]# cut -c 1-4 /etc/passwd
    		-c	指定字符,无需分隔符
    [root@localhost ~]# cut -c 1-4 /etc/passwd
    		-s	不打印没有分隔符的行
    		--output-delimiter=#	指定输出的分隔符
    [root@localhost ~]# cut -d : -f 1,3 --outpt-delimiter=" " /etc/passwd
    [root@localhost ~]# cut -d : -f 2,3 --output-delimiter=@ /etc/passwd

echo 回声 标准输入输出指令
echo > 重定向(会覆盖原来内容)
echo >> 追加重定向(在原来内容上追加)
文本排序
sort 默认根据字符在ASCll码中的升序排序

sort -n 启动数值排序(正向)
sort -r reverse 逆序排序
sort -t 指定字段分隔符
sort -k key,指定字段进行排序
sort -u unique ,去重
sort -f 排序时忽略字符大小写
uniq 等同于sort -u,报告重复的行,注意,重复的行必须相邻
uniq -d 只显示重复的行
uniq -D 显示所有重复的行
uniq -c 显示重复行重复的次数
管道“|”就是将前面命令输出作为管道后面命令的输入
` 反引号,命令替换

   [root@localhost ~]# echo this redhat `wc -l /etc/passwd | cut -d" " -f 1` users.
    this redhat 52 users.

" " 双引号,可以实现变量替换
‘ ’ 强引用,不完成变量替换

文本统计
wc word count,显示顺序为 行-单词数-字节数

wc -w 单词
wc -c 字节 8位二进制数 byte
wc -l 行
wc -L 最长的一行有多少字符
一个汉字等于两个字节

[root@localhost ~]# echo this redhat `wc -l /etc/passwd | cut -d" " -f 1` users.
this redhat 52 users.
[root@localhost ~]# cat -n /etc/passwd
 1	root:x:0:0:root:/root:/bin/bash
 2	bin:x:1:1:bin:/bin:/sbin/nologin
 3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
 4	adm:x:3:4:adm:/var/adm:/sbin/nologin
 5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
 6	sync:x:5:0:sync:/sbin:/bin/sync
 7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
 8	halt:x:7:0:halt:/sbin:/sbin/halt
 9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10	operator:x:11:0:operator:/root:/sbin/nologin
11	games:x:12:100:games:/usr/games:/sbin/nologin
12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13	nobody:x:99:99:Nobody:/:/sbin/nologin
14	avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
15	systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
16	systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
17	dbus:x:81:81:System message bus:/:/sbin/nologin
18	polkitd:x:997:995:User for polkitd:/:/sbin/nologin
19	colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
20	tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
21	unbound:x:995:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin
22	usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
23	saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
24	libstoragemgmt:x:993:990:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
25	geoclue:x:992:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
26	abrt:x:173:173::/etc/abrt:/sbin/nologin
27	rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
28	setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin
29	rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
30	pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
31	gdm:x:42:42::/var/lib/gdm:/sbin/nologin
32	chrony:x:990:985::/var/lib/chrony:/sbin/nologin
33	rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
34	nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
35	radvd:x:75:75:radvd user:/:/sbin/nologin
36	qemu:x:107:107:qemu user:/:/sbin/nologin
37	mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
38	gnome-initial-setup:x:989:984::/run/gnome-initial-setup/:/sbin/nologin
39	avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
40	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
41	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
42	ntp:x:38:38::/etc/ntp:/sbin/nologin
43	tcpdump:x:72:72::/:/sbin/nologin
44	redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
45	hehe:x:1001:1001::/home/hehe:/bin/bash
46	xixi:x:1002:1002::/home/xixi:/bin/bash
47	hah:x:1003:1003::/home/hah:/bin/bash
48	haha:x:1004:1004::/home/haha:/bin/bash
49	student1:x:1005:1005::/home/student1:/bin/bash
50	student2:x:1006:1006::/home/student2:/bin/bash
51	teacher:x:1007:1007::/home/teacher:/bin/bash
52	admin:x:1008:1010::/home/admin:/bin/bash

[root@localhost ~]# echo the day is `date | cut -d " " -f 4` 
截取以空格隔开的第四个字段
the day is 星期四
[root@localhost ~]# date
2018年 11月 29日 星期四 12:41:30 CST

tee命令可以将输出同时发送到显示器和文件中。tee命令相当于一个管道的T型接头,
它接收STDIN的数据并将数据发送到两处,一处是STDOUT,一处是tee命令指定的文件名。

[root@localhost ~]# date | cut -d " " -f 1-3,5 | cut -d : -f 1,2 | tee aa
2018年 11月 29日 13:50
[root@localhost ~]# cat aa
2018年 11月 29日 13:50
[root@localhost ~]# date | cut -d " " -f 1-3,5 | tee aa
2018年 11月 29日 13:52:12

文件粘贴
paste 合并两个文件

[root@localhost~]#cut -d : -f 1 /etc/passwd > A.txt 
[root@localhost~]#cut -d : -f 5 /etc/passwd > a.txt
 [root@localhost~]#paste A.txt a.txt

对比文件
diff 对比两个文件

diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。

模式匹配器
grep 过滤关键字显示所匹配到的行

 [root@localhost ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

–color 匹配项着色

-o 显示匹配到的字符串

[root@localhost ~]# grep -o root /etc/passwd
root
root
root
root

-i 忽略大小写 后面可以加要找的关键字
-v 只显示没有匹配到的行
^#---- 以#号开头
//-----注释行
^$—空白行
-A 数字 指定数字显示说匹配到的下几行
-B 数字 指定数字显示所匹配到的上几行
-C 数字 显示所匹配到的上下几行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值