Linux基础2

不进入系统修改密码

1读秒的时候按e进入grub

2在grub菜单选项按e进入编辑模式

3编辑kernel那行(第二行)

4输入 空格 1 然后按enter

5按b重新启动

6passwd root(如果不写root默认为该root用户的密码)

7输入密码,确认密码,reboot重启

一文件和目录的操作

1文件和目录的创建、复制、移动、重命名

目录的创建

[email protected] /]# mkdir -p /a/b/c/d  -p表示递归创建,父目录没有的情况下,会帮我们把父目录创建出来

[[email protected] /]# rm -rf  /a/b/c/d  仅删除d文件夹

[[email protected] /]# rm -rf /a  删除a目录及其中所有的东西

[[email protected]_0_15_centos ~]# mkdir /haha  #只能创建一级目录
[[email protected]_0_15_centos ~]# mkdir fff  #在当前目录创建fff这个目录(当前为家目录)

 

[[email protected]_0_15_centos /]# mkdir -p /home/1/2/3/4  /data/1
同时创建多个目录

文件的创建

格式:touch + 文件名 (不指定路径,默认在当前路径下创建)

[[email protected]_0_15_centos ~]# touch 1.txt
[[email protected]_0_15_centos ~]# touch /home/a.txt /b.txt /root/c.txt 分别在home目录下 根目录下 root目录下 创建txt文件
注:home为普通用户的家目录


echo 打印到屏幕

[[email protected]_0_15_centos /]# echo print  
print

 

echo打印到文件中 >表示覆盖(先清空内容再写入)

[[email protected]_0_15_centos ~]# echo hello > ./1.txt      
[[email protected]_0_15_centos ~]# cat 1.txt
hello

echo打印到文件中 >>表示追加 (追加写入内容)
[[email protected]_0_15_centos ~]# echo world >> 1.txt
[[email protected]_0_15_centos ~]# cat 1.txt
hello
world


[[email protected]_0_15_centos ~]# echo haha > 1.txt
[[email protected]_0_15_centos ~]# cat 1.txt
haha   #覆盖

[[email protected]_0_15_centos ~]# echo "123" | passwd --stdin root  #把root用户的密码改为123(不通过交互信息直接修改root用户密码)

【stdin=standard input即标准输入】

[[email protected]_0_15_centos ~]# echo "123" | passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.

将前面语句显示的内容写到后面那个文件(不存在则新建)中

[[email protected]_0_15_centos ~]# ls -l /home
[[email protected]_0_15_centos ~]# ls -l /home > ./1.log
[[email protected]_0_15_centos ~]# cat 1.log
total 8
drwxr-xr-x 3 root   root   4096 Sep  4 09:37 1
-rw-r--r-- 1 root   root      0 Sep  4 09:34 a.txt
drwx------ 3 centos centos 4096 May  9 15:02 centos

[[email protected]_0_15_centos ~]# cat /etc/profile >> ./1.log   #将/etc目录下的profile文件中的内容追加到1.log中

[[email protected]_0_15_centos test]# cat >> 1.log <2.log  把2.log中的内容追加到1.log中
 

<:输出重定向(相当于导入)

[[email protected]_0_15_centos ~]# cat > 2.log <1.log 相当于把1.log文件中的内容导入到2.log(没有创建新的)中

上句相当于[[email protected]_0_15_centos test]# cat 1.log > 3.log   【说明>起到一个变换方向的作用,把文件名移到了后面写】
 


<<EOF:输入结束(以EOF结束EOF=end of file EOF是自定义的,所以也可以换成其他的字符串,但是一般不换)

[[email protected]_0_15_centos ~]# cat >3.log <<EOF
> asas
> dfdf
> qwqwq
> EOF  #输出EOF后停止输出【EOF这个字符串没有被放到文件中】

注:EOF区分大小写

[[email protected]_0_15_centos ~]# cat > 4.log
dfdfd
sdfdsf
sdfsdf
xcv  #按ctrl+d结束输入,并保存,其实EOF和ctrl+d的作用相同  [注:ctrl+d表示结束当前输入]

[[email protected]_0_15_centos ~]# cat 4.log
dfdfd
sdfdsf
sdfsdf
xcv

[[email protected] home]# echo -e "hello \n world" >1.txt
[[email protected] home]# echo -e "aa\nbb\ncc\ndd" >2.txt
[[email protected] home]# cat 1.txt
hello
 world
