2019-01-23笔记—往期涉及命令整理

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

七种文件类型

  1. 普通文件类型
第一个属性为 [-],包括纯文本文件,二进制文件和数据格式的文件。纯文本文件,其内容可以直接读取,如数字字母等,比如配置文件几乎都是这种文件;二进制文件,Linux中的可执行文件,比如命令文件;数据格式文件,比较少见,是一种具有特定格式的文件。
  1. 目录文件
第一个属性为 [d],就是目录, 能用 cd 命令进入的。
  1. 块设备文件
第一个属性为 [b],块设备是存储数据的接口设备,供系统及程序访问,如磁盘,光驱等都是块设备,
  1. 字符设备
第一个属性为 [c],即串行端口的接口设备,例如键盘、鼠标等。
  1. 套接字文件
第一个属性为 [s],这类文件通常用在网络数据连接。是Unix/Linux系统里面用来通信的,进程间通信的文件。最常在/var/run目录中看到这种文件类型
  1. 管道文件
第一个属性为 [p],FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。
  1. 链接文件
第一个属性为 [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-
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文件包)

  1. 将镜像挂载到本地作为包源
  2. 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 指定保存文件名

你可能感兴趣的:(linux学习笔记)