28/07/2018 笔记

28/07/2018 课堂笔记

1. 系统目录结构

不需要十分了解,只需要了解常用的目录/bin/、/sbin/、/home/、/etc/、/usr/、/tmp/、/proc/、/var/

2. # which, 用来查看路径的别名和绝对路径在哪里,在PATH包含的目录下面找

# alias 别名,如果命令较长不好写,可以做一个别名,节省时间

3. # ls -l 列出详细信息

%MCEPASTEBIN%


  • 第一列表示文件属性
  • 第二列表示权限
  • 第三列表示有相同inode的文件数量,inode为唯一但文件名可以多个,# ls -i 查看inode

# ls -h 显示文件大小

# ls -a 显示隐藏文件

# ls -d 显示目录本身

# ls -t 查看文件时间,最新在最开始一次排列

4. PATH

若干个目录的集合,一系列命令的路径。

# echo $PATH, 来查看环境变量下的目录

直接敲命令的以下方法,以/root/123/abc为例

  • 可以做别名 # alias abc="/root/123/abc"
  • 可以做软链接, # ln /root/123/abc /bin/abc
  • 也可以把/root/123/abc加到环境变量中去

若想增加或删除环境变量,可以重新定义PATH- # PATH=$PATH: directory_name;若想永久保存改变的环境变量可以编辑# vi /etc/profile

5. 文件类型

http://www.apelearn.com/study_v2/linux_dir_tree.jpg,每个目录的作用描述

6. 绝对路径,相对路径

绝对路径-从根开始的路径,可以指定到文件或目录,具有唯一性

相对路径-相对于当前目录而言的路径

举例来讲,如果想要修改网卡配置文件,如果用绝对路径就是# vi /etc/sysconfig/network-scripts/ifcfg-ens33, 但是想要使用相对路径,就可以使用# cd 命令进入到/etc/目录下,然后执行# vi sysconfig/network-scripts/ifcfg-ens33

7. # cd 命令,改变目录

  • # cd, 进入用户的家目录,root的家目录为/, 普通用户的家目录为/home/user/
  • # cd . 进入到当前目录下
  • # cd .. 进入到上一级目录下
  • # cd ~ 进入用户的家目录
  • # cd - 进入到上次进入的目录

8. # history, 用来查看敲过得命令历史

# !command,用来执行最后一次command开头的命令

9. # mkdir & rmdir

# mkdir -p,级联地创建目录

# rmdir, 只能删除空目录

10. # touch, 用来创建空文件

11. # rm ,用来删除文件,# rm -r 用来删除目录及文件(注意是否删除了不该删除的文件或者目录)

12.# cp (copy), 复制时可以改名字

# cp -r,复制目录


13. # mv, 可以移动目录和文件

14. 文档查看命令

  • #cat, 查看内容较少的文档
  • # more & # less, 查看较多内容的文档,他们之间的区别,在more之下查看结束时会自动退出,而less不会,需用q来退出
  • # head & # tail, 查看头十行和后十行

15. # chmod

改变权限

16. # chown

17. # umask

决定目录文件默认的权限

18. chatter & lsatter

"i"& "a"比较常用, “a”允许追加,“i”为非常严格的权限,不允许任何更改

19. # facl - filesystem access control list

主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问;利用文件扩展属性保存额外的访问控制权限,你可以增加权限给其他用户或组别,而不单只是简单 的"other"或者是拥有者不存在的组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。可以指定用户的权限

1) 首先安装ACL, # yum install acl

2) # getfacl

3) # setfacl

  •  -m:设置后续参数, 可以写成 # setfacl -m u:emma1:r/w/x /tmp/3.txt,把用户emma1的权限设为读写

  • -x:删除
  • -b:删除全部设置的ACL参数
  • -k:删除默认的ACL参数
  • -R:可以集联修改目录及文件的ACL的参数
  • -d:设置默认acl

预习笔记

1. # chattr 隐藏权限

1) # chattr +i, 文件或目录就不可以做任何更改包括添加内容 (# vi file name),更改时间,删除, 重命名,创建覆盖等等;同时“# chattr -i”消除i权限

2)#chattr +a, 只允许追加 (用“# >>”命令),不允许其他任何操作包括文件或目录内容更改,重命名,删除

注:加给目录加i权限后也不肯对目录下子文件或子目录的更改,也不可删除,重命名移动或新建文件;但目录a权限允许在目录下新建文件但不可删除移动文件

3)用“# lsattr file name/directory name”可以用来查看是否有加隐藏权限(-i/-a);但用lsattr 查看目录时,其实是查看目录下面的子目录及文件,如想查看目录本身则可以加-d,变成# lsattr -d directory name

  • # lsattr -R,可用来列出目录下所有的子目录以及子文件
  • # lsattr -a 隐藏文件

-R 追加的是目录及目录下的子目录子文件

2. # set_uid

1)当我们查看usr/bin/passwd文件的权限时, 可以发现如下

-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd

蓝色的S就为set_uid的权限,是指如果普通用户或所属组用户使用带有set_uid的命令,可以暂时拥有该命令所有者的权限,但前提是该文件为可执行的二进制文件(除文本文件)例如改密码,密码的文件在/etc/shadow/, 用ls -l查看文件时可以发现权限为000,非所有者的用户不可操作,但是用了set_uid权限之后,在普通用户修改密码时,就可以暂时的拥有root的权限。

