ls 命令常用搭配
ls -trhl
[root@linux2019 ~]# ll -trhl
总用量 44K
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-------. 1 root root 1.9K 5月 21 2018 anaconda-ks.cfg
drwx------. 3 root root 25 5月 21 2018 .dbus
-rw-r--r--. 1 root root 1.9K 5月 21 2018 initial-setup-ks.cfg
drwx------. 4 root root 31 5月 21 2018 .cache
drwxr-xr-x. 3 root root 18 5月 21 2018 .config
drwx------. 2 root root 38 1月 11 16:50 .ssh
-rw-------. 1 root root 2.6K 1月 11 17:39 .bash_history
dr-xr-xr-x. 17 root root 265 1月 14 16:10 ..
-rw------- 1 root root 322 1月 14 16:19 .Xauthority
-rw-r--r-- 1 root root 0 1月 14 16:19 poweroff.target
-rw-r--r-- 1 root root 0 1月 14 16:19 rescue.target
-rw-r--r-- 1 root root 0 1月 14 16:19 multi-user.target
-rw-r--r-- 1 root root 0 1月 14 16:19 graphical.target
dr-xr-x---. 6 root root 4.0K 1月 14 16:19 .
-rw-------. 1 root root 43 1月 14 16:24 .lesshst
- -a 可以查看隐藏的文件和文件夹
- -t 按时间信息排序
- -r 逆序排列
- -h 显示文件大小
- -d 查看目录本身
- -i inode(在格式化磁盘的时候生成)
[root@linux2019 ~]# ll -i
总用量 8
12582978 -rw-------. 1 root root 1896 5月 21 2018 anaconda-ks.cfg
12775263 -rw-r--r-- 1 root root 0 1月 14 16:19 graphical.target
12582993 -rw-r--r--. 1 root root 1944 5月 21 2018 initial-setup-ks.cfg
12775252 -rw-r--r-- 1 root root 0 1月 14 16:19 multi-user.target
12582981 -rw-r--r-- 1 root root 0 1月 14 16:19 poweroff.target
12583031 -rw-r--r-- 1 root root 0 1月 14 16:19 rescue.target
七种文件类型
- 普通文件类型
第一个属性为 [-],包括纯文本文件,二进制文件和数据格式的文件。纯文本文件,其内容可以直接读取,如数字字母等,比如配置文件几乎都是这种文件;二进制文件,Linux中的可执行文件,比如命令文件;数据格式文件,比较少见,是一种具有特定格式的文件。
- 目录文件
第一个属性为 [d],就是目录, 能用 cd 命令进入的。
- 块设备文件
第一个属性为 [b],块设备是存储数据的接口设备,供系统及程序访问,如磁盘,光驱等都是块设备,
- 字符设备
第一个属性为 [c],即串行端口的接口设备,例如键盘、鼠标等。
- 套接字文件
第一个属性为 [s],这类文件通常用在网络数据连接。是Unix/Linux系统里面用来通信的,进程间通信的文件。最常在/var/run目录中看到这种文件类型
- 管道文件
第一个属性为 [p],FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。
- 链接文件
第一个属性为 [l],类似Windows下面的快捷方式。
chmod命令(修改文件、目录权限)
-R级联修改权限
用户权限
- r-read-读-4
- w-write-写-2
- x-excute-执行-1
- 一个文件或者目录的用户权限包括所有者(u)、所属组(g)、其它(o)、u+g+o=a
- t权限(stick权限),谁的文件谁做主,针对目录
- s权限,存在于所有者和所属组的权限位上
[root@linux2019 tmp]# ls -dl /tmp/
drwxrwxrwt. 8 root root 4096 Jan 16 15:42 /tmp/
[root@linux2019 tmp]# ll 1.txt
-rw-r--r-- 1 root root 0 Jan 16 16:51 1.txt
[root@linux2019 tmp]# chmod 654 1.txt
[root@linux2019 tmp]# ll 1.txt
-rw-r-xr-- 1 root root 0 Jan 16 16:51 1.txt
#等同操作
[root@linux2019 tmp]# chmod g+w 1.txt
[root@linux2019 tmp]# chmod o-r 1.txt
[root@linux2019 tmp]# chmod u+x 1.txt
-rwxrw-rw- 1 root root 0 Jan 16 16:51 1.txt
[root@linux2019 tmp]# chmod a+x 1.txt
[root@linux2019 tmp]# ll 1.txt
-rwxrwxrwx 1 root root 0 Jan 16 16:51 1.txt
chown(修改文件、目录的所有者或者所属组)
-R级联修改权限
[root@linux2019 tmp]# useradd user1
[root@linux2019 tmp]# useradd user2
[root@linux2019 tmp]# chown user1:user1 1.txt
[root@linux2019 tmp]# chown user2.user2 2.txt #:和.都可以
[root@linux2019 tmp]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1) #查看用户所属组(主组和附属组)
[root@linux2019 tmp]# groupadd user12
[root@linux2019 tmp]# tail -n3 /etc/group
user1:x:1000:
user2:x:1001:
user12:x:1002:
[root@linux2019 tmp]# ll
-rwxrwxrwx 1 user1 user1 0 Jan 16 16:51 1.txt
-rw-rw-rw- 1 user2 user2 0 Jan 16 17:11 2.txt
[root@linux2019 tmp]# chown user1:user12 1.txt
[root@linux2019 tmp]# chown user2:user12 2.txt
[root@linux2019 tmp]# ll
-rwxrwxrwx 1 user1 user12 0 Jan 16 16:51 1.txt
-rw-rw-rw- 1 user2 user12 0 Jan 16 17:11 2.txt
软链接和硬链接
软链接和硬链接区别
- 软链接可以理解成快捷方式。它和windows下的快捷方式的作用是一样的,是一种主从关系
- 硬链接等于cp -p 加 同步更新的效果(cp -p :连同档案的属性一起复制过去),删除其中任意一个都不会影响另一个的的访问
[root@linux2019 ~]#
[root@linux2019 ~]# ls -ld /tmp/
drwxrwxrwt. 8 root root 4096 Jan 17 11:14 /tmp/
[root@linux2019 tmp]# ls -al
total 32
drwxrwxrwt. 8 root root 4096 Jan 17 11:14 .
dr-xr-xr-x. 18 root root 4096 Jan 17 11:14 ..
-rwxrwxrwx 1 user1 user12 0 Jan 16 16:51 1.txt
-rw-rw-rw- 1 user2 user12 0 Jan 16 17:11 2.txt
srwxr-xr-x 1 root root 0 Jan 17 11:14 Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>
drwxrwxrwt. 2 root root 4096 Dec 12 15:53 .font-unix
drwxrwxrwt. 2 root root 4096 Dec 12 15:53 .ICE-unix
drwx------ 3 root root 4096 Jan 17 11:14 systemd-private-c5d63660c3a342c8bb329dab41958873-chronyd.service-ceHIrg
drwxrwxrwt. 2 root root 4096 Dec 12 15:53 .Test-unix
drwxrwxrwt. 2 root root 4096 Dec 12 15:53 .X11-unix
drwxrwxrwt. 2 root root 4096 Dec 12 15:53 .XIM-unix
#创建硬链接
[root@linux2019 tmp]# ln 1.txt 3.txt
[root@linux2019 tmp]# cat 1.txt 3.txt
I AM LEARNING LINUX
I AM LEARNING LINUX
一个目录属性第二列的数字表示该目录下面的子目录数量(包含隐藏的.和…),也可以说有相应数量的文件使用了相同的inode号(目录属性第5列)
目录无法做硬链接(由系统创建)
- inode(索引节点)
#查看文件inode信息
[root@linux2019 tmp]# stat 1.txt
File: ‘1.txt’
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 131083 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/ user1) Gid: ( 1002/ user12)
Access: 2019-01-17 11:59:46.071859421 +0800
Modify: 2019-01-17 11:59:42.372575887 +0800
Change: 2019-01-17 11:59:42.372575887 +0800
Birth: -
#查看文件或者目录、文件的文件类型
[root@linux2019 tmp]# file 1.txt
1.txt: ASCII text
[root@linux2019 tmp]# file /tmp/
/tmp/: sticky directory
#创建软链接
[root@linux2019 tmp]# ll *.txt
-rwxrwxrwx 2 user1 user12 20 Jan 18 11:52 1.txt
-rw-rw-rw- 1 user2 user12 30 Jan 18 11:48 2.txt
-rwxrwxrwx 2 user1 user12 20 Jan 18 11:52 3.txt
[root@linux2019 tmp]# cat 2.txt
selinux is too hard to learn!
[root@linux2019 tmp]# ln -s /tmp/2.txt 4.txt
[root@linux2019 tmp]# ll *.txt
-rwxrwxrwx 2 user1 user12 20 Jan 18 11:52 1.txt
-rw-rw-rw- 1 user2 user12 30 Jan 18 11:48 2.txt
-rwxrwxrwx 2 user1 user12 20 Jan 18 11:52 3.txt
lrwxrwxrwx 1 root root 10 Jan 18 11:59 4.txt -> /tmp/2.txt
[root@linux2019 tmp]# cat 2.txt 4.txt
selinux is too hard to learn!
selinux is too hard to learn!
##源文件要用绝对路径,防止该软链接文件路径变化时,找不到目标文件
软链接的应用(实际运用过程中,软链接比硬链接更常用到)
- 在多个地方创建软链接,方便对同一个文件的访问
- 磁盘扩容:将旧盘的目标文件mv到新盘,然后对新盘的文件做软链接到旧盘目标文件即可,之后文件的更新是在新盘中,同时旧盘的路径文件也可以访问到。
yum工具
yum是安装软件的一个工具,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
基本用法:
- yum install -y net-toos #安装
- yum remove -y net-toos #移除
- yum list #查看当前配置源所有的包,最右侧是仓库的名字,如果是@开头说明这个包已经安装过
- yum grouplist #列出支持安装的套件
- yum groupinstall -y #安装套件
- yum provides /*/wget #用yum找一个命令是由哪个包安装来的
- yum update #更新(升级所有包同时也升级软件和系统内核)
- yum check-update #检查可更新的安装包
- yum upgrade #(只升级所有包,不升级软件和系统内核)
- yum info net-tools #显示安装包信息
- yum clean #清除缓存
- yum makecache #将服务器上的软件包信息缓存到本地,以提高搜索安装软件的速度
- yum localinstall #用本地安装包以yum方式安装,解决依赖的关系
rpm工具(本地安装rpm文件包)
- 将镜像挂载到本地作为包源
- yumdownloader下载rpm到本地手动安装(需要yum-utils包支持)
基本用法:
rpm -ivh package
- i #install
- v #可视化安装过程
- h #显示安装进度
- e #卸载
- qa #查询所有已安装的包,配合管道符实现查询筛选
- ql #列出程序包安装了那些文件
- qf #反向查询,查询某个文件是由哪个包安装的,配合which命令实现
[root@linux2019 ~]# which wget
/usr/bin/wget
[root@linux2019 ~]# rpm -qf /usr/bin/wget
wget-1.14-18.el7.x86_64
[root@linux2019 /]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #-o 指定保存文件名