[[email protected] home]# cat 2.txt
aa
bb
cc
dd
[[email protected] home]# cat 1.txt 2.txt   【cat 可以同时查看多个文件】
hello
 world
aa
bb
cc
dd
[[email protected] home]# cat 2.txt 1.txt
aa
bb
cc
dd
hello
 world

 

[[email protected]_0_15_centos ~]# cat 3.log 4.log >>5.log   #将3.log 4.log中的内容追加到5.log中
[[email protected]_0_15_centos ~]# cat 5.log
asas
dfdf
qwqwq
dfdfd
sdfdsf
sdfsdf
xcv

复制文件和目录

1复制单个文件:

格式:cp /a/b/c/d.txt(不写路径代表当前目录下)  新的路径

[[email protected]_0_15_centos ~]# cp /etc/profile /home


2复制多个文件

[[email protected]_0_15_centos ~]# cp 1.log 2.log /home
[[email protected]_0_15_centos ~]# cd /home

 

3复制文件并且重命名

格式:cp 文件名 新的文件名

[[email protected]_0_15_centos home]# cp /etc/profile ./profile.bak
 

cp -r 目录名  新路径  【注:r=recursive递归】

[[email protected]_0_15_centos home]# cp -r  /bin ./bin.bak     复制/bin目录到 bin.bak目录下

注:加.bak相当于失效文件

 

4移动文件或目录并可以改名(相当于剪切)

[[email protected]_0_15_centos home]# ll
-rw-r--r-- 1 root   root    1939 Sep  4 10:01 1.log
[[email protected]_0_15_centos home]# mv 1.log 1.log.xxx   【相当于改名】
[[email protected]_0_15_centos home]# ll
-rw-r--r-- 1 root   root    1939 Sep  4 10:01 1.log.xxx

[[email protected]_0_15_centos test]# ll
total 36
-rw-r--r-- 1 root root    8 Sep 27 21:52 1tmp.log
-rw-r--r-- 1 root root   14 Sep 28 16:07 1.txt.tmp
-rw-r--r-- 1 root root   16 Sep 28 15:58 2.log
-rw-r--r-- 1 root root   12 Sep 28 16:10 2.txt
-rw-r--r-- 1 root root   32 Sep 28 16:00 3.log
-rw-r--r-- 1 root root   52 Sep 28 16:11 3.txt
-rw-r--r-- 1 root root   17 Sep 28 16:01 4.log
drwxr-xr-x 3 root root 4096 Sep 28 16:13 a
drwxr-xr-x 2 root root 4096 Sep 28 16:21 x
[[email protected]_0_15_centos test]# mv ./a ./b
[[email protected]_0_15_centos test]# ll
total 36
-rw-r--r-- 1 root root    8 Sep 27 21:52 1tmp.log
-rw-r--r-- 1 root root   14 Sep 28 16:07 1.txt.tmp
-rw-r--r-- 1 root root   16 Sep 28 15:58 2.log
-rw-r--r-- 1 root root   12 Sep 28 16:10 2.txt
-rw-r--r-- 1 root root   32 Sep 28 16:00 3.log
-rw-r--r-- 1 root root   52 Sep 28 16:11 3.txt
-rw-r--r-- 1 root root   17 Sep 28 16:01 4.log
drwxr-xr-x 3 root root 4096 Sep 28 16:13 b
drwxr-xr-x 2 root root 4096 Sep 28 16:21 x

 

6删除文件或目录

rm -rf 【r=recursive递归 f=force强迫】
[[email protected]_0_15_centos home]# rm 1.log.xxx
rm: remove regular file ‘1.log.xxx’? y【交互式删除文件】

rm -f 只能删除文件,避免交互式

rm -rf可以删除目录

7文件的批量改名

rename

rename 要修改的字符串 修改后的字符串  被操作的文件