2)设置set_uid使用# chmod u(user)+s filename即可; 也可以# chmod u=rwsx file name, 如果不加x权限,再查看文件权限时s就会变成S, 但其实不影响普通用户操作。

撤掉set_uid权限是则使用# chmod u-s file name

可以给目录设置set_uid权限,但意义不大

3. #set_gid

1)这个命令跟set_uid的功能相近,只是作用在所属组用户上,是所属组用户可以暂时拥有该命令所有者的权限(文件&目录)

# chmod g+s file name

当作用在文件时跟set_uid的用法近似

当作用的目录上时,创建子目录和子文件的所属组和该目录的所属组保持一致

4.stick_bit

以/tmp/为例,当我们查看tmp目录的详细信息是发现如下details

drwxrwxrwt. 17 root root 4096 7月 18 14:31 /tmp/

此时的“t”就是stick_bit权限,说明任何用户对此文件进行修改,但是不可删除,也叫防删除位,除root用户,其他用户无法删除

注:当普通用户要删除文件时,文件所在的目录的权限决定了文件是否可以删除

5. 软连接

类似windows的快捷方式, /lib64/

# ln -s  original file_name  target file_name for soft link, 来创建软链接文件,也适用于目录

注:做软链接尽量使用绝对路径

注:软链接的巧用,当文件空间不够时可以使用,先把原文件log1 copy到空间丰富的文件log 2中,删除原来文件,在用原文件的路径对文件1进行软链接 # ln -s log2 log1

6. 硬链接文件

只支持对文件做硬链接,不能跨分区,但可删除,硬链接文件和原文件share一个inode, 并且真正的文件内容存在inode上,硬链接文件可以用来做备份且不占空间:

1 删除一个,还有一个,相对来说安全,但靠硬链接备份文件,不合适。

2 硬链接本质上还是一个文件,所以你建立多个硬链接文件,空间占用还是一份。所以说,它可以节省空间。

命令为 #ln original file name target file name

7. # find,搜索命令

1)其他的搜索命令如下:

  • # which, 从环境变量中寻找文件
  • # whereis, 搜索不全,是从预先设置的库中搜索,但是需要及时或定时update
  • # locate- 用“# yum install -y mlocate” ,db-文件列表数据库,要事先生成数据库-使用“# updatedb”

注:快捷键的使用

ctrl l -把光标定位在屏幕第一行

ctrl d-退出一个终端

ctrl c-撤销命令

ctrl u-删除前面内容

ctrl e-可以把光标移到命令最后

ctrl a-可以把光标移到命令最开始

2)# find的基本用法, “# find /directory_name/ -name "file-name"”, 如果用模糊搜索"file-name"位置写“*”,则可搜索出带关键字的全部目录和文件;如果要指定搜索目录或者文件,可以在命令“-name”的前面加“-type f(file)”、“-type d(directory)”, "-type"之后可以加任何文件类型 如“l/c/s/b文件”

3)# find ,常用的“-type/mtime/name/o

# stat file_name 可以看出文件的具体信息,如下

文件:"666.txt"
大小:210 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:33575311 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2018-07-18 16:03:00.190164160 +0800 (atime)
最近更改:2018-07-18 16:02:52.334129636 +0800 (mtime)

针对于对文件内容的编辑改动,更改时间改变,ctime也会改变
最近改动:2018-07-18 16:06:21.073046944 +0800(ctime)

改动文件名,文件权限,大小,所属组等
创建时间:-(mtime)

注:# echo 加字符串 >> file_name,表明把字符串追加到了文件中

# find /directory_name/ -type f/d -a/c/mtime +-时间range(例如+1-一天之前;-1 - 一天之内)用这个命令就可以搜索出在某个目录下在一定时间范围内的被访问、更改、改动或创建的目录或文件,限定条件为并列关系;

 “-o”表示或者,限定条件不是并列关系,是选择的关系,搜素结果满足其中之一限定即可

4)“# find / -inum ” 可以用来用inode number 来搜索硬链接文件

5)# find /tmp/ -type f -mmin -120 -exec ls -l {} \;

  • “-mmin” 可以把时间缩小到分钟
  • “-exec ls -l {} \;” 可以显示出搜索出文件的具体信息

{}表示列举出来的文件

  • “-exec mv {}...{}changed name \;”给搜索出来的文件改名字

  • “- size +-10k/M”, # find /root/ -type f -size -10k -exec ls -lh {} \;

8. 文件名后缀

linux操作系统下的文件名后缀不如在Windows中严禁,并不是后缀是什么就可表示这个文件是什么文件类型并且可以自定义文件后缀

用# echo $LANG, 可以查看当前默认的系统语言,其实在一开始设置系统时,就已经设置的语言为UTF-8 (可以支持中文)

9. 在Xshell终端下实现linux与Windows的文件互传

1)输入# yum install -y lrzsz 进行安装软

2)linux的文件传到windows上,输入# sz file_name或文件路径,便可弹出一个浏览文件夹的对话框,选择想要保存的磁盘地址,确定之后就使得linux文件传到了Windows上

3)如果想要把Windows上得文件上传到linux上去时,输入# rz, 点击enter, 就出现了一个对话框显示Windows的文件,点击想要互传的文件,确定,就可以传到linux下得当前目录

猜你喜欢

转载自blog.csdn.net/EM_F_Z/article/details/81299024
今日推荐