1.和目录相关的几个命令:

mkdir 创建一个目录

mkdir -p 级联的创建目录 mkdir -p  /a/b/c

mkdir   关注-p选项 级联创建 mkdir -pv(可视化)  /root/1/2/3  

tree /root/1/ 显示树形结构 

tree -c /root/1 显示颜色

rmdir 删除一个目录 rmdir /a/b/c/ 删除目录c 只能删除空目录 

rmdir -p级联的删除空目录 rmdir -p /a/b/c

rm 删除文件

rm -f 强制删除文件 

rm -r 删除目录 若非空还会提示,进入目录吗?删除里面的文件吗?删除目录a吗? 取消提示可以直接利用/bin/rm 

rm -rf 强制删除目录

/bin/rm -r 就不在进行交互了。

cp 

cp -r 复制目录

cp 命令补充:

cp -r 

mkdir 3

cd 3/

touch 1.txt

cp -r 3 1/2/

cp -r 3 1/2/3

# 这个执行结果是完全不一样的p 如果3已经存在,会复制到3下面。

还有看看这个,当目录下有3,再把/root/shell/3复制到这个目录(/root/shell/1/2/下,原来的目录3的内容不发生变化,试验过)。

mv(注意没有-r选项)  重命名或者移动, 有时我们使用/bin/mv,  当我们mv目录时,注意若是目标目录存在的情况下,那么会把源目录移动到目标目录里

2.和文本相关的命令:

cat 文本

tac 文本

more 文本 只能往下翻,不能往上翻,到末尾自动退出。

less 文本 既可以往上翻,也可以往下翻。j,k分别往下和往上翻一行,ctrl+b表示往上翻一页,ctrl+f表示往下翻一页。G到末尾,g到首部。到末尾按q退出。

/向下搜索   n向下  N向上

?向上搜索 n向上  N向下

head 文本 显示的是前十行 

head -1 文本 显示的是第一行  

head -n 1 文本,显示的也是第一行 head -100 显示的是前100行

tail 文本 显示的是后10行  tail -1 文本 显示的是最后一行 tail -100 文本 显示的是最后100行。

tail -f 动态的显示信息。

echo $?表示上次命令是否执行成功?

ls !$上次命令的最后一个一个参数 

!cp 历史命令中最近一个以cp开头的命令。

history查看命令历史。

ntpdate www.microsoft.com

3.文件或者目录的属性

类型:

 d 目录

 - 普通文件 

c 字符设备(键盘,鼠标,显示器等)

 l 软连接文件   b 块设备   

s socket(套接字)文件 进程间的通信

.和selinux相关的特殊位

权限:

属主 所属组 其他人

r read   4 rwx rwx rwx 

w write  2

e execute 1

chmod  更改权限 chmod u=rwx g=rw-,o=r--,等同于chmod 764

inode 索引节点 inode文件的唯一标示符

关于inode的理解:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html

                               http://www.ruanyifeng.com/blog/2011/12/inode.html

4.修改权限:

chown 修改所属主,所属组

chown root:root (user group)—

chown -R

chown :root(所属组)

chown root.root

chmod 更改rwx权限 chmod 777 数字也可以。

chmod a+x filename 

chmod u+x

chmod -R root:aming dir  是递归的,所有目录和子目录都是root :aming

umask指定默认权限 目录是755  目录一般都有可执行权限 文件644 目录如果没有可执行权限,我们不能cd到这个目录下。可以ls这个目录。

chattr +a只能追加内容 ,chattr +i 把文件或者目录锁死,什么都不能干。

lsattr -l可以查看详细信息。


特殊权限:

set_uid 使普通用户临时拥有执行这条命令所属主的权限,必须是二进制文件,必须是可执行的。查到二进制文件的特性:

passwd 更改/etc/shadow 

file filename

查看系统是多少位?

uname -i 查看是多少位系统

uname -a 查看详细的系统信息

chmod u+s u-s  

set_gid 是普通用户临时拥有执行这条命令的所属组的权限

使普通用户具有父亲的权限

这个真的很2。set_gid 不仅可以作用于可执行的二进制文件,也可以作用于目录。

sticky_bit 你去创建一个文件,其他人就不能删除这个文件,也不能修改这个文件。

