第二周 Linux基础命令入门(二)
来源:互联网 发布:linux cern 知乎 编辑:程序博客网 时间:2024/05/21 01:28
第二周 Linux基础命令入门(二)
摘要
1、描述Linux上的文件管理类命令并详解。2、描述Bash的工作特性。3、描述文件的元数据信息详解。4、描述命令别名的使用。5、详解文件通配符。
一、Linux上的文件管理类命令
[root@localhost etc]# ls -l-rw-r--r--. 1 root root 0 10月 19 02:00 3axaxx-rw-r--r--. 1 root root 0 10月 19 02:01 abcdefgdrwxr-xr-x. 3 root root 97 10月 15 17:51 abrtlrwxrwxrwx. 1 root root 56 10月 15 17:51 favicon.png -> /usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png
Linux系统上的文件类型: - : 常规文件,即f d :directory 即目录文件 b :block device 映射块设备文件 ,支持以"block"为单位,支持随机访问 c: character device 字符设备文件,支持以“character”为单位,支持线性访问(有次序得访问) ls - l /dev crw-rw----. 1 root video 10, 175 11月 10 15:48 agpgart major number 主设备号,用表示设备类型,进而确定要加载的驱动程序 minor number 次设备号,用于表示同一类型中的不同设备 二者用,来区分 l: symbolic link 符号链接文件(类似windows的快捷方式,指向另一文件的路径。或称为软连接文件) p:pipe 命名管道 s:socket 套接字文件,实现多个进程之间进行通信,多用于提供服务
二、Bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容
Bash的工作特性之命令执行状态返回值:
命令的执行状态结果 1) bash通过状态返回值来输出此结果 成功:0 失败:1-255 命令执行完成之后,其状态返回值保存于bash特殊变量 $? 中 。$?只能获取当前命令的结果 [root@localhost etc]# echo $? 0 2)引用命令的执行结果: $(COMMAND) 或者 `COMMAND` [root@localhost etc]# mkdir $(date +%T) [root@localhost etc]# ls 12:53:45 hosts.allow rc0.d
命令行展开所涉及的内容:
1)cp:copy 文件复制功能源文件:目标文件 单源复制 cp [OPTION]... [-T] SOURCE DEST 如果dest路径不存在,则复制原内容,粘贴创建该目录dest内 如果dest存在,1)dest是非目录文件,则会复制目标文件 2)dest是目录文件,则先在dest目录下创建一个与源文件同名的文件,并复制过来 多源复制 cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 如果dest不存在,返回错误 如果dest存在,分别复制每个文件到目标目录中,并保持原名 常用选项: -i 交互式复制 覆盖之前提醒客户确认 -f 强制性覆盖目标文件 -r 递归复制目录 -d 复制符号链接文件本身,而非其指向的源文件本身 --preserv= mode 权限 ownership 属主和属组 timestamps 时间戳 context 安全标签 links 符号链接 xattr:扩展属性 all 上述所有属性 -a -dr --preserve=all archive 用于实现归档,备份使用2)mv: move 移动 常用选项 -i 交互式 -f force 3)rm:remove 删除文件(建议move到一个单独的文件夹,作用类似回收站) -i -r 删除命令,每个文件都会确认一遍 -rf 强制删除 危险操作,勿操作!!! rm-rf /或者rm -rf /*4)目录管理类的命令: mkdir , rmdir mkdir make DIRECTORY 创建目录 mkdir [OPTION]... DIRECTORY... 注意:路径基名方为命令的作用对象,基名之前的路径必须存在。 -p 自动按需创建父目录 -v verbose 显示详细过程 -m MODE 直接给定权限 rmdir rmdir [OPTION]... DIRECTORY... 删除文件下的空目录,如果删除为非空目录,则失败,需要先删除里面内容再删除外部 -p 删除某目录后,如果其父目录为空,则一并删除之 -v 显示过程 pwd:printing woking directory 显示工作目录5)cd: change directory 切换目录 cd [/PATH/TO/SOMENDIR] 只输入 cd 切换回家目录 bash中,~也表示家目录 cd ~ 切换回自己的家目录 输入cd ~USERNAME ;切换至指定用户的家目录,只有管理员可以切换至其他用户家目录 cd - 在上一次所在目录与当前目录来回切换 $PWD:当前工作目录 $OLDPWD:上一次的工作目录6)ls:list 列出指定目录下的内容 ls [OPTION]... [FILE]... -a 显示所有文件,包括隐藏文件 -A:显示除了。和。。之外的所有文件,包括隐藏文件 ls -A /etc -l --long 长格式列表,显示文件的详细属性信息: /]# ls -l /etc -rw-r--r--. 1 root root 16 10月 10 14:35 adjtime -r :文件类型,- ,d,b,c,l,s,p -rw-r--r--. rw- 文件属主权限 r-- 文件属组权限 r-- 其他用户(非属主、属组)的权限 1:数字表示文件被硬链接的次数, root 第一个root 文件的属主 root 第二个root 文件的属组 16: 数字表示文件大小,单位是字节 16 10月 10 14:35 文件最近一次修改时间 adjtime 文件名 -h 对文件大小单位换算,换算后的结果非精确值 -ld 查看文件本身的信息,而非其自身内部的文件内容 /]# ls -ld /etc drwxr-xr-x. 74 root root 8192 10月 12 02:24 /etc -r或者-lr 对文件排序呈降序排序 -R recursive 递归显示7) cat: concatenate file 连接文件 文件正序显示 文本文件查看工具 cat /etc/fstab cat后可以跟多个路径文件 -n :显示的文件内容进行统一编号 cat -n [COMMAND] [COMMAND] -E:显示行结束符$8) tac 文本 逆序显示 文本文件查看工具 tac /etc/fstab tac后可以跟多个路径文件 -n :显示的文件内容进行统一编号 tac -n [COMMAND] [COMMAND] -E:显示行结束符$9)file:查看文件内容类型 file [FILE].................10)echo :回显命令 echo [SHORT-OPTION]... [STRING]... STRING 可以使用引号,单引号和双引号均可用 单引号:强引用,变量引用不执行替换 [root@localhost /]# echo '$SHELL' $SHELL 双引号: 弱引用,变量引用会被替换 [root@localhost /]# echo "$SHELL" /bin/bash [root@localhost /]# echo "DAA" DAA -n 输出后不自动换行操作 [root@localhost /]# echo -n "DAA" DAA[root@localhost /]# -e 让转义符生效 \n显示换行 \t:制表符,类似增加新字段 [root@localhost /]# echo -e "D \nAA" D AA
三、完成以下练习(1)
命令行展开
~ :自动展开为用户的家目录,或指定的用户的家目录 { }:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
(1)创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost tmp]# mkdir -pv /tmp/{a,b}_{c,d}mkdir: 已创建目录 "/tmp/a_c"mkdir: 已创建目录 "/tmp/a_d"mkdir: 已创建目录 "/tmp/b_c"mkdir: 已创建目录 "/tmp/b_d"[root@localhost tmp]# lsa_c a_d b_c b_d
创建/tmp/mylinux目录下的 :
mylinux/├── bin├── boot│ └── grub├── dev├── etc│ ├── rc.d│ │ └── init.d│ └── sysconfig│ └── network-scripts├── lib│ └── modules├── lib64├── proc├── sbin├── sys├── tmp├── usr│ └── local│ ├── bin│ └── sbin└── var ├── lock ├── log └── run
[root@localhost tmp]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/{network-scripts}},lib/{modules},lib64,proc,sbin,sys,tmp,usr/{local/{bin,sbin}},var/{lo_{ck,g},run}}mkdir: 已创建目录 "/tmp/mylinux"mkdir: 已创建目录 "/tmp/mylinux/bin"mkdir: 已创建目录 "/tmp/mylinux/boot"mkdir: 已创建目录 "/tmp/mylinux/boot/grub"mkdir: 已创建目录 "/tmp/mylinux/dev"mkdir: 已创建目录 "/tmp/mylinux/etc"mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/{network-scripts}"mkdir: 已创建目录 "/tmp/mylinux/lib"mkdir: 已创建目录 "/tmp/mylinux/lib/{modules}"mkdir: 已创建目录 "/tmp/mylinux/lib64"mkdir: 已创建目录 "/tmp/mylinux/proc"mkdir: 已创建目录 "/tmp/mylinux/sbin"mkdir: 已创建目录 "/tmp/mylinux/sys"mkdir: 已创建目录 "/tmp/mylinux/tmp"mkdir: 已创建目录 "/tmp/mylinux/usr"mkdir: 已创建目录 "/tmp/mylinux/usr/{local"mkdir: 已创建目录 "/tmp/mylinux/usr/{local/bin}"mkdir: 已创建目录 "/tmp/mylinux/usr/{local/sbin}"mkdir: 已创建目录 "/tmp/mylinux/var"mkdir: 已创建目录 "/tmp/mylinux/var/lo_ck"mkdir: 已创建目录 "/tmp/mylinux/var/lo_g"mkdir: 已创建目录 "/tmp/mylinux/var/run"[root@localhost tmp]# cd mylinux/[root@localhost mylinux]# lsbin boot dev etc lib lib64 proc sbin sys tmp usr var
四、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1、文件的元数据
文件的元数据包括:名称,路径,大小,inode号,文件类型,硬链接数,权限,时间戳等 stat [option] file…file 文件名称size 文件大小 单位Kblocks 所占块的个数IO blocks 单块的大小device 设备标识inode 节点id,文件的元数据保存在磁盘上的inode区域中,每一个文件都有一个对应的inode号码links 硬链接数,一个文件的硬链接数为N,表示该文件在磁盘上有N个与其对应的inode号码相同的文件access 权限,文件的权限包括r(读),w(写),x(执行),suid,sgid,sbit这几种权限,它们可以分别对应到文件的属主、属组和其他人上uid 属主信息gid 属组信息access 最后一次访问时间,文件被访问,即文件在使用cat, more, less, head等命令查看,或者cp等命令将其作为源文件复制给其他路径下,或者使用grep命令进行匹配查找等操作时,atime都会改变modify 最后一次修改时间,指文件内容被修改时,mtime会改变change 最后一次更正时间,指文件的元数据被改变,例如chmod, chown, mv等命令改变了文件权限名称路径等信息,ln命令增加了文件的硬链接等操作都会改变ctime
[root@localhost mylinux]# stat -L /tmp/mylinux/ 文件:"/tmp/mylinux/" 大小:4096 块:8 IO 块:4096 目录设备:fd00h/64768d Inode:202724745 硬链接:14权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)环境:unconfined_u:object_r:user_tmp_t:s0最近访问:2017-11-29 14:28:11.973040042 +0800最近更改:2017-11-29 14:28:02.480300238 +0800最近改动:2017-11-29 14:28:02.480300238 +0800创建时间:-
使用touch修改时间戳
用法:touch [选项]... 文件...参数: -a 只更改访问时间-c, --no-create 不创建任何文件-d, --date=字符串 使用指定字符串表示时间而非当前时间-f (忽略)-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地 (当系统支持更改符号链接的所有者时,此选项才有用)-m 只更改修改时间-r, --reference=FILE use this file's times instead of current time-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time--time=WORD change the specified time: WORD is access, atime, or use: equivalent to -a WORD is modify or mtime: equivalent to -m--help 显示此帮助信息并退出--version 显示版本信息并退出 请注意,-d 和-t 选项可接受不同的时间/日期格式。
[root@localhost mylinux]# touch -m -t 021211221133.00 /tmp/mylinux/[root@localhost mylinux]# stat -L /tmp/mylinux/ 文件:"/tmp/mylinux/" 大小:4096 块:8 IO 块:4096 目录设备:fd00h/64768d Inode:202724745 硬链接:14权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)环境:unconfined_u:object_r:user_tmp_t:s0最近访问:2017-11-29 16:13:38.263642314 +0800最近更改:0212-11-22 11:33:00.000000000 +0805最近改动:2017-11-29 16:14:10.970745835 +0800创建时间:-
五、命令的别名
命令别名: 获取所有可用别名的定义: ~]#alias 定义别名 ~]#alias NAME=‘COMMAND’ 注意:只对当前shell进程设置有效 /]# alias cls=clear 撤销别名 /]# cls ~]#unalias NAME which 显示文件完成路径 which - shows the full path of (shell) commands. which [options] [--] programname [...] ~]# which which alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' /usr/bin/alias /usr/bin/which --COMMAND-alias 忽略别名 whereis 显示文件的路径,手册页, -b 只看二进制文件路径 -m 只看使用手册文件路径 who 查看登录当前用户的相关信息 -b 显示系统此次启动时间 -d 显示此次死亡进程 -l 显示登录进程 -u 比who多显示端口号 -r 运行级别 w 查看当前用户和其现阶段工作内容
六、详解文件通配符并完成以下练习
详解文件通配符
globbing :文件名通配 匹配模式:元字符 *:匹配任意长度的任意字符 ? :匹配任意单个字符 pa? ??pa p?a p?a? [ ]: 匹配指定范围内的任意单个字符 有几种特殊格式: [a-z] [A-Z] [0-9] [a-z0-9] [abcxyz] pa[0-9][a-z] pa2[0-9][0-9] [[:upper:]] 只匹配大写字母 [[:lower:]] 只匹配小写字母 [[:alpha:]] 只匹配所有字母 [[:digit:]] 只匹配所有数字 [[:alnum:]] 只匹配所有字母和数字 [[:space:]] 所有空白字符 touch p \空格 a [[:punct:]] 匹配所有符号 [^] :匹配指定范围外的单个字符(非!!) [^[:upper:]] [^0-9]
1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录
[root@localhost var]# ls -d l*[[:alnum:]] lib local local01 local02 lock log
2、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@localhost var]# ls -d [0-9]*[^0-9]0_abcc 0_bafaf 2_abcc 2_bafaf
3、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost etc]# ls -d /etc/[^[:alpha:]][a-zA-Z]*/etc/3axaxx /etc/,avc23
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost etc]# touch /tmp/tfile-$(date +"%Y-%m-%d-%H-%M-%S")[root@localhost etc]# ls /tmpa_c a_d b_c b_d magedu1.com mylinux tfile-2017-11-29-18-08-27
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest2目录中。
[root@localhost mytest2]# cp -a /etc/p*[^[:digit:]] /tmp/mytest2/[root@localhost mytest2]# lspam.d passwd- pki pm postfix prelink.conf.d profile protocolspasswd pinforc plymouth popt.d ppp printcap profile.d
6、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest1目录中。
[root@localhost mytest2]# mkdir -pv /tmp/mytest1mkdir: 已创建目录 "/tmp/mytest1"[root@localhost ~]# cp -a /etc/*.d /tmp/mytest1[root@localhost ~]# ls /tmp/mytest1bash_completion.d gdbinit.d modules-load.d rc1.d rsyslog.d usb_modeswitch.dbinfmt.d grub.d my.cnf.d rc2.d rwtab.d xinetd.d
7、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
[root@localhost ~]# mkdir -pv /tmp/mytest3mkdir: 已创建目录 "/tmp/mytest3"[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3[root@localhost ~]# ls /tmp/mytest3ld.so.conf libuser.conf logrotate.conf mke2fs.conf nsswitch.conflibaudit.conf locale.conf man_db.conf named.conf
阅读全文
0 0
- 第二周 Linux基础命令入门(二)
- Linux命令入门(二)
- Linux基础入门(二)
- Linux 基础命令(第二天)
- Linux基础命令--(二)
- Linux基础---->命令(二)
- Linux 基础命令(二)
- linux 入门基础 第二章
- linux 命令入门二
- linux入门基础命令
- 二、Linux基础命令
- Linux shell入门基础(二)
- Linux 基础入门(二)--学习笔记
- linux基础命令和知识(二)
- Linux常见基础命令总结(二)
- 七天LLVM零基础入门(Linux版本)------第二天
- Linux基础入门(第二弹:常用快捷键和通配符)
- java程序员菜鸟进阶(十四)linux基础入门(二)linux文件及目录命令管理
- leetcode题解-83. Remove Duplicates from Sorted List
- Sqlmap初步了解
- LeetCode-023 Merge k Sorted Lists
- 走redis缓存和不走缓存TPS差异明显对比
- 状态机(三):Verilog设计注意问题
- 第二周 Linux基础命令入门(二)
- LeetCode<Day2> Distribute Candies
- the general framework of RL_DQN
- java小细节不然很容易报错或者出逻辑问题得不到自己想要的。
- ARM的商业模式和ARM各种版本号区分
- 3ds Max导出OBJ的mtl贴图路径不正确
- 根据id分表
- SVN 使用简介及个人总结
- 131. Palindrome Partitioning