天天看点

linux基础命令Ⅲ

1 特殊权限set_uid

<code>[root@chy ~]</code><code># ls -l /usr/bin/passwd 当s出现在文件所有者的x的权限上说明是set_uid</code>

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

<code>set_uid 是普通用户临时拥有所有者的身份(前提是这个文件是可执行的二进制文件)</code>

<code>[root@chy ~]</code><code># chmod u+s /usr/bin/ls (给ls赋予set_uid权限)</code>

<code>[root@chy ~]</code><code># chmod u=rws /usr/bin/ls (第二种赋予权限的方法)</code>

<code>[root@chy ~]</code><code># ls -l /usr/bin/ls</code>

<code>-rwSr-xr-x. 1 root root 117656 11月  6 2016 </code><code>/usr/bin/ls</code>

<code>[root@chy ~]</code><code># chmod u+x /usr/bin/ls</code>

<code>-rwsr-xr-x. 1 root root 117656 11月  6 2016 </code><code>/usr/bin/ls</code>

2 特殊权限set_gid 

该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

<code>当s在用户组x时称为set_gid</code>

<code>[root@chy ~]</code><code># chown :chy /lsm 更改这个lsm目录下的所属组,这样好区别。</code>

<code>[root@chy ~]</code><code># ls -ld /lsm 查看权限</code>

<code>drwxr-xr-x 2 root chy 4096 6月   9 06:49 </code><code>/lsm</code> <code>没有任何变化</code>

<code>[root@chy ~]</code><code># mkdir /lsm/1  (先创建一个文件便于后面区分)</code>

<code>[root@chy ~]</code><code># ls -ld /lsm/1</code>

<code>drwxr-xr-x 2 查看这个目录的权限 root root 4096 6月   9 06:50 </code><code>/lsm/1</code>

<code>[root@chy ~]</code><code># chmod g+s /lsm/ 给/lsm加上+s的权限</code>

<code>[root@chy ~]</code><code># ls -ld /lsm 发现所属组改变</code>

<code>drwxr-sr-x 3 root chy 4096 6月   9 06:50 </code><code>/lsm</code>

<code>[root@chy ~]</code><code># mkdir /lsm/234 重新创建一个后发现</code>

<code>[root@chy ~]</code><code># ls -ld /lsm/234 发现了区别 </code>

<code>drwxr-sr-x 2 root chy 4096 6月   9 06:51 </code><code>/lsm/234</code>

 3 特殊权限stick_bit

<code>[root@chy ~]</code><code># stick_bit =防删除位 </code>

<code>[root@chy ~]</code><code># ls -ld /tmp/</code>

<code>drwxrwxrwt. 18 root root 4096 6月   9 06:33 </code><code>/tmp/</code> 

<code>stick_bit防止其它用户删除文件(root除外)</code>

4 软连接文件

&gt;另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

<code>[root@chy ~]</code><code># ls -s 源文件 软链接文件 (目标文件)</code>

<code>[root@chy tmp]</code><code># ln -s /tmp/passwd 软链接目录 /root/111/passwd</code>

<code>[root@chy ~]</code><code># ls -l /root/111</code>

<code>总用量 0</code>

<code>lrwxrwxrwx 1 root root 11 6月   9 08:11 </code><code>passwd</code> <code>-&gt; </code><code>/tmp/passwd</code>

<code>软连接成功)</code>

<code>相对路径的软连接弊端:当把源文件移动位置,软连接将会失效</code>

5 硬链接

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

<code>[root@chy ~]</code><code># ln 1.txt 1_head.txt</code>

1.只能对文件做硬链接文件不能对目录做硬链接

2.硬链接是相互的为硬链接,不分原链接目标链接。硬链接是相同的inode

3.硬链接不能跨分区

6  find 命令综合

寻找文件的命令:which 

whereis  

locate(默认没有这个命令)

[root@chy ~]# yum install -y mlocate

 手动生成的命令updatedb

快捷键介绍

[root@chy ~]# ctrl+l 清屏

[root@chy ~]# ctrl+d 退出一个终端

[root@chy ~]# ctrl+c 不想要执行的命令

[root@chy ~]# ctrl+u 删除光标前的所有内容

[root@chy ~]# ctrl+e 后把光标移到最后

[root@chy ~]# ctrl+a 把光标移到最开始

