Bo's Oracle Station

查看: 1507|回复: 2

课程第5次

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2019-4-15 20:38:55 | 显示全部楼层 |阅读模式
2019-04-15星期一

关于文件系统的小练习:
  1. -bash-4.2# mkdir labs
  2. -bash-4.2# ls
  3. 1.txt  Desktop  Documents  Downloads  labs  Music  Pictures  Public  Templates  Videos
  4. -bash-4.2# cd labs
  5. -bash-4.2# ls
  6. -bash-4.2# touch "1 space 2"
  7. -bash-4.2# mkdir "3 space 4"
  8. -bash-4.2# ls
  9. 1 space 2  3 space 4
  10. -bash-4.2# cd 3\ space\ 4/
  11. -bash-4.2# touch " "
  12. -bash-4.2# ls

  13. -bash-4.2# ls

  14. -bash-4.2# cd ..
  15. -bash-4.2# ls
  16. 1 space 2  3 space 4
  17. -bash-4.2# cd 3\ space\ 4/
  18. -bash-4.2# ls

  19. -bash-4.2# ls -l | wc -l
  20. 2
  21. -bash-4.2# cd ..
  22. -bash-4.2# ls
  23. 1 space 2  3 space 4
  24. -bash-4.2# mkdir 5
  25. -bash-4.2# cd 5
  26. -bash-4.2# ls -l | wc -l
  27. 1
复制代码
文件、文件夹的3个时间的小实验:
  1. [root@station60 labs]# touch 5.sh
  2. [root@station60 labs]# stat 5.sh
  3.   File: ‘5.sh’
  4.   Size: 11              Blocks: 8          IO Block: 4096   regular file
  5. Device: fd00h/64768d    Inode: 82810       Links: 1
  6. Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
  7. Context: unconfined_u:object_r:admin_home_t:s0
  8. Access: 2019-04-15 08:53:37.254822442 -0400
  9. Modify: 2019-04-15 08:53:37.254822442 -0400
  10. Change: 2019-04-15 08:53:37.254822442 -0400
  11. Birth: -
  12. [root@station60 labs]# echo "123456"  >> 5.sh
  13. [root@station60 labs]# stat 5.sh
  14.   File: ‘5.sh’
  15.   Size: 18              Blocks: 8          IO Block: 4096   regular file
  16. Device: fd00h/64768d    Inode: 82810       Links: 1
  17. Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
  18. Context: unconfined_u:object_r:admin_home_t:s0
  19. Access: 2019-04-15 08:53:37.254822442 -0400
  20. Modify: 2019-04-15 08:54:08.817003129 -0400
  21. Change: 2019-04-15 08:54:08.817003129 -0400
  22. Birth: -
  23. [root@station60 labs]# chmod 777 5.sh
  24. [root@station60 labs]# stat 5.sh
  25.   File: ‘5.sh’
  26.   Size: 18              Blocks: 8          IO Block: 4096   regular file
  27. Device: fd00h/64768d    Inode: 82810       Links: 1
  28. Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
  29. Context: unconfined_u:object_r:admin_home_t:s0
  30. Access: 2019-04-15 08:53:37.254822442 -0400
  31. Modify: 2019-04-15 08:54:08.817003129 -0400
  32. Change: 2019-04-15 08:54:34.540150391 -0400
  33. Birth: -
复制代码
隐含文件和执行位的小实验:
  1. [root@station60 labs]# vim .6.sh
  2. [root@station60 labs]# ls
  3. !  1.sh  2.sh  4.sh  5.sh
  4. [root@station60 labs]# ls -a
  5. .  ..  !  1.sh  2.sh  4.sh  5.sh  .6.sh
  6. [root@station60 labs]# chmod +x .6.sh
  7. [root@station60 labs]# ./.6.sh
  8. Mon Apr 15 09:01:55 EDT 2019
复制代码

命令行扩展和文件通配符很相似,但不同:
  1. [root@station60 ~]# cd -
  2. bash: cd: OLDPWD not set
  3. [root@station60 ~]# echo -
  4. -
  5. [root@station60 ~]# echo ~+
  6. /root
  7. [root@station60 ~]# cd /usr/sbin
  8. [root@station60 sbin]# echo ~-
  9. /root
  10. [root@station60 sbin]# echo ~+
  11. /usr/sbin
  12. [root@station60 sbin]# cd -
  13. /root
  14. [root@station60 ~]# cd -
  15. /usr/sbin
  16. [root@station60 sbin]#
