zoukankan      html  css  js  c++  java
  • Linux常用命令大全

     1. 更改档案拥有者 

    命令 : chown [-cfhvR] [--help] [--version] user[:group] file... 
    功能 : 更改文件或者文件夹的拥有者 
    参数格式 : 
      user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) 
      -c : 若该档案拥有者确实已经更改,才显示其更改动作 
      -f : 若该档案拥有者无法被更改也不要显示错误讯息 
      -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案 
      -v : 显示拥有者变更的详细资料 
      -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

    例如:chown -R oracle:oinstall /oracle/u01/app/oracle  
      更改目录拥有者为oracle

    2. 修改权限 
    命令:chmod (change mode) 
    功能:改变文件的读写和执行权限。有符号法和八进制数字法。 
    选项:(1)符号法: 
      命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename 
      u (user)表示用户本人。 
      g (group)  表示同组用户。 
      o (oher)表示其他用户。 
      a (all)表示所有用户。 
      +  用于给予指定用户的许可权限。 
      -  用于取消指定用户的许可权限。 
      =  将所许可的权限赋给文件。 
      r (read)读许可,表示可以拷贝该文件或目录的内容。 
      w (write)  写许可,表示可以修改该文件或目录的内容。 
      x (execute)执行许可,表示可以执行该文件或进入目录。 
      
      (2)八进制数字法:
      命令格式:chmod abc file 
      其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。 
      4 (100)表示可读。 
      2 (010)表示可写。 
      1 (001)表示可执行。 
      若要rwx属性则4+2+1=7; 
      若要rw-属性则4+2=6; 
      若要r-x属性则4+1=5。

    例如:# chmod a+rx filename 
    让所有用户可以读和执行文件filename。 
    # chmod go-rx filename 
    取消同组和其他用户的读和执行文件filename的权限。 
    # chmod 741 filename 
    让本人可读写执行、同组用户可读、其他用户可执行文件filename。 
    # chmod -R 755 /home/oracle 
    递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行

    3. 修改文件日期 
    命令:touch 
    格式:touch filenae 
    功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。 
    例如:% touch file

    4. 链接文件 
    命令:ln (link) 
    格式:ln [option] filename linkname 
      ln [option] directory pathname 
    功能:为文件或目录建立一个链。其中,filename和directory是源文件名和 
      源目录名;linkname和pathname分别表示与源文件或源目录名相链接的 
      文件或目录。 
    选项:-s  为文件或目录建立符号链接。不加-s表示为文件或目录建立硬链接 
    注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出 
      现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。 
    例如:% ln -s filename linkname

    5. 显示日期 
    命令:date 
    例如:% date

    6. 显示日历 
    命令:cal (calendar) 
    格式:cal [month] year 
    功能:显示某年内指定的日历 
    例如:% cal 1998 

    7. 显示文件头部 
    命令:head 
    格式:head [option] filename 
    功能:显示文件的头部 
    选项:缺省  显示文件的头10行。 
      -i显示文件的开始 i行。 
    例如:% head filename

    8. 显示文件尾部 
    命令:tail 
    格式:tail [option] filename 
    功能:显示文件的尾部 
    选项:缺省  显示文件的末10行。 
      -i显示文件最后 i行。 
      +i从文件的第i行开始显示。 
    例如:% tail filename

    9. 显示用户标识 
    命令:id 
    格式:id [option] [user] 
    功能:显示用户标识及用户所属的所有组。 
    选项:-a 显示用户名、用户标识及用户所属的所有组 
    注释: 
    例如:% id username

    10. 查看当前登录的用户 
    命令:users

    11. 显示都谁登录到机器上 
    命令:who 
    格式:who 
    功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。 
    例如:% who

    12. 显示当前终端上的用户名 
    命令:whoami 
    格式:whoami 
    功能:显示出当前终端上使用的用户。 
    例如:% whoami

    13. 寻找文件 
    命令:find 
    格式:find pathname [option] expression 
    功能:在所给的路经名下寻找符合表达式相匹配的文件。 
    选项:-name 表示文件名 
      -user 用户名,选取该用户所属的文件 
      -size 按大小查找,以block为单位,一个block是512B 
      -mtime n  按最后一次修改时间查找,选取n天内被修改的文件 
      -perm 按权限查找 
      -type 按文件类型查找 
      -atime按最后一次访问时间查找

    例如:% find ./ -name '*abc*' -print

    14. 搜索文件中匹配符 
    命令:grep 
    格式:grep [option] pattern filenames 
    功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。 
    选项:-i匹配时忽略大小写 
      -v 找出模式匹配的行

    例如:% grep -i 'java*' ./test/run.sh

    15. 统计文件字数 
    命令:wc [option] filename 
    功能:统计文件中的文件行数、字数和字符数。 
    选项:-l 统计文件的行数 
    -w 统计文件的单词数 
    -c 统计文件的字符数 
    注释:若缺省文件名则指标准输入 
    例如:% wc -c ./test/run.sh

    16. 显示磁盘空间 
    命令:df (disk free) 
    格式:df [option] 
    功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总 
      字节数、已用字节数、剩余字节数占用百分比。 
    选项: 
    -a:显示全部的档案系统和各分割区的磁盘使用情形 
    -i:显示i -nodes的使用量 
    -k:大小用k来表示 (默认值) 
    -t:显示某一个档案系统的所有分割区磁盘使用量 
    -x:显示不是某一个档案系统的所有分割区磁盘使用量 
    -T:显示每个分割区所属的档案系统名称 
    -h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 
    注释: 
    例如:% df -hi

    17. 查询档案或目录的磁盘使用空间 
    命令:du (disk usage) 
    格式:du [option] [filename] 
    功能:以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小 
    选项: 
    -a:显示全部目录和其次目录下的每个档案所占的磁盘空间 
    -b:大小用bytes来表示 (默认值为k bytes) 
    -c:最后再加上总计 (默认值) 
    -s:只显示各档案大小的总合 
    -x:只计算同属同一个档案系统的档案 
    -L:计算所有的档案大小 
    -h: 表示档案系统大小使用 GB、MB 等易读的格式。 
    例如:% du -a 
    % du -sh /etc 只显示该目录的总合 
    % du /etc | sort -nr | more 统计结果用sort 指令进行排序, 
    sort 的参数 -nr 表示要以数字排序法进行反向排序。

    18. 显示进程 
    命令:ps 
    格式:ps [option] 
    功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。 
    选项: 
      -a 显示所有进程信息 
      -U uidlist 列出这个用户的所有进程 
      -e 显示当前运行的每一个进程信息 
      -f 显示一个完整的列表 
      -x 显示包括没有终端控制的进程状况 。 
    注释: 
    例如:% ps -ef 
      % ps -aux 然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

    19. 终止进程 
    命令:kill 
    格式:kill [option] pid 
    功能:向指定的进程送信号或终止进程。kill指令的用途是送一个signal给某一个process, 
    因为大部份送的都是用来杀掉 process 的 SIGKILL 或 SIGHUP ,因此称为 kill  
    选项:-9  强行终止进程 
    注释:pid标示进程号,可由ps命令得到。 
    例如:% kill -9 pid 
    你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形请参阅 man kill。

    20. 查看自己的IP地址 
    命令:ifconfig 
    格式:ifconfig -a

    21. 查看路由表 
    命令:netstat 
    格式:netstat -rn

    22. 远程登录 
    命令:telnet 
    格式:telnet hostname

    23. 文件传输 
    命令:ftp (file transfer program) 
    格式:ftp hostname 
    功能:网络文件传输及远程操作。 
    选项:ftp命令: 
    cd [dirname]  进入远程机的目录 
    lcd [dirname] 设置本地机的目录 
    dir/ls显示远程的目录文件 
    bin以二进制方式进行传输 
    asc以文本文件方式进行传输 
    get/mget  从远程机取一个或多个文件 
    put/mput  向远程机送一个或多个文件 
    prompt打开或关闭多个文件传送时的交互提示 
    close 关闭与远程机的连接 
    quit  退出ftp 
    !/exit ftp登陆状态下,!表示暂时退出ftp状态回到本地目录,exit表示返回ftp状态 
    注释: 
    例如:% ftp hostname

    24. 查看自己的电子邮件 
    命令:mailx 
    格式:mailx 
    选项: 
    delete  删除 
    next下一个 
    quit退出 
     reply回复

    25. 回忆命令 
    命令:history 
    格式:history 
    功能:帮助用户回忆执行过的命令。 
    选项: 
    注释: 
    例如:% history

    26. 网上对话 
    命令:talk 
    格式:talk username 
    功能:在网上与另一用户进行对话。 
    选项: 
    注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部 
      显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。 
    例如:% talk username

    27. 允许或拒绝接受信息 
    命令:mesg (message) 
    格式:mesg [n/y] 
    功能:允许或拒绝其它用户向自己所用的终端发送信息。 
    选项:n 拒绝其它用户向自己所用的终端写信息 
      y 允许其它用户向自己所用的终端写信息(缺省值) 
    注释: 
    例如:% mesg n

    28. 给其他用户写信息 
    命令:write 
    格式:write username [ttyname] 
    功能:给其他用户的终端写信息。 
    选项: 
    注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。 
    例如:write username

    29. 创建、修改、删除用户和群组 
    a. 创建群组: 
    例如: groupadd oinstall创建群组名为oinstall的组 
    groupadd -g 344 dba  
    创建组号是344的组,此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。 
    b. 修改群组: 
    groupmod:该命令用于改变用户组帐号的属性 
    groupmod –g 新的GID 用户组帐号名 
    groupmod –n 新组名 原组名:此命令由于改变用户组的名称

    c. 删除群组: 
    groupdel 组名:该命令用于删除指定的组帐号

    d. 新建用户: 
    命令: useradd [-d home] [-s shell] [-c comment] [-m [-k template]] 
    [-f inactive] [-e expire ] [-p passwd] [-r] name 
    主要参数 
    -c:加上备注文字,备注文字保存在passwd的备注栏中。  
    -d:指定用户登入时的启始目录。 
    -D:变更预设值。 
    -e:指定账号的有效期限,缺省表示永久有效。 
    -f:指定在密码过期后多少天即关闭该账号。 
    -g:指定用户所属的群组。 
    -G:指定用户所属的附加群组。 
    -m:自动建立用户的登入目录。 
    -M:不要自动建立用户的登入目录。 
    -n:取消建立以用户名称为名的群组。 
    -r:建立系统账号。 
    -s:指定用户登入后所使用的shell。 
    -u:指定用户ID号。

    举例: # useradd -g oinstall -G dba oracle  创建Oracle用户

    e. 删除用户 
    命令: userdel 用户名 
    删除指定的用户帐号 
    userdel –r 用户名(userdel 用户名;rm 用户名):删除指定的用户帐号及宿主目录 
    例:#useradd -g root kkk //把kkk用户加入root组里

    f. 修改用户 
    命令: usermod 
    修改已有用户的信息 
    usermod –l 旧用户名 新用户名: 修改用户名 
    usermod –L 用户名: 用于锁定指定用户账号,使其不能登陆系统 
    usermod –U 用户名: 对锁定的用户帐号进行解锁 
    passwd –d 用户名: 使帐号无口令,即用户不需要口令就能登录系统 
    例:#usermod -l user2 user1 //把用户user2改名为user1

    30. 启动、关闭防火墙 
    永久打开或则关闭 
    chkconfig iptables on 
    chkconfig iptables off 
    即时生效:重启后还原 
    service iptables start 
    service iptables stop 
     或者: 
    /etc/init.d/iptables start 
    /etc/init.d/iptables stop

    31. 启动VSFTP服务 
    即时启动: /etc/init.d/vsftpd start 
    即时停止: /etc/init.d/vsftpd stop

    开机默认VSFTP服务自动启动: 
    方法一:(常用方便) 
    [root@localhost etc]# chkconfig --list|grep vsftpd ( 查看情况) 
    vsftpd  0:off1:off2:off3:off4:off5:off6:off 
    [root@localhost etc]# chkconfig vsftpd on  (执行ON设置) 
    或者:方法二: 
    修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd & 插入文件中,以实现开机自动启动。

    32. vi技巧 
    a. 进入输入模式 
    新增 (append) 
    a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 
    A:从光标所在列最後面的地方开始新增资料。

    插入 (insert) 
    i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 
    I :从光标所在列的第一个非空白字元前面开始插入资料。

    开始 (open) 
    o :在光标所在列下新增一列并进入输入模式。 
    O: 在光标所在列上方新增一列并进入输入模式。 
    b. 退出vi 
    在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w
    命令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。

    c. 删除与修改文件的命令: 
    x:删除光标所在字符。 
    dd :删除光标所在的列。 
    r :修改光标所在字元,r 後接著要修正的字符。 
    R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。 
    s:删除光标所在字元,并进入输入模式。 
    S:删除光标所在的列,并进入输入模式。

    d. 屏幕翻滚类命令 
    Ctrl+u: 向文件首翻半屏 
    Ctrl+d: 向文件尾翻半屏 
    Ctrl+f: 向文件尾翻一屏 
    Ctrl+b: 向文件首翻一屏 
    nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

    e. 删除命令 
    ndw或ndW: 删除光标处开始及其后的n-1个字 
    do: 删至行首 
    d$: 删至行尾 
    ndd: 删除当前行及其后n-1行 
    x或X: 删除一个字符,x删除光标后的,而X删除光标前的 
    Ctrl+u: 删除输入方式下所输入的文本

    f. 搜索及替换命令 
    /pattern: 从光标开始处向文件尾搜索pattern 
    ?pattern: 从光标开始处向文件首搜索pattern 
    n: 在同一方向重复上一次搜索命令 
    N: 在反方向上重复上一次搜索命令 
    :s/p1/p2/g: 将当前行中所有p1均用p2替代 
    :n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代 
    :g/p1/s//p2/g: 将文件中所有p1均用p2替换

    g. 复制,黏贴 
    (1) 选定文本块,使用v进入可视模式;移动光标键选定内容 
    (2) 复制选定块到缓冲区,用y;复制整行,用yy 
    (3) 剪切选定块到缓冲区,用d;剪切整行用dd 
    (4) 粘贴缓冲区中的内容,用p

    h. 其他 
    在同一编辑窗打开第二个文件,用:sp [filename] 
    在多个编辑文件之间切换,用Ctrl+w

    系统信息

    arch 显示机器的处理器架构(1)
    uname -m 显示机器的处理器架构(2)
    uname -r 显示正在使用的内核版本
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
    hdparm -i /dev/hda 罗列一个磁盘的架构特性
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
    cat /proc/cpuinfo 显示CPU info的信息
    cat /proc/interrupts 显示中断
    cat /proc/meminfo 校验内存使用
    cat /proc/swaps 显示哪些swap被使用
    cat /proc/version 显示内核的版本
    cat /proc/net/dev 显示网络适配器及统计
    cat /proc/mounts 显示已加载的文件系统
    lspci -tv 罗列 PCI 设备
    lsusb -tv 显示 USB 设备
    date 显示系统日期
    cal 2007 显示2007年的日历表
    date 041217002007.00 设置日期和时间 - 月日时分年.秒
    clock -w 将时间修改保存到 BIOS

    关机 (系统的关机、重启以及登出 )

    shutdown -h now 关闭系统(1)
    init 0 关闭系统(2)
    telinit 0 关闭系统(3)
    shutdown -h hours:minutes & 按预定时间关闭系统
    shutdown -c 取消按预定时间关闭系统
    shutdown -r now 重启(1)
    reboot 重启(2)
    logout 注销

    文件和目录

    C:>>D:  进入D盘

    D:>> work  进入D盘下的work文件夹

    cd /home 进入 '/ home' 目录'
    cd .. 返回上一级目录
    cd ../.. 返回上两级目录
    cd 进入个人的主目录
    cd ~user1 进入个人的主目录
    cd - 返回上次所在的目录
    pwd 显示工作路径
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    ls *[0-9]* 显示包含数字的文件名和目录名
    tree 显示文件和目录由根目录开始的树形结构(1)
    lstree 显示文件和目录由根目录开始的树形结构(2)
    mkdir dir1 创建一个叫做 'dir1' 的目录'
    mkdir dir1 dir2 同时创建两个目录
    mkdir -p /tmp/dir1/dir2 创建一个目录树
    rm -f file1 删除一个叫做 'file1' 的文件'
    rmdir dir1 删除一个叫做 'dir1' 的目录'
    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
    rm -rf dir1 dir2 同时删除两个目录及它们的内容
    mv dir1 new_dir 重命名/移动 一个目录
    cp file1 file2 复制一个文件
    cp dir/* . 复制一个目录下的所有文件到当前工作目录
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录
    cp -a dir1 dir2 复制一个目录
    ln -s file1 lnk1 创建一个指向文件或目录的软链接
    ln file1 lnk1 创建一个指向文件或目录的物理链接
    touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
    file file1 outputs the mime type of the file as text
    iconv -l 列出已知的编码
    iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
    find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" ; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

    文件搜索

    find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
    find / -user user1 搜索属于用户 'user1' 的文件和目录
    find /home/user1 -name *.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
    find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
    find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
    find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限
    find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
    locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
    whereis halt 显示一个二进制文件、源码或man的位置
    which halt 显示一个二进制文件或可执行文件的完整路径

    挂载一个文件系统

    mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
    umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
    fuser -km /mnt/hda2 当设备繁忙时强制卸载
    umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
    mount /dev/fd0 /mnt/floppy 挂载一个软盘
    mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
    mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
    mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
    mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享

    磁盘空间

    df -h 显示已经挂载的分区列表
    ls -lSr |more 以尺寸大小排列文件和目录
    du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间'
    du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小
    rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
    dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)

    用户和群组

    groupadd group_name 创建一个新用户组
    groupdel group_name 删除一个用户组
    groupmod -n new_group_name old_group_name 重命名一个用户组
    useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
    useradd user1 创建一个新用户
    userdel -r user1 删除一个用户 ( '-r' 排除主目录)
    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
    passwd 修改口令
    passwd user1 修改一个用户的口令 (只允许root执行)
    chage -E 2005-12-31 user1 设置用户口令的失效期限
    pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
    grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

    文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消

    ls -lh 显示权限
    ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
    chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
    chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
    chown user1 file1 改变一个文件的所有人属性
    chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
    chgrp group1 file1 改变文件的群组
    chown user1:group1 file1 改变一个文件的所有人和群组属性
    find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
    chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
    chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
    chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
    chmod g-s /home/public 禁用一个目录的 SGID 位
    chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
    chmod o-t /home/public 禁用一个目录的 STIKY 位

    文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消

    chattr +a file1 只允许以追加方式读写文件
    chattr +c file1 允许这个文件能被内核自动压缩/解压
    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
    chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
    chattr +s file1 允许一个文件被安全地删除
    chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
    lsattr 显示特殊的属性

    打包和压缩文件

    bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
    bzip2 file1 压缩一个叫做 'file1' 的文件
    gunzip file1.gz 解压一个叫做 'file1.gz'的文件
    gzip file1 压缩一个叫做 'file1'的文件
    gzip -9 file1 最大程度压缩
    rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
    rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
    rar x file1.rar 解压rar包
    unrar x file1.rar 解压rar包
    tar -cvf archive.tar file1 创建一个非压缩的 tarball
    tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
    tar -tf archive.tar 显示一个包中的内容
    tar -xvf archive.tar 释放一个包
    tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
    tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
    tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
    tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
    tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
    zip file1.zip file1 创建一个zip格式的压缩包
    zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
    unzip file1.zip 解压一个zip格式压缩包

    RPM 包 - (Fedora, Redhat及类似系统)

    rpm -ivh package.rpm 安装一个rpm包
    rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
    rpm -U package.rpm 更新一个rpm包但不改变其配置文件
    rpm -F package.rpm 更新一个确定已经安装的rpm包
    rpm -e package_name.rpm 删除一个rpm包
    rpm -qa 显示系统中所有已经安装的rpm包
    rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
    rpm -qi package_name 获取一个已安装包的特殊信息
    rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
    rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
    rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
    rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
    rpm -q package_name --whatprovides 显示一个rpm包所占的体积
    rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
    rpm -q package_name --changelog 显示一个rpm包的修改历史
    rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
    rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
    rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
    rpm --checksig package.rpm 确认一个rpm包的完整性
    rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
    rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
    rpm -Va 检查系统中所有已安装的rpm包- 小心使用
    rpm -Vp package.rpm 确认一个rpm包还未安装
    rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件
    rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
    rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

    YUM 软件包升级器 - (Fedora, RedHat及类似系统)

    yum install package_name 下载并安装一个rpm包
    yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
    yum update package_name.rpm 更新当前系统中所有安装的rpm包
    yum update package_name 更新一个rpm包
    yum remove package_name 删除一个rpm包
    yum list 列出当前系统中安装的所有包
    yum search package_name 在rpm仓库中搜寻软件包
    yum clean packages 清理rpm缓存删除下载的包
    yum clean headers 删除所有头文件
    yum clean all 删除所有缓存的包和头文件

    DEB 包 (Debian, Ubuntu 以及类似系统)

    dpkg -i package.deb 安装/更新一个 deb 包
    dpkg -r package_name 从系统删除一个 deb 包
    dpkg -l 显示系统中所有已经安装的 deb 包
    dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包
    dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
    dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
    dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
    dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

    APT 软件工具 (Debian, Ubuntu 以及类似系统)

    apt-get install package_name 安装/更新一个 deb 包
    apt-cdrom install package_name 从光盘安装/更新一个 deb 包
    apt-get update 升级列表中的软件包
    apt-get upgrade 升级所有已安装的软件
    apt-get remove package_name 从系统删除一个deb包
    apt-get check 确认依赖的软件仓库正确
    apt-get clean 从下载的软件包中清理缓存
    apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

    查看文件内容

    cat file1 从第一个字节开始正向查看文件的内容
    tac file1 从最后一行开始反向查看一个文件的内容
    more file1 查看一个长文件的内容
    less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
    head -2 file1 查看一个文件的前两行
    tail -2 file1 查看一个文件的最后两行
    tail -f /var/log/messages 实时查看被添加到一个文件中的内容

    文本处理

    cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
    cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中
    cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中
    grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
    grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
    grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
    grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
    sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
    sed '/^$/d' example.txt 从example.txt文件中删除所有空白行
    sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行
    echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容
    sed -e '1d' result.txt 从文件example.txt 中排除第一行
    sed -n '/stringa1/p' 查看只包含词汇 "string1"的行
    sed -e 's/ *$//' example.txt 删除每一行最后的空白字符
    sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部
    sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容
    sed -n '5p;5q' example.txt 查看第5行
    sed -e 's/00*/0/g' example.txt 用单个零替换多个零
    cat -n file1 标示文件的行数
    cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行
    echo a b c | awk '{print $1}' 查看一行第一栏
    echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏
    paste file1 file2 合并两个文件或两栏的内容
    paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分
    sort file1 file2 排序两个文件的内容
    sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
    sort file1 file2 | uniq -u 删除交集,留下其他的行
    sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
    comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容
    comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
    comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

    字符设置和文件格式转换

    dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
    unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
    recode ..HTML < page.txt > page.html 将一个文本文件转换成html
    recode -l | more 显示所有允许的转换格式

    文件系统分析

    badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块
    fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性
    fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
    e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
    e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
    fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
    fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性
    fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
    dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性

    初始化一个文件系统

    mkfs /dev/hda1 在hda1分区创建一个文件系统
    mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统
    mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统
    mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统
    fdformat -n /dev/fd0 格式化一个软盘
    mkswap /dev/hda3 创建一个swap文件系统

    SWAP文件系统

    mkswap /dev/hda3 创建一个swap文件系统
    swapon /dev/hda3 启用一个新的swap文件系统
    swapon /dev/hda2 /dev/hdb3 启用两个swap分区

    备份

    dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份
    dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份
    restore -if /tmp/home0.bak 还原一个交互式备份
    rsync -rogpav --delete /home /tmp 同步两边的目录
    rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync
    rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录
    rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录
    dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作
    dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件
    tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作
    ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容
    ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录
    tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接
    find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录
    find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包
    dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作
    dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容

    光盘

    cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容
    mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件
    mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件
    mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件
    cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件
    gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件
    mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件
    cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中
    cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)
    cdrecord --scanbus 扫描总线以识别scsi通道
    dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD

     

  • 相关阅读:
    在JS中如何去掉千分号
    JS中showModalDialog详细使用
    js里的insertCell和appendChild的区别
    js showModalDialog
    js中innerHTML,innerText,outerHTML的用法和区别
    MYSQL入门指导
    对拍程序C语言实现
    人性的弱点
    POJ3207(2SAT)
    期末考试时间安排
  • 原文地址:https://www.cnblogs.com/wangcp-2014/p/4256454.html
Copyright © 2011-2022 走看看