[Linux] 三, 常用命令 [ 1 ]

课程大纲 {
 *1 文件处理命令  [ ls, cp, mv, rm, cat, ln]
 *2 权限管理命令  [ chmod  u + r g - w o = x,  chown, chgrp, umask ]
 *3 文件搜索命令  [ which, find, locate, updatedb, grep ]   
 *5 压缩解压命令  [ gzip, gunzip, tar, zip, bzip2]
 *6 网络通信命令  [ write, wall, ping, ifconfig] 
 *4 帮助命令          [ man, info, whatis  apropos, help]
 *7 系统关机命令  
 *8 Shell应用技巧
}
文件命名规则和命令格式 {
  1), 除了 / 之外,所有的字符都合法。 但是不要给自己带来麻烦! a b  ;   用  .  开头的文件是隐藏文件!!!
  命令格式 : 命令 -选项 参数
  例 : ls -la /etc  说明 : 两个特殊的目录 . 和 .. , 分别代表当前目录和当前目录的父目录!!
}
文件处理命令 { 
 #1 
  ls, cd[命令所在路径:shell内置命令], pwd[/bin/pwd], touch[/bin/touch], cp[/bin/cp], mv...
  -- 1* 命令名称 : ls  2* 命令英文原意 :list 3* 命令所在路径 : /bin/ls 4* 执行权限 : 所有用户 5* 功能描述 : 显示目录文件
  语法 : ls 选项[-ald] [文件或目录]
  -l  显示详细信息。 -d 查看目录属性。 ls -ld 自己试一试吧!只是这个目录。。
 扩展常知识 『
   root : { /sbin 和 /usr/sbin }
   All users : {  /bin 和 /usr/bin }
   bin - binary / usr - user / sbin - super binary
  *** ls -l {  drwxr-xr-x 2 hp hp 4096 2012-12-25 16:18 dlinux
  第一部分 {
   文件类型 d 目录directory
          - 二进制文件
          l 软链接文件link
    rwx         r-x        r-x  
   所有者u      所属组g     其他人o
   user        group      others
   (所有者可以转让)
  }
  第二部分 { 2 - 硬链接数 }
  第三, 四部分 {
  hp           hp
  所有者       所属组
  }
  第五部分 {
   4096 - 文件大小 [不是很准确,标记目录本身的大小,不是目录总大小] 数据块(512字节1单位)
   组织管理数据的方式,每种OS都有自己的,比如 NTFS, ext3 ...
   存储数据的最小单位就叫做数据块,这一这样理解!!
   文件向。。。存储的时候,至少要占用一个数据块。  (你就 60斤,也得做一个椅子,200斤做一个,600斤可能做两个!)
   分你做什么,数据块越小存取速度越小,数据块越大存取的时候浪费空间越大。
   分你做什么,调数据块多大合适。。。有个别时候!!
  }
  第六部分 { 创建的时间,或者最后的修改时间! }
  第七部分 : 文件目录的名称
 』
 ----------------
 #2 cp [复制]
    cp /etc/xady /test      复制普通文件
    cp -R /home/neil /test  复制目录
 #3 mv [功能 : 剪切 / 更名]
    mv file1 file3       更改名字
    mv file1 /tmp        剪切
    mv file1 /tmp/file3  剪切+更改名字
 #4 rm 删除文件   rmdir (删除空目录(只))
    rm file1    删除文件 (有提示),  rm -f file1 (无提示,强制,但是这样很危险!)
    rm -r file2 删除目录 [特别能问,提示]  rm -rf file3(目录名称)
 #5 cat 查看文件内容  [最好是不是很长的文件]
  * more 分页显示文件内容
      { (空格/f) 显示下一页  Enter 显示下一行 q/Q 退出 }
  * head -num [查看文件前几行,默认10行]
  * tail -num [文件名]  【 -f 动态显示 】
 #6 ln -s [源文件] [目标文件] 
     -s 软链接
    软链接文件的权限很特殊 lrwxrwxrwx  --> 10 (很小,只是一个符号链接) 指向到源文件
    软连接的文件类型是 l
    : 类似于 windows 快捷方式! 软连接跨文件系统!!
    **
    ln [源文件] [目标文件]   “硬链接”
    硬链接相当于拷贝,但是和拷贝还有所不同。(不同的是同步更新)
    cp -p ... 可以保留原始的时间值
    echo "this is a test" >> file2
    删除源文件的话,硬链接依然是同步的!
   --------- 为什么能同步更新呢? --------
   内核只认识 数字 1 2 3 4 ... , 不认识 a b c d...
   每个文件都有一个数字标识
   在linux中要处理,用户,用户要有uid, 要处理,组,要有组 id
   要处理 进程,进程要有 pid, 都要有个数字标识,内核就是根据这些标识来处理对象的
   文件的数字标识是 : inode
   内核处理任何方式都要有个标识
   每个文件必须有一个 i节点,没有的话就没法访问了!
   硬链接与源文件拥有相同的 inode, 所以可以同步更新!
 **----你要知道linux的文件系统存储数据实际上都分为两个部分:inode和data。inode存储的是数据的属性(例如rwx等),
         data里面存储的是数据。硬链接就是在inode里面加了一个指向同一个数据的标记。删除的时候只是把这个标记删除了,
         所以硬链接还可以打开。
    不同的分区文件系统不一样 ... 硬链接不跨文件系统。
------------------------------------------------------
权限处理命令 {
 chmod  u + r
        g - w
        o = x
 u - 所有者
 g - 所属组
 o - 其他人    可以 chmod g=rwx file1
 授权的方法简单而直观,很好 !
 rwxr-xr--   对应数字  754
 chmod 数字 文件名
 rwx 的深入理解 {
   /home/hp/file1
   /home/hp  777
   /home/hp/file1 000   但是现在可以删除这个文件,普通用户就可以!
 }
 文件 
 r - cat, more, head, tail
 w - echo, vi.   [并不代表你可以删除这个文件]
 x - 命令,脚本
 目录
 r - ls
 w - touch, mkdir, rm  可以对这个目录 创建删除文件
 x - cd
 chown 命令 { 可以改变所有者
   nobody 系统自带的用户
   chown nobody file1
   -- chgrp 改变所属组 --
 }
 添加用户 {
   useradd
   passwd
 }
 创建文件和目录的时候有一个默认的权限 {  
   umask,  umask -S  可以查看缺省的文件权限
   0022  第一个 0 - 特殊权限位
   022 - 用户权限位[权限掩码值]    777 - 022 = 755
   755 - 111 = 644
   644 linux权限默认规则 ;
    缺省创建的文件不能被授予可执行x权限
    
   如果你一定要更改也可以,你想改成 750,你觉得合理!
   umask 027  可以改变!!
 }
文件搜索命令: {
 #1 which
   功能描述:显示系统命令所在目录  [不同的是可以显示别名]
   范例:$ which ls
   whereis  [不同是可以看到命令所在帮助文档位置]
 #2 find
   命令所在路径 : /usr/bin/find
   语法:find [搜索路径] [搜寻关键字]
   功能描述:查找文件或目录
 -1-
   范例:
   $ find /etc -name init*  在目录/etc中查找init开头的文件
   $ find / -size +204800  在根目录下查找大于100MB的文件 block=512B
                  大于 : +, 小于 : - , 等于 : 不写 +, -;
   $ find / -user sam      在根目录下查找所有者为sam的文件
   find 原则 - 尽量节省系统资源
 -2-
   ##1 天     ctime, atime, mtime
   ##2 分钟   cmin , amin,  mmin
   c-change 改变, 表示文件属性被修改过,所有者,所属组,权限
   a-access 访问
   m-modify 修改, 表示文件内容被修改过
   -之内, +超过
   find /etc -mmin -120
   我们刚讲了 4 个find的选项,其实不下 40 个!要学会看文档!
  -3- 连接符  -a and 逻辑与 -o or 逻辑或
   $ find /etc -ctime -1   在/etc下查找24小时内被修改过属性的文件和目录
   $ find /etc -size +163840 -a -size -204800    在/etc下查找大于80MB小于100MB的文件
   $ find /etc -name init* -a -type f [ 二进制文件 ]
   $ find /etc -name init* -a -type l [ 软链接文件 ]
    -type 文件类型  f 二进制文件  l 软链接文件  d 目录
    连接符 find ..... -exec 命令 {} \;
                           {} find 查询的结果  \ 转义符 【ls \ls】
  $ find /etc -name inittab -exec ls -l {} \;
            在/etc下查找inittab文件并显示其详细信息
  $ find /test -name testfile3 -exec rm {} \;
  $ find /etc -name inittab -ok ls -l {} \;  能询问一下 -ok
  $ find /etc -name inittab -a -type f -exec ls -l {} \;
  文件名很奇怪的文件 rm -- -abc rm "a b"
  $ find . -inum 16 -exec rm {} \;
 ------------------------------------------------------------------------------------------
 #3 locate [linux特有的 在文件数据库中查找 很快]
      语法:locate [搜索关键字]  功能描述:寻找文件或目录  范例: $ locate file  ** 列出所有跟file相关的文件
 #4 updatedb  执行权限:root  语法:updatedb  功能描述:建立整个系统目录文件的数据库  范例:# updatedb
 #5 grep  功能描述:在文件中搜寻字串匹配的行并输出  范例:# grep ftp /etc/services
}
帮助命令 {
 #1 man   man [会调用more] 
  范例: $ man ls  查看ls命令的帮助信息
  $ man services  查看配置文件services的帮助信息 【只能是配置文件】
  如果都有的话,会优先命令再配置文件
  帮助分多种 :第一种是命令,第五种是配置文件
  man 5 passwd  man passwd  man 1 passwd
 #2 info [linux特有的,和 man 只是呈现形式略有差别]
  语法:info [任何关键字]
  范例: $ info ls  查看ls指令的帮助信息
 #3 whatis  apropos
  指令所在路径:/usr/bin/whatis apropos   /usr/sbin/makewhatis
  执行权限: All User,   All User,   root
  语法: whatis apropos [任何关键字]
  功能描述: 获得索引的简短说明信息
  范例: $ whatis ls
       $ apropos fstab
    相当于man -k
  帮助指令:whatis
  范例: #make whatis
  建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是whatis database没有建立
 #4 help [查看shell内置命令的帮助]
     硬件 - 内核 - shell
     man bash[一个内置命令就行] 告诉你当前 shell 有哪些内置命令
}
原文地址:https://www.cnblogs.com/robbychan/p/3787054.html