ll-ld /tmp

chmod o+t   t防删除位。

搜文件:

which 可以搜索命令

which 1.txt  在环境变量中搜索 文件或者命令

whereis 会在固定的几个目录中搜索  /bin /sbin/ /usr/bin/  /usr/sbin/  /usr/share/man/man1/

locate 安装用到的库是mlocate   yum install mlocate -y

在生成数据库 updatedb  更新时间是每天的凌晨四点 找文件也有一定的局限性。

find . -name 333

find . -type  f/b/l/s/c/d -name 333

find /tmp / -mtime +10(创建或者更改时间大于10天) -10(创建或者更改时间在十天之内)

find /tmp/ -mmin +300(创建或者更改时间大于300分钟) -300(创建或者更改时间在300分钟之内)

atime 访问时间

mtime 创建时间或者是更改时间

ctime 指inode上一次变动的时间

inode的内容

inode包含文件的元信息,具体来说有以下内容:

  * 文件的字节数

  * 文件拥有者的User ID

  * 文件的Group ID

  * 文件的读、写、执行权限

  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  * 链接数,即有多少文件名指向这个inode

  * 文件数据block的位置

只要更改mtime,ctime必然改变,因为元信息改变了。

更改ctime,atime不一定会改变,

touch  三个时间都会改变。

find /tmp -atime +365 访问时间在一年之前的

find /data/log/ -mtime +30 -type f | xagrs rm -f  xagrs 承接上条命令内容。

find /data/log -mtime +30 -type f -exec rm {}\;(脱意符号)

find /data/log -mtime +30 -type f | xagrs  -i (过滤出来的文件一个一个去处理)mv {} {}.bak

find /tmp/ -type f | xagrs -i mv {} {}.bak;

find /tmp/ imum 2 | xargs -i rm -rf  {} \;

把查找到的文件一个一个的去处理。(aminglinux论坛)

http://www.aminglinux.com/bbs/thread-6798-1-4.html

http://linux.chinaunix.net/techdoc/system/2008/07/25/1020339.shtml

 

find与grep的组合使用 

在当前目录下所有文件中查找内容包含 string 的文件:

find ./ -name "*" -exec grep "string" {} \;

注意:在最后不能加 print ,否则会出错.

 

在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件:

find ./ -name "*" -exec grep -l "string" {} \;

 

在当前目录下 *.c 中查找内容包含 string 的文件并列出字符所在的文件的所在行(不显示文件名):

find ./ -name "*.c" -exec grep -n "string" {} \;

 

在当前目录下所有文件中查找内容包含 string 的文件并列出字符所在的文件,所在行及所在行的内容:

find ./ -name "*" -exec grep -n "string" ./ {} \;

 

使用 find 查找时希望忽略某个目录(-prune):

如果希望在 /app 目录下查找文件, 但不希望在 /app/bin 目录下查找:

find /app -name "/app/bin" -prune -o -print

 

使用 type 选项:

如果要在 /etc 目录下查找所有的目录:

find /etc -type d -print

 
如果要在 /etc 目录下查找 .svn 的目录:
find /etc -name .svn -type d -print

为了在当前目录下查找除目录以外的所有类型的文件:

find . ! -type d -print

 

为了在当前目录下查找所有的符号链接文件, 可以用:

find . -type l -print

 

===========================================================

为了用 ls -l 命令列出所匹配到的文件, 可以把 ls -l 命令放在find命令的 -exec 选项中:

find . -type f -exec ls -l {} \;

 

注: f 表示普通文件

exec 选项后面跟随着所要执行的命令, 然后是一对 {}, 一个空格和一个 \,最后是一个分号。

软连接和硬链接:

ln -s /root/aminglinux.com linux 方便快捷的查找到需要所需要的文件。 源文件和目标文件  都写成绝对路径。

多个文件共用一个inode(但是这多个文件是同一个文件)

目录无法做硬链接,做硬链接会引起混乱,硬链接只是做一个备份而已,注意硬链接不能跨的分区。因为inode的生成是在分区格式化划分好的。一个分区的inode是各不相同的。每个分区都有inode 2.有相当的inode会引起文件的混乱。