第二部分 Linux 文件、目录与磁盘格式
1.可以看到其他用户的文件名,但是内容受rwx的限制
2.一个用户可以属于多个组
3.ls -a 显示所有文件
4.表示文件权限的内容中,第一个字符表示文件类型。
d 文件夹
- 文件
l 连接文件
b 设备文件里面可供存储的接口设备
c 设备文件里面的串行端口设备
5.指向同一个inode的文件,其文件权限也一定相同,因为文件权限等相关信息就保存在inode节点中。
6.man 和 info 命令可以用来查看帮助手册。比如说 ” man ls“ “info ls”
7.chown不仅可以改变文件所有者,还可以改变所属组:chown root:root a.txt
也可以只改变所属组:chown .root a.txt
8.w表示可以修改该文件的内容,但是不含删除该文件
9.root用户的提示符为#,一般用户的提示符为$?
10.目录权限的理解
r:表示拥有读取此目录结构列表的权限,可以查看目录下有哪些文件。但是仅限于文件名,不能看到文件其他信息。
w: 更改目录结构列表的权限。可以:
1.新建新的目录与文件
2.删除已经存在的目录与文件,不论该目录或文件的权限如何。这点非常强大,不管权限如何,意味着就算你不能查看,修改,执行该文件,但是你可以删除该文件。
x: 与文件表示执行不同,表示能否进入该目录做为工作目录。也就是用cd命令打开此目录。
稍微不常见的权限组合:
-w- 只有写权限,没有读权限。
对文件来说,就是就可以修改文件的内容,但是却不可以读取到文件原来的内容。可以用echo "hahah" > a.txt 重写,但是却不能用 cat a.txt 读取。
对文件夹来说,
rename命令的用法
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ]
有必要解释一下这个格式,以后就可以自己用info 和man查看各个命令的用法,争取做到一通百通。
[] 表示内容是可选的。 [ -h|-m|-V ] 也就表示 -h -m -V这三个选项只能有一个。-v -n -f 等命令可以共同使用
[ -e|-E perlexpr]*|perlexpr 表示[ -e|-E perlexpr]* | perlexpr,也就是说,如果要用多个表达式,就用-e或者-E,后跟表达式 ,这个表达式可以有多个。如果只需要一个表达式,就直接跟表达式就好。其中的*号就表示重复。
[files] 就表示要修改的文件
例:
rename 's/.bak$//' *.bak 去掉.bak后缀
rename -n 'y/a-z/A-Z/' * 将文件中所有小写字母替换为大写字母
od命令用法
以指定格式显示文件内容,默认8进制显示,且以两个字节为单位,每一行显示16个字节。如下所示:
/test/temp$ echo "00000000" > a.txt
/test/temp$ od a.txt
0000000 030060 030060 030060 030060 000012
0000011
指定以十进制为单位显示整数:
@ubuntu:~/test/temp$ od -td1 a.txt
0000000 48 48 48 48 48 48 48 48 10
0000011
同时显示多种格式:
@ubuntu:~/test/temp$ od -td1 a.txt
0000000 48 48 48 48 48 48 48 48 10
0000011
两个-t可以合并写成:
od -td1c a.txt
每一行前面的编号是用8进制表示的,貌似不可以更改。
设置命令行提示符格式
写入/etc/profile
或者/home/.bashrc
或者/home/.profile
PS1='\u@\h:\w \A \$ '
制造一个文件
for((i=0;i<1000;i++)); do echo "$i"abcdefghijklmnopqrstuvwxyz >> learnvim.txt; done
获取日期:
date '+%Y-%m-%d'
获取昨天的日期:
date --date='1 days ago' '+%Y-%m-%d'获取某一天距离1970年0时0分的秒数
[root@host ~]# date +%s
1525367998
8
可以观察到,默认是以日期当天的8点开始算的,再看如下例子进一步验证
32
今天
root@ubuntu:~/test 06:23 # echo $(($(date +%s)/3600/24))
17521
./test.sh /fullpath/test.sh