[[email protected]_0_15_centos bin.bak]# cd /etc/yum.repos.d/ 【yum源的配置文件所在文件夹】
[[email protected]_0_15_centos yum.repos.d]# ll
total 8
-rw-r--r-- 1 root root 614 Jul 30 08:20 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Jul 30 08:20 CentOS-Epel.repo
[[email protected]_0_15_centos yum.repos.d]# rename .repo .repo.bak ./* 【把当前路径下,所有以.repo为后缀的文件的后缀改为.repo.bak】
[[email protected]_0_15_centos yum.repos.d]# ll
total 8
-rw-r--r-- 1 root root 614 Jul 30 08:20 CentOS-Base.repo.bak
-rw-r--r-- 1 root root 230 Jul 30 08:20 CentOS-Epel.repo.bak
[[email protected]_0_15_centos yum.repos.d]# rename .bak "" ./*  【把.bak后缀改为空,即去掉.bak后缀】
[[email protected]_0_15_centos yum.repos.d]# ll
total 8
-rw-r--r-- 1 root root 614 Jul 30 08:20 CentOS-Base.repo
-rw-r--r-- 1 root root 230 Jul 30 08:20 CentOS-Epel.repo

 

8vi或vim【用法差不多】,不指定目录就是操作当前路径下的文件

一般模式:

dd:删除光标所在行

ndd:从光标所在行开始,删除n行【注n为数字】

dG:从光标所在行删除到文件末尾

x:删除光标所在位置字符

nx:从光标所在处开始删除n个字符【n为数字】

D:从光标所在处删除到该行末尾

r:替换光标所在处的字符

R:从光标所在处替换,按esc键结束

u:取消上一步操作

ctrl+r:返回到取消前

yy:复制一行

nyy:复制n行【n表示数字】

p粘贴

gg定位到第一行的行首

GG定位到定位到最后一行的行首

编辑模式

进入编辑模式:【a i o】

i(i=insert)在光标所在处的前一个位置开始插入

I(i=insert)在光标所在行的行首开始插入

a 光标所在处的后一个位置开始输入

A 光标所在行的行尾开始输入

o:光标所在行的下一行开始输入

O光标所在行的上一行开始输入

底行模式:
:n定位到第n行 例:5 定位到第5行

:set nu设置为显示行号

:set nonu 设置为不显示行号

:11 定位到11行

:pwd 显示当前工作目录

:cd 查看路径

:w 保存【相当于ctrl+s,知识后如果想退出可以用:q】

:q退出 【当已经对文件进行修改了,这样退不出去】

:wq保存退出

:q!强制退出【再vim查看,文件和之前一样】

:wq!强制保存退出

查找

/bin 查找文件中出现的bin(从光标所在处开始往后查找),并定位到第一个找到的位置,继续往下查找按n,往上查找按N

替换

:s/sbin/gp1812 查找光标所在行的第一个sbin,并替换为gp1812

:s/sbin/gp1812/g 查找光标所在行的\所有的sbin,并替换为gp1812

:%s/sbin/gp1812/g 查找文件中所有的sbin,并替换为gp1812

:5,$s/gp1812/gp-1812/g 从第5行开始把所有的gp1812改为 gp-1812

:1,4s/gp1812/gp-1812/g 把[1,4]行所有的gp1812改为 gp-1812

块模式

按v进入字符选择模式

shift+v进入行选择模式

ctrl+v进入块选择模式

y复制

p粘贴

 

退出某个模式:esc,进入一般模式

 

文件的查看

cat一次性将文件中的所有内容打印到控制台

head 文件名 ,查看文件内容,默认取前10行

head -n  文件名【n是数字-n表示前几行】

tail 文件名 【默认取文件后10行】

tail -n 取文件后n行【n为数字】

 

more 文件名 ,适合内容较多的文件的查看,可以一页一页的显示

空格下一页

b上一页

回车一行一行查看

q退出

 

less 文件名 ,适合内容较多的文件的查看,可以一页一页的显示

空格下一页

b上一页

回车一行一行查看

q退出

但是less支持搜索 (用/ )

 

flume:日志采集工具

分析日志:

tail  -f  监控文件(监控的是文件inode,每个node都有一个编号

一旦文件改名或移动【必须就是原来那个】,tail -f将失去对这个文件的监控

阻断日志的写入,把文件拷贝,将原文件清空

 

tail -F (使用的更多)监控的是文件名 文件不存在也可以监控

把文件移动走,阻断日志写入的流(暂停),创建一个新的文件和原来文件名字相同【只要名字相同路径相同即可】,继续监控该文件

磁盘上文件存储最小的单位是扇区:512字节

 

操作系统在读磁盘时的最小单位:块(block),一个块8个扇区,大概4k

注:磁盘可以粗略的理解为硬盘

系统存储文件的数据分为两种:元数据(数据存储的索引)和数据块

同样,磁盘存储也在系统格式化的时候被分为两部分。分别存储元数据和数据块。

读一个文件要读哪些块是根据元数据知道的,元数据存在inode里(inode集合称为元数据,这句话的意思是元数据被塞进多个inode里)

元数据里面有:时间,用户,组,权限,块的信息.....

stat指令:文件/文件系统的详细信息显示。

格式:stat 文件名 来查看它的元数据信息

inode的大小:inode也会消耗磁盘空间,磁盘格式化的时候,会自动分成两个区域,数据区(即数据块)存放数据文件,

另一个就是inode区(元数据)(inode table),存放inode包含的信息。

每个inode节点的大小一般是128字节或者是256字节。

inode的节点总数,在格式化的时候就给定,一般是1kb或者2kb就设置一个inode。

1G磁盘每个inode节点大小128字节,给1kb分配一个inode

那么inode table大小会是多少?128M,占整块磁盘的12.8%

会出现的问题:磁盘空间未满,但不能创建文件

原因是:inode区已经占满

每个文件对应一个inode ,当IUse%(inode使用率)达到百分之百,无法创建文件

https://www.cnblogs.com/xiexj/p/7214502.html

HDFS(hadoop distributed分布式的 file system)分布式文件系统:存储大文件,高吞吐量

(注磁盘的吞吐量,也就是每秒磁盘 I/O 的流量,即磁盘写入加上读出的数据的大小。)

元数据:在内存中   一个块的元数据占150字节

#df -i  查看磁盘分区的inode使用情况

[[email protected]_0_15_centos /]# df -ih    (-h用更好懂的方式显示文件大小)
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/vda1        3.2M   54K  3.1M    2% /
devtmpfs         228K   320  228K    1% /dev
tmpfs            230K     7  230K    1% /dev/shm
tmpfs            230K   393  230K    1% /run
tmpfs            230K    16  230K    1% /sys/fs/cgroup
tmpfs            230K     1  230K    1% /run/user/0

 

ls -i 文件名 查看文件的inode号

 

五。文件的查找

1which【从环境变量中查找,一般用来查找命令所在位置】

#which cat  查找cat所在的位置

2whereis 【该指令会在特定目录中查找符合条件的文件,这些文件属于原始代码,二进制文件等,

一般用于查找软件的安装位置】

# whereis sshd

3find【和windows中的搜索是一样的】:查找速度很慢,需要指定查找的路径(也就是说在哪个路径下去查找匹配的文件或目录)参数前的路径可以有多个,表示可以从多个路径下查找

find 路径 参数

不写路径时为当前路径

#find  -name "*.txt"
#find -name "4.log"指定全部文件名
#find  /root  /home  -name "*.txt"   【-name表示以名字的形式查找,找到/root和/home目录下所有以.txt为后缀的文件】

#find  /root  /home  -name "*.txt"  -ok -exec rm {} \; 【查找并删除】【-exec表示避免交互式输入y】无法执行

4locate 【查找文件所在,查找的是Linux文件的数据库(也就是在Linux的所有文件中查找指定文件),效率高,但有弊端,数据库不是实时更新的】

#echo hello world >> cls.txt

#locate 1.txt 【没有查询到刚刚创建的】(注:locate:位于 查找)

#updatedb 【更新数据库】

#locate 1.txt【找到了】

5history:显示历史命令

 

六文件的压缩和打包:

1gzip:用来压缩文件,以.gz为扩展名。可以压缩比较大的文件,节省磁盘空间,可以与tar命令结合使用,

构成linux中比较流行的压缩格式。

特点:

1压缩不保留原文件

2不能压缩目录

3解压缩命令gunzip(记忆:gzip的首字母后面加un)

4可以同时压缩多个文件

5可以同时解压缩多个文件(分别压缩)

[[email protected]_0_15_centos zipTest]# echo "123456" > 1.txt
[[email protected]_0_15_centos zipTest]# echo "123456" > 2.txt
[[email protected]_0_15_centos zipTest]# echo "123456" > 3.txt
[[email protected]_0_15_centos zipTest]# gzip 1.txt 2.txt 3.txt
[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 33 Sep 29 20:22 1.txt.gz
-rw-r--r-- 1 root root 33 Sep 29 20:22 2.txt.gz
-rw-r--r-- 1 root root 33 Sep 29 20:22 3.txt.gz

[[email protected]_0_15_centos zipTest]# gunzip 1.txt.gz 2.txt.gz 3.txt.gz
[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 7 Sep 29 20:22 1.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 2.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 3.txt

 

 

2bzip2 扩展名.bz2

特点【基本和gzip相同】

1压缩式不保留原文件

2不能压缩目录

3解压缩命令bunzip2 

 #bunzi2 ./*解压当前目录下的所有文件

4可以同时压缩多个文件

5可以同时解压缩多个文件

[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 33 Sep 29 20:22 1.txt.gz
-rw-r--r-- 1 root root 33 Sep 29 20:22 2.txt.gz
-rw-r--r-- 1 root root 33 Sep 29 20:22 3.txt.gz
[[email protected]_0_15_centos zipTest]# gunzip 1.txt.gz 2.txt.gz 3.txt.gz
[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 7 Sep 29 20:22 1.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 2.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 3.txt
[[email protected]_0_15_centos zipTest]# bzip2 1.txt 2.txt 3.txt
[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 44 Sep 29 20:22 1.txt.bz2
-rw-r--r-- 1 root root 44 Sep 29 20:22 2.txt.bz2
-rw-r--r-- 1 root root 44 Sep 29 20:22 3.txt.bz2
[[email protected]_0_15_centos zipTest]# bunzip2 1.txt.bz2 2.txt.bz2 3.txt.bz2
[[email protected]_0_15_centos zipTest]# ll
total 12
-rw-r--r-- 1 root root 7 Sep 29 20:22 1.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 2.txt
-rw-r--r-- 1 root root 7 Sep 29 20:22 3.txt

 

 

3 tar 打包

可以将多个文件或目录打包到一起,压缩成为一个文件(好删除,节省递归删除目录的时间)

注:打包会保留原文件

#tar -cvf test.tar 1.txt 2.txt  【将1.txt 2.txt打包成为一个文件。名字为test.tar】

#tar -xvf test.tar 【解包】

#tar -zcvf test.tar.gz 1.txt 2.txt  (同样会保留原文件)

#tar -zxvf test.tar.gz -C /home/hadoop/ 【解压缩到该路径下】(解压也会保留原.tar.gz包)

#tar -jcvf ha.tar.bz2 222.log aaaaaaa/  cls.avi  【-j 支持bzip2解压文件 】打包并压缩以bzip2的格式

c 打包

x 解包

v 显示信息

f 指定文件【必须有】

C 重定向【即指定路径】

z 指zip,以这种形式压缩或解压 经常看到*.tar.gz以gz进行压缩的以tar进行打包的

系统执行顺序:先打包(成为一个)后压缩,因为不能压缩目录

 

七用户与组的操作

useradd

-u指定uid

-g指定基本组 

-G指定附加组

#useradd user 【添加一个用户,名字为user】

[[email protected] ~]# ll /home
total 12
drwx------. 4 hadoop hadoop 4096 Sep  3 18:52 hadoop
drwx------. 4 kyle   kyle   4096 Sep  3 20:44 kyle
drwx------. 4 user   user   4096 Sep  4 03:32 user

#tail /etc/passwd【取出后10行】

普通用户id【500,)

root用户id为0

【1,499】系统用户使用

#cat /etc/group 查看组

#useradd user2

#tail /etc/group

所有用户必须放在组内,若创建用户时不指定组,系统会默认创建与用户名同名的组,把该用户放到这个同名组中

用户id与组id是由系统分配的

#useradd -u 666 -g 502 -G 501 user3

/etc/passwd 的内容理解:
  在/etc/passwd 中,每一行都表示
的是一个用户的信息;一行有7个段位;每个段位用:号分割,例如:


   beinan:x:500:500:beinan sun:/home/beinan:/bin/bash
   linuxsir:x:501:502::/home/linuxsir:/bin/bash


  第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 beinan 和linuxsir;
  第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
  第三字段:
UID ;请参看本文的UID的解说;
  第四字段:
GID;请参看本文的GID的解说;
  第五字段:用户名全称,这是可选的,可以不设置,在beinan这个用户中,用户的全称是beinan sun ;而linuxsir 这个用户是没有设置全称;
  第六字段:用户的家目录所在位置;beinan 这个用户是/home/beinan ,而linuxsir 这个用户是/home/linuxsir ;
  第七字段:用户所用SHELL 的类型,beinan和linuxsir 都用的是 bash ;所以设置为/bin/bash ;

2)关于UID 的理解:
  UID 是用户的ID 值,在系统中每个用户的UID的值是唯一的,更确切的说每个用户都要对应一个唯一的UID
,系统管理员应该确保这一规则。系统用户的UID的值从0开始,是一个正整数,至于最大值可以在/etc/login.defs
可以查到,一般Linux发行版约定为60000;
  UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名,切记; 在Linux 中,root的UID是0,拥有系统最高权限;比如我在/etc/passwd 中把beinan的UID改为0后,你设想会发生什么呢?beinan这个用户会被确认为root用户。beinan这个帐号可以进行所有root的操作;
  
  一般情况下,每个Linux的发行版都会预留一定的UID和GID给系统虚拟用户占用,虚拟用户一般是系统安装时就有的,是为了完成系统任务所必须的用户,但虚拟用户是不能登录系统的,比如ftp、nobody、adm、rpm、bin、shutdown等;预留数量以各个系统中/etc/login.defs
中的 UID_MIN 的最小值为准;比如Fedora 系统 login.defs的UID_MIN是500,而UID_MAX
值为60000,也就是说我们通过adduser默认添加的用户的UID的值是500到60000之间;

 

#cat /etc/group 可以看到附加组

#passwd user3 【设置该用户的密码】

#cat /etc/shadow 

【/etc/group存储?】

【/etc/shadow存储?】

https://www.cnblogs.com/xuha0/p/5519232.html

 

2修改用户usermod

#usernod --help 【查看使用方式】

-g修改基本组的信息

# usermod -g 502 user 【将基本组改为502】(注:mod=modify修改)

#tail /etc/passwd【查看】

-u设置用户的id

#usermod -g 500 -u 999 user 【修改user用户的基本组和uid】

 

3删除用户

userdel -r用户名 【-r表示删除用户的同时,删除用户的家目录】

 

组的操作

#groupadd 组名 【添加组】

#gpasswd +组名 设置组的密码

#cat /etc/group【查看】

#groupdel 组名【删除组】

#groupmod 组名【修改组】

 

八文件的权限(读、写、执行)

-|rw-|---|---. 1 root root 1771 4月28 2015 anaconda-ks.cfg
①② ③  ④      ⑤    ⑥    ⑦      ⑧              ⑨
①:文件类型
    -    文件    
    d    目录
    l    链接
②:所有者(root)权限(u)
    r    读     4
    w    写     2
    x    执行    1
③:所属组权限(g)
    r    读    4
    w    写    2
    x    执行    1
④:其他用户(非2,3)权限(o)
    r    读    4
    w    写    2
    x    执行    1
⑤:所有者【归哪个用户拥有】
⑥:所属组
⑦:文件大小
⑧:最后修改时间
⑨:文件名

修改权限:

#chmod o+rw 文件名【为其他用户添加读写的权限】
#chmod o-w 文件名【其他用户取消写的权限】

/anaconda-ks.cfg
#chomd ugo+rwx 【由root用户修改】

chmod -R 【递归修改权限】

#chmod -R o+w ./aa把aa目录和该目录下的所有东西都对其他用户加一个写的权限

#chmod -R 000 ./aa  【注:root用户不受权限限制】

#chmod -R 333 ./aa

#chmod user2[修改拥有的用户]:user2[修改拥有组] 1.log

#chmod -R[递归] user2[修改用有的用户]:root[修改拥有组] ./aa[aa是一个目录]

 

链接

1硬链接【相当于复制文件】:只能是文件到文件或者是文件到目录【把一个文件复制到一个目录下】???

# ln 1.log 3.log【他们中一个内容改变另一个也改变】

Linux基础2

2符号链接

可以是文件也可以是目录(写绝对路径)

ln -s  

Linux基础2

注:

ln -s

ln -s /data/aaa /home/lns 符号链接:相当于将/data/aaa拷贝到/home/lns目录下

但是只是建立了一个链接,不是真的拷贝文件的内容。