<code>find</code><code>的小案例</code>

[root@chy ~]# find /etc/ -name "sshd_config" 寻找一个文件所在的路径

[root@chy ~]# find /etc/ -name "sshd*" 广布式搜索一个文件

[root@chy ~]# find /etc/ -type d -name "sshd*" (-type d 是搜索一个目录)

[root@chy ~]# find /etc/ -type f -name "sshd*" (-type f 搜索一般正规文件)

[root@chy ~]# find /etc/ -type l   (-type l 搜索连接文件)

[root@chy ~]# find /dev/ -type b  (-b与-c都是搜索设备文件)

[root@chy ~]# stat 2.txt (stat 查看文件的具体信息)

  文件:"2.txt"

  大小:0               块:0          IO 块:4096   普通空文件

设备:fd00h/64768d      Inode:146705      硬链接:1

权限:(0642/-rw-r---w-)  Uid:(    0/    root)   Gid:(    0/    root)

最近访问:2017-06-08 07:17:01.341855735 +0800

最近更改:2017-06-08 07:00:10.258873841 +0800

最近改动:2017-06-08 07:11:53.380861250 +0800

创建时间:-

mtime (最近更改) 

atime (最近访问)

ctime (最近改动)

访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。 

修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。 

变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

[root@chy ~]# echo "1111" &gt;&gt;2.txt 当追加一个文件后,ctime 与mtime时间都会改变)

[root@chy ~]# stat 2.txt

  大小:5               块:8          IO 块:4096   普通文件

最近更改:2017-06-10 16:31:02.055929915 +0800

最近改动:2017-06-10 16:31:02.055929915 +0800

[root@chy ~]# find / -type f -mtime -1 查找一天以内改动文件

[root@chy ~]# find /etc/ -type f -o -mtime -1 -o -name "*.conf" (-o是或者的意思 ,不加就是并且的意思)

[root@chy ~]# find / -inum 146706  查找硬链接)

/root/3.txt

/tmp/1.txt.bak

[root@chy ~]# find /root/ -type f -mmin -60

/root/2.txt (查找一个小时以内更改的文件)

[root@chy ~]# find /root/ -type f -mmin -60 -exec ls -l {} \;查找一个小时以内的更改的文件并列出是哪些文件改动的。

-rw-r---w- 1 root root 5 6月  10 16:31 /root/2.txt

[root@chy ~]# find /root/ -type f -size -10k -exec ls -lh {} \;

查找/root下小于10k的文件并列出

[root@chy ~]# find /root/ -type f -size -10M -exec ls -lh {} \;(查找10M以上的文件,其中-exec 是将对匹配的文件执行该参数给出的shell命令,-exec 等同于-ok,但是这两者之间还是有点区别的区别是exec直接进行处理,而ok是在处理之前提示信息,供用户选择是否进行进一步的操作)

7 文件名后缀

inux 下常见的文件后缀名

1:系统文件*.conf配置文件

.rpm rpm包

.a 一种存档文件

.lock 一种琐文件

.~ 备份文件

. 隐藏文件

2:程序或脚本.c c语言源程序文件

.cpp c++语言源程序

.h c或c++头文件

.o 程序对象文件

.pl perl语言源程序

. php php语言源程序

.tcl tcl脚本程序

.so/.lib 库文件

.sql sql语言文件

3:格式文件

.txt 无格式的ascii码文件

.html/.htm 静态web页

.ps postScipt文件

.au 一种声音文件

.wav 一种声音文件

.xpm一种图像文件

.png一种图形,图像文件

4:存档与压缩文件

.tar tar归档文件

.Z/.gz/.bz2压缩文件

.tar.gz/.tgz/.tar.bz2/.tbz为压缩后的tar包

8 linux+windows互传文件

linux与windows互传文件有一个很好用的工具就是rz/sz,如下介绍(说明这个工具适用用xshell)

<code>[root@chy ~]</code><code># yum install -y lrzsz (此工具须使用x-shell)</code>

<code>[root@chy ~]</code><code># sz 1.txt 把linux上的文件传到windo上 </code>

<code>[root@chy ~]</code><code># rz (把windows上文件上传到linux上)</code>

     本文转自我不是瘦子51CTO博客,原文链接:http://blog.51cto.com/chy940405/1983324,如需转载请自行联系原作者