鸟哥的linux私房菜学习笔记

第二部分 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

echo "00000000" > a.txt 这句输入8个0到a.txt,查看ascii码表得知0的值为48,所以48*256+48=12336转换为8进制为30060。最后个换行符为10,8进制为12。

指定以十进制为单位显示整数:

@ubuntu:~/test/temp$ od -td1 a.txt
0000000   48   48   48   48   48   48   48   48   10
0000011

-t 指定格式,d表示十进制,1表示一个整数只表示一个字节。


同时显示多种格式:
@ubuntu:~/test/temp$ od -td1 a.txt
0000000   48   48   48   48   48   48   48   48   10
0000011

两个-t可以合并写成:
od -td1c a.txt

内容的显示有8,10,16三种进制格式可以选择。
每一行前面的编号是用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

root@ubuntu:~/test 06:18 # echo $(($(date --date="1970/01/01" +%s)/3600))
8

可以观察到,默认是以日期当天的8点开始算的,再看如下例子进一步验证


root@ubuntu:~/test 06:19 # echo $(($(date --date="1970/01/ 02" +%s)/3600))
32
今天
root@ubuntu:~/test 06:23 # echo $(($(date  +%s)/3600/24))
17521

./test.sh  /fullpath/test.sh



































评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值