一、
Linux文件属性
ls -lhi 每一列含义
文件类型
inode和block
软硬链接
用户
权限
相关命令:which 、whereis、date、find、tar、tr
1、文件属性简介
文件属性简介2、inode和block
2.1 含义:
inode含义
inode index node 索引节点
inode号码相当于是我们每个人的身份证号码
inode空间
存放文件的属性信息(权限 所有者 大小 修改时间 硬链接数 文件类型)
block的位置
没有存放文件名:文件名不是文件属性
block含义:
存放数据库(文件的内容)
2.2关系:
查看一个文件file.txt背后与inode和block关系
inode与block关系
类型 | inode | block |
---|---|---|
文件 | 文件属性信息 | 文件内容 |
目录 | 目录信息 | 目录下面文件名字(文件名和inode对应关系) |
2.3特点
inode
在同一个磁盘分区中是唯一的
每创建一个非空的文件就要占用inode和1个block
block
存放数据(文件内容)
block大小通常为4K(硬盘分区>500MB的情况下)
创建大文件10G,占用多个block
创建小文件1K,剩余空间将无法给别人使用。
2.4查看
inode 和block 数量是常见在磁盘分区(格式化)
查看block磁盘空间一共有多少,还剩多少
查看block查看inode总数及使用情况
3、软连接VS硬链接
3.1 链接文件的创建:
默认不带参数的情况,ln命令创建的是硬链接,带参数 -s的创建的是软链接。
3.2含义:
硬链接:在同一分区中inode节点号相同文件。
软连接:相当于windows中的快捷方式,存放源文件的位置,inode节点号与源文件不同。
3.3特点:
不能对目录创建硬链接,但可以创建软连接
软链接可以跨越文件系统,但硬链接不可以。
软连接和硬链接的区别3.4源文件、软连接、硬链接的删除
1、删除软链接文件,对源文件及硬链接无任何影响;
2、删除硬链接文件,对源文件 及软连接文件无任何影响
3、删除链接文件的源文件,对硬链接文件无影响,会导致其软连接失效(红底白字闪烁)
4、同时删除源文件及其硬链接文件,整个文件才会被”真正“的删除
4、用户
分类 | UID范围 | 说明 |
---|---|---|
root | 0 | 像皇帝一样 |
虚拟用户 | (C7)1~999 (C6)1~499 | 满足每个进程要有一个用户和用户组 无法登陆 |
普通用户 | (C7)1000以上 (C6)500以上 | 普通百姓 |
添加用户
[root@localhost ~]# useradd xiaoxi
设置密码
[root@localhost ~]# passwd xiaoxi
Changing password for user xiaoxi.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
切换用户
[root@localhost ~]# su xiaoxi
[xiaoxi@localhost root]$ whoami
xiaoxi
whoami 命令是用来查看当前所登陆的用户是谁
删除用户
[root@localhost ~]# userdel -r xiaoxi
删除用户时 建议加上 -r 参数 否则不会删除家目录,当再次创建一模一样的用户时,会出现报错如下;
[root@localhost ~]# useradd xiaoxi
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
用户相关文件
- /etc/passwd 存放用户信息
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
一列:用户名称
二列:x表示密码占位符(密码配置文件存放在/etc/shadow)
三列:用户的UID(用户ID是唯一的,Linux中UID是用来判断权限)
四列:用户的GID(主组的GID)
五列:用户说明,相当于windows中的描述
六列:用户的家目录
七列:用户登录时使用的shell
- /etc/group 用户组信息
几乎不会用到
- /etc/shadow 密码信息
[root@localhost ~]# cat /etc/shadow
root:$6$W7l84.hfZ92d/Xi.$lhJKODCm0wv7Dlu/y899QCPHYeZ64XEhr7.pGFO8RyfRl/ea8jYsltzUzxNzNasRgxaG/Yq.7UpCp.OBVtsft1::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
operator:*:17834:0:99999:7:::
games:*:17834:0:99999:7:::
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:17998::::::
dbus:!!:17998::::::
polkitd:!!:17998::::::
tss:!!:17998::::::
abrt:!!:17998::::::
sshd:!!:17998::::::
postfix:!!:17998::::::
ntp:!!:17999::::::
xiaoxi:!!:18003:0:99999:7:::
一列:用户名称
二列:加密后的密码(采用SHA512散列算法加密,如密码位为“!!”or“*”表示没有密码)
三列:密码最后一次修改的时间(单位为天,以1970年1月1日为标准时间,每过一天加一天)
四列:限制两次密码修改的间隔时间(0表示不限制)
五列:密码有效期(99999表示永不过期)
六列:密码到期前警告天数
七列:密码到期宽限天数(0表示到期即失效,-1表示永不过期)
八列:账户失效时间(单位为天,以1970年1月1日为标准时间)
九列:未定义,备用列
- /etc/gshadow 用户组密码
几乎不会用到
5、权限
image.png5.1 字母及含义
字母 | 含义 |
---|---|
u | user(所有者) |
g | group(所属组) |
o | other (其他人) |
a ==u+g+o | 表示所有 |
5.2 权限位中字母及数字含义
权限 | 全拼 | 数字 | 含义 |
---|---|---|---|
- | 无 | 0 | 没有权限 |
r | read | 4 | 读取权限 |
w | write | 2 | 写入权限 |
x | excute | 1 | 执行权限 |
5.3修改权限(chmod)
chmod change mode 修改权限
chmod命令的-R选项
chmod -R 777 /abc
-R 递归修改此目录及目录下所有的子文件和子目录的权限
方法1:数字
[root@localhost xiaoxi]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 15 20:21 file1
-rw-r--r--. 1 root root 0 Apr 15 20:21 file2
-rw-r--r--. 1 root root 0 Apr 15 20:21 file3
[root@localhost xiaoxi]# chmod 777 file1
[root@localhost xiaoxi]# ll
total 0
-rwxrwxrwx. 1 root root 0 Apr 15 20:21 file1
-rw-r--r--. 1 root root 0 Apr 15 20:21 file2
-rw-r--r--. 1 root root 0 Apr 15 20:21 file3
方法2:字母
[root@localhost xiaoxi]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 15 20:21 file1
-rw-r--r--. 1 root root 0 Apr 15 20:21 file2
-rw-r--r--. 1 root root 0 Apr 15 20:21 file3
[root@localhost xiaoxi]# chmod a+x file1
[root@localhost xiaoxi]# ll
total 0
-rwxr-xr-x. 1 root root 0 Apr 15 20:21 file1
-rw-r--r--. 1 root root 0 Apr 15 20:21 file2
-rw-r--r--. 1 root root 0 Apr 15 20:21 file3
[root@localhost xiaoxi]# chmod g+wx file2
[root@localhost xiaoxi]# ll
total 0
-rwxr-xr-x. 1 root root 0 Apr 15 20:21 file1
-rw-rwxr--. 1 root root 0 Apr 15 20:21 file2
-rw-r--r--. 1 root root 0 Apr 15 20:21 file3
[root@localhost xiaoxi]# chmod o+w file3
[root@localhost xiaoxi]# ll
total 0
-rwxr-xr-x. 1 root root 0 Apr 15 20:21 file1
-rw-rwxr--. 1 root root 0 Apr 15 20:21 file2
-rw-r--rw-. 1 root root 0 Apr 15 20:21 file3
6、命令:
6.1 which :查看命令的完整路径和别名(如果有别名的话)
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
6.2 whereis:用于搜索程序名,和man说明文件
[root@localhost ~]# whereis date
date: /usr/bin/date /usr/share/man/man1/date.1.gz
6.3 date:查看或修改时间
修改本地时间
[root@localhost dir]# date -s "20001001 19:30:00"
Sun Oct 1 19:30:00 CST 2000
[root@localhost dir]#
+按照指定格式显示日期
%F = %Y-%m-%d
[root@localhost ~]# date +%F
2019-04-18
[root@localhost ~]# date +%Y-%m-%d
2019-04-18
[root@localhost ~]#
%T = %H:%M:%S
[root@localhost ~]# date +%T
17:49:07
[root@localhost ~]# date +%H:%M:%S
17:49:36
[root@localhost ~]#
%w 周几
[root@localhost ~]# date +%w
4
ntpdate自动同步时间:
根据网上的时间服务器同步本地时间
[root@localhost ~]# ntpdate ntp1.aliyun.com
18 Apr 17:42:08 ntpdate[7117]: adjust time server 120.25.115.20 offset 0.267318 sec
6.4 tar:打包压缩及解包解压缩
参数 | 释义 |
---|---|
-c | 创建打包文件 |
-v | 显示过程 |
-z | 压缩或解压缩(通过gzip的方式) |
-f | 指定压缩包 |
-x | 解包 |
-t | 查看压缩包的内容 |
-C | 指定到解压目录 |
**用法:**
tar -zcvf file.tar.gz /dir/file 创建压缩包 file.tar.gz
[root@localhost dir]# tar -zcvf file.tar.gz file{01..05}
file01
file02
file03
file04
file05
[root@localhost dir]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 18 18:51 file01
-rw-r--r--. 1 root root 0 Apr 18 18:51 file02
-rw-r--r--. 1 root root 0 Apr 18 18:51 file03
-rw-r--r--. 1 root root 0 Apr 18 18:51 file04
-rw-r--r--. 1 root root 0 Apr 18 18:51 file05
-rw-r--r--. 1 root root 153 Apr 18 18:51 file.tar.gz
tar -tf file.tar.gz 显示压缩包内容
[root@localhost dir]# ll
total 4
-rw-r--r--. 1 root root 0 Apr 18 18:51 file01
-rw-r--r--. 1 root root 0 Apr 18 18:51 file02
-rw-r--r--. 1 root root 0 Apr 18 18:51 file03
-rw-r--r--. 1 root root 0 Apr 18 18:51 file04
-rw-r--r--. 1 root root 0 Apr 18 18:51 file05
-rw-r--r--. 1 root root 153 Apr 18 18:51 file.tar.gz
[root@localhost dir]# tar -tf file.tar.gz
file01
file02
file03
file04
file05
[root@localhost dir]#
tar -zxvf tar == tar -xf 解压并解包
(1)、解单个包
[root@localhost dir]# tar zxvf file.tar.gz file01
file01
[root@localhost dir]# ls
file01 file.tar.gz
[root@localhost dir]#
(2)、解压整包
[root@localhost dir]# tar -zxvf file.tar.gz
file01
file02
file03
file04
file05
[root@localhost dir]# ls
file01 file02 file03 file04 file05 file.tar.gz
[root@localhost dir]#
tar -xf file.tar.gz -C /opt 解压到 /opt 中
[root@localhost dir]# tar -zxvf file.tar.gz -C /opt/
file01
file02
file03
file04
file05
[root@localhost dir]# ls /opt/
file01 file02 file03 file04 file05
[root@localhost dir]#
用tar 命令配合 /dev/urandom 取随机数
#6.5 find 命令
##格式 : find /path option
**查找条件**
option(选项、参数)|释义
:---: |:---:
-name | 以文件名查找
-iname| 以文件名查找(不区分大小写)
-type | 以文件类型查找
-size | 文件大小查找 (KB、MB、G) (-1M 小于1M)(+1M 大于1M)
-mtime -1 | 最近1天修改过
-inum|找出与指定inode号码一样的文件
-samefile| 找出与给定文件inode号码相同的文件
-user |找属主为指定用户的文件:
-group |找属组为指定用户的文件:
-uid |据文件的UID进行查找
-gid |据文件的gid 进行查找
-nouser |找没有属主的文件
-nogroup |找没有属组的文件
**1)、根据文件名查找**
-name “文件名称”
-iname “文件名” //不区分字母大小写
**2)、根据文件类型进行查找(-type)**
-type |代表类型
:---: | :---:
f|普通文件
d|目录文件
l|符号链接文件
s|套接字文件
b|块儿设备文件
c|字符设备文件
p|管道文件
###示例
**1、以文件类型和文件名查找**
```html
[root@localhost dir]# find /dir/ -type f -name "file01"
/dir/file01
[root@localhost dir]#
2、以inode号查找
[root@localhost dir]# find /dir/ -inum 16777900
/dir/file01
[root@localhost dir]#
3、查找与给定文件inode号码相同的文件
[root@localhost dir]# find /dir/ -samefile /dir/file01
/dir/file01
/dir/file.hart
6.6 alias 别名命令
1、查看别名
[root@localhost dir]# alias
alias cls='clear'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2、设置别名
设置别名格式
alias mv='mv -i'
alias 昵称='命令'
[root@localhost dir]# alias cls='clear'
[root@localhost dir]# alias cls
alias cls='clear'
[root@localhost dir]#
3、永久设置别名
[root@localhost ~]# tail -n 1 /etc/profile
alias cls='clear'
[root@localhost ~]#
6.7 tr 命令 做替换使用
常用参数 | 注释 |
---|---|
-d | 删除 |
-c | 取反 |
[root@localhost tmp]# cat 1.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost tmp]# tr 'a-z' 'A-Z' <1.txt
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
使用 -d参数
[root@localhost tmp]# cat 1.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 2 3 4 5 6 7 8 9
[root@localhost tmp]# tr -d '[0-9]' <1.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost tmp]#
使用 -c 参数 ,配合-d参数使用,不然会报错
[root@localhost tmp]# cat 1.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 2 3 4 5 6 7 8 9
[root@localhost tmp]# tr -cd 'a-z'\ <1.txt #意为除了a-z以外的都删除
a b c d e f g h i j k l m n o p q r s t u v w x y z [root@localhost tmp]#
二、
特殊符号与正则表达式
特殊符号
管道
单引号 双引号 不加引号区别
正则
老三 grep
1、特殊符号
特殊符号 | 作用 |
---|---|
!# | 调用历史中第#条命令(#表示数字) |
!ls | 调用历史中最近一个以ls开头的命令 |
!! | 上一条命令 |
\ | 强制换行 |
* | 匹配任意数量的任意字符 |
? | 匹配单个任意字符 |
[ ] | 对范围做匹配 |
{ } | 生成序列 |
> | 标准输出重定向 |
>> | 标准追加重定向 |
< | 标准输入重定向 |
<< | 标准输入追加重定向 |
# | 注释 |
2管道 |
命令1 | 命令2
把命令1结果 通过管道传递给 命令2使用
[root@localhost ~]# cat /etc/passwd | head -n 5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
3、单引号 双引号 不加引号区别 反引号
' ' 单引号所见即所得
" " 双引号和单引号类似 里面的特殊符号会被解析(运行) $ ' '
不加引号 和双引号类似,但是可以使用{}
反引号 ` ` == $( 命令 ) 优先执行命令
4、正则表达式 经常用于三剑客、Python、Go
正则表达式元字符
元字符 | 释义 |
---|---|
[:digit:] | 匹配任意数字,相当于[0-9] |
[:lower:] | 匹配任意小写字符,相当于[a-z] |
[:upper:] | 匹配任意大写字符,相当于[A-Z] |
[:alpha:] | 匹配任意大小写字符 |
[:alnum:] | 匹配任意数字或字母 |
[:space:] | 匹配空格 |
[:punct:] | 标点符号 |
正则表达式次数匹配
符号 | 释义 |
---|---|
[ ] | 匹配任意指定范围内的任意单个字符 |
[^] | 匹配任意指定范围外的任意单个字符 |
* | 匹配前面任意长度的字符,这个不同于命令行中用到的字符; |
. | 点,匹配任意字符 |
.* | 匹配任意长度的任意字符,这两个才相当于命令行中的* |
+ | 匹配前面的字符至少一次,至多不限 |
{m} | 匹配前面的字符m次。m是数字 |
{m,n} | 匹配前面的字符至少m次至多n次,m,n都是数字 |
正则表达式位置锚定:
符号 | 释义 |
---|---|
^ | 锚定行首,用于模式的最左侧 |
$ | 锚定行尾,用于模式的最右侧 |
^patter$ | 用于匹配模式正行 |
^$ | 空行,(表示什么都没有,有空白字符也不能算空行) |
<或\b | 词首锚定,用于单词最左侧 |
>或\b | 词尾锚定 |
<patter> | 匹配整个单词 |
5、 grep命令
作用:文本搜索工具(支持正则表达式BRE)
常用选项
-v 不能被匹配到的(按照正行取反,中间有多余字符则不能匹配)
-n 显示匹配到的行号
-i 忽略字符大小写
-o 详细显示仅匹配到的
-q 静默模式,不输出任何信息
[root@localhost ~]# grep -n '^root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
[root@localhost ~]#
find 与 | 配合使用
find +|xargs 管道前面的文字符号通过|xargs 处理变成参数(文件名)
#find习题:
方法1
find /dir/ -type f -name "*.txt"|xargs ls -l
[root@localhost dir]# find /dir/ -type f -name "*file01"|xargs ls -l
-rw-r--r--. 2 root root 0 Apr 18 2019 /dir/file01
方法2
ls -l $(find /opt -type f -name "file01")
ls -l `find /dir/ -type f -name "file01"`
[root@localhost dir]# ls -l `find /dir/ -type f -name "file01"`
-rw-r--r--. 2 root root 0 Apr 18 2019 /dir/file01
[root@localhost dir]# ls -l $(find /opt -type f -name "file01")
-rw-r--r--. 1 root root 0 Apr 18 2019 /opt/file01
[root@localhost dir]#
方法3
find /dir/ -type f -name "*" -exec ls -l {} \ ;
[root@localhost tmp]# find /dir/ -type f -name "*" -exec ls -l {} \;
-rw-r--r--. 1 root root 153 Apr 18 18:51 /dir/file.tar.gz
-rw-r--r--. 2 root root 0 Apr 18 18:51 /dir/file01
-rw-r--r--. 1 root root 0 Apr 18 18:51 /dir/file02
-rw-r--r--. 1 root root 0 Apr 18 18:51 /dir/file03
-rw-r--r--. 1 root root 0 Apr 18 18:51 /dir/file04
-rw-r--r--. 1 root root 0 Apr 18 18:51 /dir/file05
-rw-r--r--. 2 root root 0 Apr 18 18:51 /dir/file.hart
网友评论