复制代码
cd -是命令行扩展
cd ~+ 是文件通配符第二个例子,以下命令为什么会失败?
  1. [root@station60 sbin]# cd
  2. [root@station60 ~]# ls
  3. anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Music     Public     Videos
  4. Desktop          Downloads  labs                  Pictures  Templates
  5. [root@station60 ~]# find ./ -name  P*
  6. find: paths must precede expression: Public
  7. Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
复制代码
原因是P* 先被通配成了find ./ -name  Public   Pictures 导致语法错了
  1. [root@station60 ~]# find ./ -name  "P*"
  2. ./Public
  3. ./Pictures
复制代码
有歧义的命令行扩展和文件通配符:
  1. [root@station60 ~]# cd labs
  2. [root@station60 labs]# ls
  3. !  1.sh  2.sh  4.sh  5.sh
  4. [root@station60 labs]# ls [12345].sh
  5. 1.sh  2.sh  4.sh  5.sh
  6. [root@station60 labs]# touch [12345].sh
  7. [root@station60 labs]# ls
  8. !  1.sh  2.sh  4.sh  5.sh
  9. [root@station60 labs]# touch *[12345].sh
  10. [root@station60 labs]# ls
  11. !  1.sh  2.sh  4.sh  5.sh
  12. [root@station60 labs]# mkdir [abcd]
  13. [root@station60 labs]# ls
  14. !  1.sh  2.sh  4.sh  5.sh  [abcd]
  15. [root@station60 labs]# mkdir {a,b,c,d}
  16. [root@station60 labs]# ls
  17. !  1.sh  2.sh  4.sh  5.sh  a  [abcd]  b  c  d
  18. [root@station60 labs]# touch {1,2,3,4,5}
  19. [root@station60 labs]# ls
  20. !  1  1.sh  2  2.sh  3  4  4.sh  5  5.sh  a  [abcd]  b  c  d
复制代码

$()是最重要的命令行扩展,它这么处理输出中的回车?
  1. [root@station60 /]# ls -d  *
  2. bin   dev  home  lib64       media  opt   root  sbin  sys  usr
  3. boot  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
  4. [root@station60 /]# echo $(ls -d *)
  5. bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
复制代码
  1. [root@station60 labs]# cat list.txt
  2. a
  3. b
  4. c
  5. d
  6. e
  7. f
  8. [root@station60 labs]# echo $(cat list.txt)
  9. a b c d e f
  10. [root@station60 labs]# for i in $(cat list.txt); do echo $i; done
  11. a
  12. b
  13. c
  14. d
  15. e
  16. f
复制代码
对变量名本身的区分:
  1. [root@station60 labs]# host=$(hostname)
  2. [root@station60 labs]# echo $host
  3. station60.example.com
  4. [root@station60 labs]# host1=$(date)
  5. [root@station60 labs]# echo $host1
  6. Mon Apr 15 10:37:21 EDT 2019
  7. [root@station60 labs]# echo ${host}1
  8. station60.example.com1
  9. [root@station60 labs]# echo ${host1}
  10. Mon Apr 15 10:37:21 EDT 2019
复制代码
单引号的 限制能力最强:
  1. [root@station60 labs]# echo ${host1}
  2. Mon Apr 15 10:37:21 EDT 2019
  3. [root@station60 labs]# echo "${host1}"
  4. Mon Apr 15 10:37:21 EDT 2019
  5. [root@station60 labs]# echo '${host1}'
  6. ${host1}
  7. [root@station60 labs]#
复制代码











回复

使用道具 举报

0

主题

4

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2019-4-17 20:01:41 | 显示全部楼层
linhaitao@localhost ~]$ cd labs
[linhaitao@localhost labs]$ ls
[linhaitao@localhost labs]$ touch "1space 2"
[linhaitao@localhost labs]$ mkdir "3 space 4"
[linhaitao@localhost labs]$ ls
1space 2  3 space 4
[linhaitao@localhost labs]$ cd 3\ space\ 4/
[linhaitao@localhost 3 space 4]$ touch""
touch: 缺少了文件操作数
Try 'touch --help' for more information.
[linhaitao@localhost 3 space 4]$ touch ""
touch: 无法创建"": 没有那个文件或目录
[linhaitao@localhost 3 space 4]$
悲剧啊为啥我做这个到这边出现这个
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
 楼主| 发表于 2019-4-18 03:10:45 | 显示全部楼层
rhce小学徒海涛 发表于 2019-4-17 20:01
linhaitao@localhost ~]$ cd labs
[linhaitao@localhost labs]$ ls
[linhaitao@localhost labs]$ touch " ...

touch " ", 注意空格
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-5-2 05:53 , Processed in 0.034205 second(s), 24 queries .

快速回复 返回顶部 返回列表