零基础学红帽RHCE-学霸手搓笔记(第二章)

第四天 从命令行管理文件

学习日期:2024.4.25 学习课程:RH124-v9x-03-从命令行管理文件

笔记:

  1. 文件的层次结构

(1)首个“/”就是根目录,后面的“/”用于目录分隔符;不可变的即静态的,如“/usr”“/opt”,可变的即变量的,如“/var/mail”“/var/spool”,还有不可分享的,如“/etc”“/boot”

(2)https://www.pathname.com/fhs/→文件系统层次化标准Filesystem Hierarchy Standard→随便选择一个FHS版本链接,如FHS2.3PDF,点击直接链接进去看

(3)重要目录的位置:/usr /etc /var /run /home /root /tmp /boot /dev /lib /media /mnt /opt /proc /sys /srv ...

  1. 指定文件的位置:绝对路径,必须是以根“/”开头写;相对路径,是非根的开头;
  2. 文件名与访问路径的命名:不要使用空格作为文件名;跟随文件路径会遍历一个或多个指定的子目录,使用“/”分隔;
  3. 路径导航:“cd”即change the current directory to DIR改变当前的工作目录,将当前目录更改到指定目录,如;输入“pwd”查看当前的工作目录→输入“cd --help”→“cd /etc”从用户“[root@servera ~]”切换到用户“[root@servera etc]”→输入“cd -”从当前工作目录切换到上一次的工作目录,又变回“[root@servera ~]”→输入“cd ../etc”是使用相对路径切换到“[root@servera etc]”→使用“echo $OLDPWD”可以查看上一次的工作目录→输入“cd”或“cd ~”可以切换到家目录;“pwd”命令,显示当前完整路径名;“touch”命令,创建空白文件或重置文件时间戳;“ls”命令,列出目录下的内容。
  4. 列出当前或指定目录的内容:首先创建一个空白文件“touch a.txt”→列出当前目录内容“ls”,输出“a.txt”→列出隐藏文件“ls -a”→如果想要看见隐藏文件的类型,可以输入“ls -Fa”,输出的文件中,如果是目录文件尾缀为“/”即可区分→看详细信息“ls -la”→“ls -ltr”按时间排列且反转(默认是按时间顺序从下至上,反转后变为新产生的在下面、后产生的在上面)→还可以限定时间格式“ls -l --time-style=+%F_%T”
  5. 系统时间设置:使用“date -s”命令,如修改为“date -s ‘2024-03-23 13:21:50’”,时间类型分3种,ctime文件属性修改的时间、mtime文件内容修改的时间、atime文件内容访问的时间。
  6. 创建目录:“mkdir”;例如有一个目录是c/a/b,但是我不清楚a的上级还有什么,即当只确定b属于a时,这时候要创建相对目录,使用’-p’:“mldir -p a/b”;查看已创建的目录用命令“tree”;创建绝对路径,即从根目录开始写:“mkdir -p /root/test/ /root/a/b”;使用’-pv’会自动打印刚刚建立目录过程的结果;“mkdir test”可创建test,“mkdir -m 754 t1”可创建t1。
  7. 拷贝:“cp”;“cp a.txt b.txt c/”可在c下创建两个文件“a.txt”、“b.txt”;输入“tree”可查看当前创建目录;输入“cp --help”可查找拷贝的各种命令,其中使用“-t”可以先写目标再写源文件,如“cp -t c/ a.txt b.txt”,创建效果相同。
  8. 改目录:“mv”,一般用于改文件名字,或把文件移动到另一个位置;如输入“mv b.txt c.txt”、“mv /test t2”,即把“b.txt”文件名改为“c.txt”、把“test”文件名改为“t2”;输入“ll”可以看见所有创建文件的信息;输入“mv a.txt /opt/”即把“a.txt”文件名移动到“/opt/”,此时输入“ll /opt/”可以看到文件“a.txt”已存在于“/opt/”下,输入“ll”可以发现文件“a.txt”已不存在;使用“-t”可以先写目标再写源文件,效果相同。
  9. 删除:“rm”;输入“rm /opt/a.txt”即删除“/opt/”下的“a.txt”文件,会自动弹出对话“rm remove regular empty file ‘/opt/a.txt’?”,此时需要你确认一下;使用“-f”可以强制不让它每次都弹出此对话提示;有一些命令默认就带“-i”功能,即自动弹出确认对话,输入“alias”可以显示所有带别名的命令,可以看到“cp -i”、“mv -i”、“rm -i”都是会自动弹出的,使用转义符“\rm -r d/”或绝对路径“/bin/rm -r c/”,即可删除“-i”的提示功能。
  10. 链接文件:是一种特殊的文件类型,分硬链接、软连接两种,软连接类似于快捷方式,占用一定的空间;硬链接是Linux特有的,只能针对常规文件,不能针对目录,一般不占有任何系统空间。每个存储设备被格式化创建文件系统后,其中的文件大致分为两部分“inode”和“block”,“inode”索引节点(即为指针,用于存储文件属性信息,包括文件大小、归属者、归属组、权限、类型、修改时间、指针)、“block”存储文件的实际数据,注意inode中不包含文件名,一个文件的文件名存储在上级目录的block中。
  11. 创建硬链接并编辑:

创建硬链接“mkdir links”→切换到links目录“cd links/”→从用户“[root@serverb ~]”切换到用户“[root@serverb links]”→查看当前目录“pwd”,输出“/root/links”→拷贝hosts到当前目录“cp /etc/hosts .”→“ls”命令,列出当前目录下的内容,显示“hosts”,说明拷贝成功→“ll”命令,显示当前命令下文件信息,显示“total 4换行-rw-r--r--. 1 root root 158 Mar 23 04:35 hosts”。

  1. “ll”命令:是“ls -l”的别名,输出三个栏位,第一个栏位表示文件属性,第一栏位第一字母“-”普通文件、“d”目录、“l”链接、“b”块、“c”字符,第一栏位第二位开始的3*3位,分别代表owner自己(三位)、group同组(三位)、other其他(三位)用户的使用权限,每三位均用“r”可读(数字4)、“w”可写(数字2)、“x”可执行(数字1)或“-”不可(数字0)表达,例如“-rwxr-xr-x”(可用数字755表示)含义为“普通文件,使用者自己可读可写可执行、与使用者同一组的用户可读不可写可执行、其他用户可读不可写可执行”,修改文件权限用“chmod”命令;第二栏位,表示文件个数;第三栏位,表示文件的拥有者;第四栏位,表示所属的组;第五栏位,表示文件大小;第六栏位,表示最后一次修改时间;第七栏位,表示文件名。
  2. 创建软链接:

(1)语法:ln -s TARGET LINK_NAME,ln -sfv TARGET LINK_NAME的意思是强制创建且显示创建过程;(2)用相对路经创建一旦移动位置就找不到了,例如:在hosts下创建“ln -s hosts hosts.link”→查看文件信息“ll”,显示hosts在“/opt/”下→移动hosts.link的位置“mv hosts.link /opt/”→输入“ll /opt/”查看,显示高亮红色:“hosts.link -> hosts”;(3)用绝对路径创建,例如:“ln -s /root/links/hosts h.link”→“ll”→“mv h.link /opt/”→“ll /opt/”→显示高亮蓝色:“h.link -> /root/links/hosts”;(4)用相对路径创建“h2.lk”,它原本是在“/opt/”下的,而当前用户所在目录不是opt,现在要它链接到hosts,有两个方法:1.直接命令“ln -s ../root/links/hosts /opt/h2.lk”;2.命令“pwd”显示当前目录“/root/links”→先切换到“/opt/”目录下“cd /opt/”→从当前目录“[root@serverb links]”切换到目录“[root@serverb opt]”→命令“ln -s ../root/links/hosts h3.lk”→查看一下“ll”显示高亮蓝色:“h2.lk -> ../root/links/hosts”和“h3.lk -> ../root/links/hosts”;(5)但是改变源文件路径,以上高亮蓝色全部变为高亮红色,例如把hosts移动到上级目录“mv hosts ../”后,再查看“ll /opt/”,链接就断了,那如何使用相对路径创建一个不会报错的链接呢?就是把当前目录切换到源文件所在目录下进行编辑,这样编辑的成果可以打包拷贝给其他用户使用,示例:前往上级目录“cd ..”,从当前目录“[root@serverb links]”切换到目录“[root@serverb ~]”→展示当前目录文件“ls”显示出“hosts links”→把hosts再移回links下“mv hosts links/”→前往links目录“cd links/”→展示当前目录下文件“ls”显示出“hosts”→在links目录下创建软连接“ln -s hosts hosts.lk”→展示links目录的文件信息,显示“hosts”和“hosts.lk ->hosts”→前往上级目录“cd ..”,从当前目录“[root@serverb links]”切换到目录“[root@serverb ~]”→在目录“[root@serverb ~]”下把links移动到opt“mv links/ /opt/”→展示links目录文件信息“ll links/”显示“hosts hosts.lk ->hosts”→展示opt目录下的文件信息“ll /opt/”,显示“h2.lk h3.lk h.link links”→前往opt目录“cd /opt/”→列出层级树“tree”,显示opt目录下有“h2.lk h3.lk h.link links”4个、links目录下有“hosts hosts.lk ->hosts”2个(恢复操作:在opt目录下命令“cp links/hosts /root/”→“cd”切换到最高目录“[root@serverb ~]”→创建links“mkdir links”→列出当前目录下的文件“ls”显示“hosts links”→“mv hosts links/”→“ll /opt/”显示“h2.lk h3.lk h.link links”已恢复正常,即已经实现了将hosts移动到links下。

  1. 拷贝cp -a的功能:输入“cp -a /opt/h2.lk .”,其中“.”代表当前目录,意思是把h2.lk(是一个链接文件)拷贝到当前目录,并保留其链接属性及其链接。

第五天 从命令行管理文件

学习日期:2024.5.28 学习课程:RH124-v9x-03-从命令行管理文件

笔记:

  1. 通过使用Bash Shell的模式匹配、扩展技巧来提高运行命令的效率。Bash Shell存在多种命令行扩展方式,主要包括三大类:

(1)模式匹配(通配);(2)波形符扩展(家目录扩展)和大括号扩展;(3)变量扩展和命令替换以及字符转义。其中,最强大的是路径匹配功能(模式匹配结合诸多扩展方式),在过去被称为“Bash通配功能(glob)”即“通配符”,可使管理大量文件变得尤为轻松,通配模式实为简化的正则表达式。

  1. 模式匹配:是一种shell命令解析操作,他将一个“通配符”模式扩展到一组匹配的路径名。“*”:任意字符(0个或多个任意字符串);“?”:任意单个字符;“[abc...]”:括号内任意单个字符;“[!abc...]”:非括号内任意字符;“[^abc...]”:非括号内任意字符;“[[:alnum:]]”:任一字母字符或数字,相当于[[:alpha:]]和[[:digit:]];“[[:space:]]”:任一空白字符,可为制表符、换行符、回车符、换页符或空格;“[[:punct:]]”:除空格和字母数字以外的任何可打印字符。示例:

mkdir glob→cd glob/→touch aa.txt→touch ab.txt→touch ac.txt→touch af.txt→ls a*列出aa.txt ab.txt ac.txt af.txt→ls a?.txt列出aa.txt ab.txt ac.txt af.txt→ls a[abc].txt列出aa.txt ab.txt ac.txt→ls a[!abc].txt列出af.txt→ls a[^abc].txt列出af.txt→ls a[[:upper:]].txt列出no such file→ls a[[:upper:]].txt列出aa.txt ab.txt ac.txt af.txt→ls a[a-z].txt列出aa.txt ab.txt ac.txt af.txt

  1. 波形符和大括号扩展:波形符用于匹配当前用户家目录或指定用户家目录;大括号扩展针对批量操作。示例:

Echo {1..10}显示1 2 3 4 5 6 7 8 9 10→{linux,windows,unix,{1..5},{a..e}}显示linux windows unix 1 2 3 4 5 a b c d e→touch student {01..10}→ll显示student01 student02 student03 student04 student05 student06 student07 student08 student09 student10→touch stu{01..03}_{1..5}.txt→ll显示stu01_1.txt stu01_2.txt stu01_3.txt stu01_4.txt stu01_5.txt stu02_1.txt stu02_2.txt stu02_3.txt stu02_4.txt stu02_5.txt  stu03_1.txt stu03_2.txt stu03_3.txt stu03_4.txt stu03_5.txt→新创建的文件太多,使其按创建的时间顺序排列(最新的在最下面)ls -ltr→cd→ls列出glob h2.link h3.link links→echo {,.bak}显示“.bak”→cp /etc/hosts .→ls列出glob h2.link h3.link hosts links→cp hosts{,.bak}此命令等同于cp hosts hosts.bak→ll列出文件信息hosts hosts.bak

变量扩展和命令替换及字符转义:变量定义于内存之中,可以在命令行中或脚本程序中对数据进行定义或修改。变量定义:var=value;变量引用:$var、${var};变量替换:允许让命令的输出替换命令行命令本身;字符转义(防止参数被扩展):bash shell中许多字符有特殊含义,在命令行和脚本程序中为了消除字符的特殊含义需用到转义字符“\”,“\”可以防止字符特殊含义被扩展。示例:

(1)常规变量定义和引用:[root@serverb ~]用户目录下开始→命A1=student→引用echo ${A1}输出student→也可以引用echo $A1输出student→不带“{}”引用时,系统无法识别和区分部分符号,如:echo $A1_ext输出为空→这时候就需要使用“{}”引用,如:echo ${A1}_ext输出student_ext;(2)使用declare变量定义和引用:[root@serverb ~]用户目录下开始→declare --help输出“-a”是定义索引数组、“-A”是定义关联数组→declare -a ARR1=”RHEL CentOS Fedora”→echo ${ARR1[0]}输出RHEL CentOS Fedora;(3)命令替换:[root@serverb ~]用户目录下开始→echo $(ls)或echo ‘ls’输出同样结果“glob h2.link h3.link hosts hosts.bak links”;(4)字符转义:“\”、“单引号”、“双引号”,其中,“\”可以阻止字符特殊含义被拓展,单引号是强引用(即所见即所得),双引号是弱引用(即阻止通配和shell扩展,但允许命令和变量替换),[root@serverb ~]用户目录下开始→echo “$A1 $(whoami) {1..10} ~/student”输出student root {1..10} ~/student→echo ‘$A1 $(whoami) {1..10} ~/student’则原样输出$A1 $(whoami) {1..10} ~/student→echo $A1 $(whoami) {1..10} ~/student什么都不加则输出student root 1 2 3 4 5 6 7 8 9 10 /root/student→echo -e “1234\n”输出1234并换行→对特殊字符cp、mv,可以通过“\cp”、“\mv”来取消默认功能使其变为普通字符。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sompure_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值