现在的位置: 首页 > 综合 > 正文

Shell 命令笔记

2013年08月03日 ⁄ 综合 ⁄ 共 16012字 ⁄ 字号 评论关闭

交流QQ群:26651479

各个 shell 可互相切换
ksh:$    sh:$    csh:guangzhou%     bash:bash-3.00$

一、注意事项
    命令和参数之间必需用空格隔开,参数和参数之间也必需用空格隔开。
    一行不能超过256个字符;大小写有区分。

二、特殊字符含义
    文件名以“.”开头的都是隐藏文件/目录,只需在文件/目录名前加“.”就可隐藏它。
    ~        表示主目录。
    .        当前目录(一个点)。
    ..       上一级目录(两个点)。
    ;        多个命令一起用。
    >  >>    输出重定向  。将一个命令的输出内容写入到一个文件里面。如果该文件存在, 就将该文件的内容覆盖;
             如果不存在就先创建该文件, 然后再写入内容。
             输出重定向,意思就是说,将原来屏幕输出变为文件输出,即将内容输到文件中。
    <  <<    输入重定向。  本来命令是通过键盘得到输入的,但是用小于号,就能够使命令从文件中得到输入。
    \        表示未写完,回车换行再继续。
    *        匹配零个或者多个字符。
    ?        匹配一个字符。
    []       匹配中括号里的内容[a-z][A-Z][0-9]。
    !       事件。
    !!       执行最近一次的命令
    $        取环境变量的值。
    |        管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。
             |经常跟tee连用,tee 把内容保存到文档并显示出来。
    #        单行注释

三、通用后接命令符
    -a    所有(all)。
    -e    所有(every),比a更详细。
    -f    取消保护。
    -i    添加提示。
    -p    强制执行。
    -r    目录管理。

 分屏显示的中途操作
    空格<space>       继续打开下一屏;
    回车<return>      继续打开下一行;
    b                另外开上一屏;
    f                另外开下一屏;
    h                帮助;
    q或Ctrl+C        退出;
    /字符串           从上往下查找匹配的字符串;
    ?字符串          从下往上查找匹配的字符串;
    n                继续查找。

四、退出命令
exit    退出; DOS内部命令 用于退出当前的命令处理器(COMMAND.COM)     恢复前一个命令处理器。
Ctrl+d  跟exit一样效果,表中止本次操作。
logout  当csh时可用来退出,其他shell不可用。

clear   清屏,清除(之前的内容并未删除,只是没看到,拉回上面可以看回)。相当与DOS下的cls
    Ctrl + Shift + G 清屏(屏幕内容完全清除,拉不回的)

五、目录管理命令
pwd   显示当前所在目录,查看当前所在目录的完整路径(绝对路径)。
cd    进入某目录,显示或改变当前目录。
      cd回车/cd ~     都是回到自己的主目录。
      cd .            当前目录(空格再加一个点)。
      cd ..           回到上一级目录(空格再加两个点)。    cd ../..  向上两级。
      cd /user/s0807  从绝对路径去到某目录。
      cd ~/s0807      直接进入主目录下的某目录(“cd ~”相当于主目录的路径的简写)。
ls    查看目录或者文件的属性,列举出任一目录下面的文件
      用法  ls [-aAbcCdeEfFghHilLmnopqrRstux1@]


      ls /etc/   显示某目录下的所有文件和目录,如etc目录下的。
      ls -l      (list)列表显示文件(默认按文件名排序),
                 显示文件的权限、硬链接数(即包含文件数,普通文件是1,目录1+)、用户、组名、大小、修改日期、文件名。
      ls -t      (time)按修改时间排序,显示目录和文件。
      ls -lt     是“-l”和“-t”的组合,按时间顺序显示列表。
      ls -F      显示文件类型,目录“/ ”结尾;可执行文件“*”结尾;文本文件(none),没有结尾。
      ls -R      递归显示目录结构。即该目录下的文件和各个子目录下的文件都一一显示。
      ls -a      显示所有文件,包括隐藏文件。

    文件权限
        r    读权限。对普通文件来说,是读取该文件的权限;对目录来说,是获得该目录下的文件信息。
        w    写权限。对文件,是修改;对目录,是增删文件与子目录。
            (注 删除没有写权限的文件可以用 rm -f ,这是为了操作方便,是人性化的设计)。
        x    执行权限;对目录,是进入该目录
        -    表示没有权限
       形式 - rw- r-- r--
    其中 第一个是文件类型(-表普通文件,d表目录(directory),l表软链接文件(link))
    第2~4个是属主,生成文件时登录的人,权限最高,用u表示(user)
    第5~7个是属组,系统管理员分配的同组的一个或几个人,用g表示(group)
    第8~10个是其他人,除属组外的人,用o表示(other)
    所有人,包括属主、属组及其他人,用a表示(all)

chmod  更改权限;
    用法    chmod [-fR] <绝对模式> 文件 ...
            chmod [-fR] <符号模式列表> 文件 ...
      其中  <符号模式列表> 是一个用逗号分隔的表     [ugoa]{+|-|=}[rwxXlstugo]
    chmod u+rw  给用户加权限。同理,u-rw也可以减权限。
    chmod u=rw  给用户赋权限。与加权限不一样,赋权限有覆盖的效果。
    主要形式有如下几种
    chmod u+rw       chmod u=rw
    chmod u+r, u+w   chmod u+rw,g+w, o+r
 chmod u+x filenmame   # 只想给自己运行,别人只能读
    chmod 777 (用数字的方式设置权限是最常用的)
    数字表示权限时,各数位分别表示属主(user)、属组(group)及其他人(other);
      其中,1是执行权(Execute),2是写权限(Write),4是读权限(Read),
      具体权限相当于三种权限的数相加,如7=1+2+4,即拥有读写和执行权。
    另外,临时文件/目录的权限为rwt,可写却不可删,关机后自动删除;建临时目录:chmod 777 目录名,再chmod +t 目录名。

df 查看文件系统,查看数据区
    用法 df [-F FSType] [-abeghklntVvZ] [-o FSType 特定选项] [目录 | 块设备 | 资源]
    df -k   以kbytes显示文件大小的查看文件系统方式

六、文本操作
more  分屏显示文件的内容。适合于看大文件。
      用法   more [-cdflrsuw] [-行] [+行号] [+/模式] [文件名 ...]。
      显示7个信息:用户名 密码 用户id(uid) 组id(gid) 描述信息(一般为空) 用户主目录  login shell(登录shell)
cat   显示文件内容,不分屏(一般用在小文件,大文件显示不下);合并文件,仅在屏幕上合并,并不改变原文件。
      用法 cat [ -usvtebn ] [-|文件] ...
      如:cat>1.c    //就可以把代码粘帖到1.c文件里,按ctrl+d 保存代码。
   cat 1.c 或more 1.c     //都可以查看里面的内容。
      一般用作将很多小文件连成一个大文件: cat file* >newFile
head  输出文件的开头部分的内容
      如: head -3 a.txt # 显示最上面的3行。缺省是10行
      参数:
       -c, --bytes=[-]K  显示每个文件的前多少字节; 以“-”开头,则显示到后多少字节; 数字后面可带k等参数表示大小,则显示多少个(一个中文算2~3个字节)。
                         如: head -c 10 test.txt # 显示文件的前10字节
                         head -c -1k test.txt # 显示到文件的后1K的内容
       -n, --lines=[-]K  显示每个文件的多少行;以“-”开头,则显示到后多少行。
       -q, --quiet, --silent  不显示文件名(默认)。
       -v, --verbose     总是显示文件名。即在显示文件内容前多显示一行内容: ==> 文件名 <==
       --help 显示帮助信息
       --version   显示版本信息
tail  实时监控文件,一般用在日志文件,可以只看其中的几行。
      用法 tail [+/-[n][lbc][f]] [文件]
          tail [+/-[n][l][r|f]] [文件]
      如: tail -3 a.txt # 显示最下面的3行,一般用作查看日志信息

 

七、文件/目录的增删
echo  显示一行内容。
touch 如果文件/目录不存在,则创建新文件/目录;如果文件存在,那么就是更新该文件的最后访问时间,
      用法 touch [-acm] [-r ref_file] 文件...
           touch [-acm] [MMDDhhmm[yy]] 文件...
           touch [-acm] [-t [[CC]YY]MMDDhhmm[.SS]] file...
mkdir 创建目录(必须有创建目录的权限)
      用法 mkdir [-m 模式] [-p] dirname ...
      mkdir dir1/dir2          在dir1下建dir2
      mkdir dir13 dir4 dir5    连建多个
      mkdir ~/games            用户主目录下建(默认在当前目录下创建)
      mkdir -p dir6/dir7/dir8  强制创建dir8;若没有前面的目录,会自动创建dir6和dir7。
                               不用-p时,若没有dir6/dir7,则创建失败。

cp   复制文件/目录
     cp  源文件   目标文件     复制文件;若已有文件则覆盖
     cp -r 源目录 目标目录     复制目录;若已有目录则把源目录复制到目标目录下,
                               没有目标目录时,相当于完全复制源目录,只是文件名不同。
 如: cp beans apple dir2       把beans、apple文件复制到dir2目录下
     cp 1.c netseek/2.c        将1.c拷到netseek目录下并命名为2.c
     cp -i beans apple         增加是否覆盖的提示

mv 移动或重命名文件/目录
    用法 mv [-f] [-i] f1 f2
        mv [-f] [-i] f1 ... fn d1
        mv [-f] [-i] d1 d2
    mv 源文件名 目标文件名   若目标文件名还没有,则是源文件重命名为目标文件;若目标文件已存在,则源文件覆盖目标文件。
    mv 源文件名 目标目录     移动文件
    mv 源目录 目标目录       若目标目录不存在,则源目录重命名;若目标目录已存在,则源目录移动到目标目录下。
 如: mv qib.tgz ../qib.tgz   移到上一级目录

rm  删除文件/目录
    用法 rm [-fiRr] 文件 ...
    rm 文件名     删除文件。
    rm -r 目录名  删除目录。
    rm -f 文件    只要是该文件或者目录的拥有者,无论是否有权限删除,都可以用这个命令参数强行删除。
    rm -rf *     删除所有文件及目录
rmdir 删除空目录。只可以删除空目录。

ln 创建硬链接或软链接,硬链接=同一文件的多个名字;软链接=快捷方式
    用法   ln [-f] [-n] [-s] f1 [f2]
          ln [-f] [-n] [-s] f1 ... fn d1
          ln [-f] [-n] -s d1 d2
    ln file1 file1.ln      创建硬链接。感觉是同一文件,删除一个,对另一个没有影响;须两个都删除才算删除。
    ln -s file1 file1.sln  创建软链接。可跨系统操作,冲破操作权限;也是快捷方式。

八、时间显示
date 显示时间,精确到秒
    用法   date [-u] mmddHHMM[[cc]yy][.SS]
    date [-u] [+format]
    date -a [-]sss[.fff]
cal 显示日历
    cal 9 2008  显示2008年9月的日历;    cal 显示当月的
    用法 cal [ [月] 年 ]

九、帮助
man 对某命令提供帮助解释
    帮助( format and display the on-line manual pages)
    用法  man [-] [-adFlrt] [-M 路径] [-T 宏软件包] [-s 段] 名称 ...
          man [-] [-adFlrt] [-M path] [-T macro-package]  [-s section]  name...
    man [-M 路径] -k 关键字 ...
    man [-M 路径] -f 文件 ...
 如:   man ls 就可以查看ls相关的用法

awk 按一定格式输出(pattern scanning and processing language)
    用法 awk [-Fc] [-f 源代码 | 'cmds'] [文件]

十、vi
    底行模式  / ?  命令模式  i a o 输入模式

vi 的使用方法
 1、光标    h 左    j 下        k 上    l 右
    set nu 显示行号(set nonu)  21  光标停在指定行
    21G             第N行  (G到文件尾,1G到文件头) 如果要将光标移动到文件第一行,那么就按 1G
    H               屏幕头
    M               屏幕中间
    L               屏幕底
    ^  或 shift+6   行首
    $  或 shift+4   行尾
    Ctrl+f          下翻
    Ctrl+b          上翻

2、输入 (输入模式)
    o       光标往下换一行
    O       (大写字母o)在光标所在行上插入一空行
    i       在光标所在位置的前面插入字母
    a       在光标所在位置的后面插入一个新字母
    <Esc>   退出插入状态。
    ::      命令模式切换到插入模式

3、修改替换
    r        替换一个字符
    dd       删除行,剪切行    (5dd删除5行)
             5,10d  删除 5 至 10 行(包括第 5行和第 10 行)
    x        删除一个字符
    dw       删除词,剪切词。 ( 3dw删除 3 单词)
    cw       替换一个单词。 (cw 和 dw 的区别 cw 删除某一个单词后直接进入编辑模式,而dw删除词后仍处于命令模式)
    cc       替换一行
    C        替换从光标到行尾
    yy       复制行 (用法同下的 Y ,见下行)
    Y        将光标移动到要复制行位置,按yy。当你想粘贴的时候,请将光标移动到你想复制的位置的前一个位置,然后按 p
    yw       复制词
    p        当前行下粘贴
    1,2co3   复制行1,2在行3之后
    4,5m6    移动行4,5在行6之后
    u        当你的前一个命令操作是一个误操作的时候,那么可以按一下 u键,即可复原。只能撤销一次
    r file2  在光标所在处插入另一个文件

    ~        将字母变成大写
    J        可以将当前行与下一行连接起来
    /字符串   从上往下找匹配的字符串
    ?字符串   从下往上找匹配的字符串
    n        继续查找
    1,$s/旧串/新串/g   替换全文(或者  %s/旧串/新串/g)
                      (1表示从第一行开始)    没有g则只替换一次,加g替换所有

4、存盘和退出
     w            存盘
     w newfile    存成新文件
     wq           存盘再退出VI(或者ZZ或 X)
     q!           强行退出不存盘

查看用户
id 显示用户有效的uid(用户字)和gid(组名)
    用法 id [-ap] [user]
    id 显示自己的uid和gid。
    id root 显示root的uid和gid。
    id -a root 显示用户所在组的所有组名(如root用户,是所有组的组员)

users      显示在线用户(仅显示用户名)。当前系统由哪些用户登录了
who        显示在线用户,但比users更详细,包括用户名、终端号、登录时间、IP地址。
 who am i  仅显示自己,(但包括用户名、端口、登录时间、IP地址;信息量=who)。
 whoami    也仅显示自己,但只有用户名(仅显示自己的有效的用户名)。
w          显示比who更多内容,还包括闲置时间、占CPU、平均占用CPU、执行命令。
           用法 w [ -hlsuw ] [ 用户 ]
whereis    查询命令所在目录以及帮助文档所在目录
           如: whereis bin   显示bin所在的目录,将显示为: /usr/local/bin
which      查询该命令所在目录(类似whereis)

su         改变用户,需再输入密码。在不退出登陆的情况下,切换到另外一个人的身份
           用法  su [-] [ username [ arg ... ] ]
 su -      相当于退出再重新登录。
           su -l 用户名(如果用户名缺省,则切换到root状态;将提示输入密码)

    分配root用户管理权限的方法:
           刚开始往往不知道root的密码,需要先为root设置一个密码: $ sudo passwd root
           之后会提示要输入root用户的密码,连续输入root密码,再使用:$ su
           就可以切换成超级管理员用户登陆了!

查找
find   查找文件(文件或者目录名以及权限属主等匹配搜索)
    用法 find  [-H | -L] 路径列表 谓词列表
    精确匹配: find . –name file1
 模糊匹配: find . –name “file*”  # 使用通配符要用双引号
 -name     按文件名查找
 -mtime 10 修改时间距今10天那天的文件,-10表10天以内,+10表超过10天的(10天前的)
 -user 0   表userid=0的文件,即root的文件 (按用户查找)。如: find / -user 0 # 显示所有root用户的文件
 -size +400 表文件大小超过400个blok,一个blok是512字节的文件,即200K
 -print    打印
 -perm 777 权限是777的文件 (按文件权限查找)
 -type f   只查普通文件,(按文件类型查找)
 -atime +365 访问时间超过一年的 (按访问时间查找)
 -exec rm {} 执行删除操作,{}表示将前面的结果作为rm的参数
 如:
    find / -name perl 从根目录开始查找名为perl的文件。
    find . -mtime 10 -print 从当前目录查找距离现在10天时修改的文件,显示在屏幕上。
           (注 “10”表示第10天的时候;如果是“+10”表示10天以外的范围;“-10”表示10天以内的范围。)

finger 可以让使用者查询一些其他使用者的资料
       如:finger     查看所用用户的使用资料
    finger root   查看root的资料

grep 文件中查找字符;有过滤功能,只列出想要的内容
    用法  grep -hblcnsviw 模式 文件 . . .
 -v  寻找所有不匹配字符串的行
 -?   同时显示匹配行上下的?行,如:grep -2 pattern filename # 同时显示匹配行的上下2行。
 -b,--byte-offset            打印匹配行前面打印该行所在的块号码。
 -c, --count                  只打印匹配的行数,不显示匹配的内容。
 -f File,--file=File         从文件中提取模板。空文件中包含0个模板,所以什么都不匹配。
 -h,--no-filename            当搜索多个文件时,不显示匹配文件名前缀。
 -i,--ignore-case            忽略大小写差别。
 -q,--quiet                  取消显示,只返回退出状态。0则表示找到了匹配的行。
 -l,--files-with-matches     打印匹配模板的文件清单。
 -L,--files-without-match    打印不匹配模板的文件清单。
 -n,--line-number            在匹配的行前面打印行号。
 -s,--silent                 不显示关于不存在或者无法读取文件的错误信息。
 -v,--revert-match           反检索,只显示不匹配的行。
 -w,--word-regexp            如果被\<和\>引用,就把表达式做为一个单词搜索。
 -V,--version                显示软件版本信息。

    如 grep abc /etc/passwd  在passwd文件下找abc字符
 grep success *           # 查找当前目录下面所有文件里面含有success字符的文件
    grep -ins -r "文件内容" *   # 查找文件(进入到文件里面,查询包含此内容的文件)

wc 对单词进行统计
    -l 统计行数
    -w 统计单词数
    -c 统计字符数
    如  grep wang /etc/passwd|wc -l   # 统计passwd文件含“wang”的行数
    who | wc -l  # 当前登陆的用户数
    wc -l /etc/passwd # 当前注册的用户数

du 统计磁盘容量
    用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [文件...]
 df -k 是对文件系统进行统计
 du 单位是512字节
 du -k 单位是K,即1024字节
    du -s blog
    如: du -sk *   # 不加-s会显示子目录,-k按千字节排序

进程管理
ps 显示进程。
    ps 命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等.
    用法 ps [ -aAdeflcjLPyZ ] [ -o 格式 ] [ -t 项列表 ]
    [ -u 用户列表 ] [ -U 用户列表 ] [ -G 组列表 ]
    [ -p 进程列表 ] [ -g 程序组列表 ] [ -s 标识符列表 ] [ -z 区域列表 ]
    ps 显示自己的进程。
     -e  显示所有进程、环境变量,包括空闲进程。
     -f  显示详情(全格式)。
     -ef 组合-e和-f,所有进程的详情。
     -U  uidlist(用户列表) 具体查看某人的进程。
     -l  长格式
     -w  宽输出
     a   显示终端上的所有进程,包括其他用户地进程
     r   只显示正在运行的进程
     x   显示没有控制终端的进程
     h  不显示标题
     --help 显示帮助信息.
     --version 显示该命令地版本信息.

    列表含义: PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)、COMMAND(该进程的命令行输入)、%CPU(cpu占用率)、%MEM(内存占用空间)

    例如,查看进程:
    ps aux | grep java  # 表示查看所有进程里CMD是java的进程信息; grep 是搜索, aux 显示所有状态
    ps -ef | grep 进程名 | wc -l # 显示共有多个这样的进程,显示一个int数字

kill  可以杀死某个正在进行或者已经是dest状态的进程
    用法:  kill [信号代码] 进程ID
    如:  kill -9 [进程PID]  #-9表示强迫进程立即停止
    通常用ps 查看进程PID ,用kill命令终止进程

   常用控制进程的方法:
    kill -STOP [pid]   # 发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
    kill -CONT [pid]   # 发送SIGCONT (19,18,25)重新开始一个停止的进程。
    kill -KILL [pid]   # 发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
    kill -9 -1         # 终止你拥有的全部进程。

killall  通过程序的名字,直接杀死所有进程
    用法: killall 正在运行的程序名 # 该命令可以使用 -9 参数来强制杀死进程
    格式: killall [-egiqvw] [-signal] name ...
    如果命令名包括斜杠 (/), 那么执行该特定文件的进程将被杀掉, 这与进程名无关。
    如果对于所列命令无进程可杀, 那么 killall 会返回非零值. 如果对于每条命令至少杀死了一个进程, killall 返回 0。
    killall 进程决不会杀死自己 (但是可以杀死其它 killall 进程)。

   PTIONS (选项)
    -e  对于很长的名字, 要求准确匹配. 如果一个命令名长于 15 个字符, 则可能不能用整个名字 (溢出了).
        在这种情况下, killall 会杀死所有匹配名字前 15 个字符的所有进程. 有了 -e 选项,这样的记录将忽略.
        如果同时指定了 -v 选项, killall 会针对每个忽略的记录打印一条消息。
    -g  杀死属于该进程组的进程. kill 信号给每个组只发送一次, 即使同一进程组中包含多个进程。
    -i  交互方式,在杀死进程之前征求确认信息。
    -l  列出所有已知的信号名。
    -q  如果没有进程杀死, 不会提出抱怨。
    -v  报告信号是否成功发送。
    -V  显示版本信息。
    -w  等待所有杀的进程死去. killall 会每秒检查一次是否任何被杀的进程仍然存在, 仅当都死光后才返回.
        注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待。

yes      - 在被终止前反复打印字符
signal   - 可用信号列表
ps       - 报告当前进程的快照
kill     - 向一个进程发出信号
pkill    - 通过程序的名字,直接杀死所有进程
           用法: pkill 正在运行的程序名
skill    - 发送一个信号或者报告进程状态
xkill    - 杀死桌面图形界面的程序
           应用情形实例: firefox出现崩溃不能退出时,运行xkill,哪个图形程序崩溃一点就OK了。
           如果您想终止xkill ,就按右键取消;
           调用方法:  xkill

 

软件安装
    在ubuntu上的软件安装,有方便的方式,使用 apt
    sudo apt-get install openjdk-6-jdk # 安装 jdk

sleep

passwd 可以设置口令

history 用户用过的命令
        如: history  可以显示用户过去使用的命令

jobs
    用法  jobs [-l ]
fg %n
bg %n
stop %n 挂起(仅csh能用)
Ctrl+C
Ctrl+Z

网络链接
ping
    usage  ping host [timeout]
    usage  ping -s [-l | U] [adLnRrv] [-A addr_family] [-c traffic_class] [-g gateway [-g gateway ...]] [-F flow_label] [-I interval] [-i interface] [-P tos] [-p port] [-t ttl] host [data_size] [npackets]

ifconfig -a
     /sbin/ifconfig    查看本机的IP地址 (windows 上用 ipconfig)

netstat -rn

rlogin

ftp

mount 加载一个硬件设备
      用法:mount [参数] 要加载的设备 载入点
      如: mount /dev/cdrom
      cd /mnt/cdrom  //进入光盘目录

    # 挂载到别人机上
    sudo mount //192.168.1.137/PythonProject/led /home/holemar/program/led -o iocharset=utf8 -o programrname="zxp",pa==
    sudo mount //192.168.1.101/Holemar/1.notes /home/holemar/program/notes -o iocharset=utf8 -o programrname="holemar",password="123"

    Mount挂载命令使用方法
    语法: mount -t 类型 -o 挂接方式 源路径 目标路径
    -t 详细选项:
          光盘或光盘镜像:iso9660
          DOS fat16文件系统:msdos
          Windows 9x fat32文件系统:vfat
          Windows NT ntfs文件系统:ntfs
          Mount Windows文件网络共享:smbfs(需内核支持)推荐cifs
          UNIX(LINUX) 文件网络共享:nfs
    -o 详细选项:
         loop :用来把一个文件当成硬盘分区挂接上系统
         ro :采用只读方式挂接设备
         rw :采用读写方式挂接设备
         iocharset :指定访问文件系统所用字符集,例如iocharset=utf8
         remount :重新挂载
    使用实例:
        挂载windows文件共享:
          mount -t smbfs -o username=admin,password=888888 //192.168.1.2/c$ /mnt/samba
          mount -t cifs -o username=xxx,password=xxx //IP/sharename /mnt/dirname
        挂载Linux文件nfs共享:
          mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www
        挂载ISO镜像:
          mount -o loop -t iso9660 /usr/mydisk.iso /home/ping.bao/cd
        挂载USB移动硬盘:
          mount -t ntfs /dev/sdc1 /root/usb
        挂载CDROM:
          mount /dev/cdrom /home/ping.bao/cd
        取消挂载:
          umount /dev/cdrom /home/ping.bao/cd
        单用户模式重新挂载根分区:
          mount -o remount,rw /

修改用户名
    sudo usermod -l new_name old_name
    注意: 不允许在当前用户下修改当前用户的名字。应该注销要修改的用户,用别的用户登录,然后执行命令。

压缩
tar 解压命令
    tar -zxvf nmap-3.45.tgz    将这个解压到nmap-3.45这个目录里

 

查看系统信息
    uname [选项]...
    输出一组系统信息。如果不跟随选项,则视为只附加-s 选项。

      -a, --all   以如下次序输出所有信息。其中若-p 和 -i 的探测结果不可知则被省略。
                        如: Linux holemar 2.6.38-11-generic #48-Ubuntu SMP Fri Jul 29 19:05:14 UTC 2011 i686 i686 i386 GNU/Linux
      -s, --kernel-name  输出内核名称。如:  Linux
      -n, --nodename  输出网络节点上的主机名。如:  holemar
      -r, --kernel-release  输出内核发行号。如:  2.6.38-11-generic
      -v, --kernel-version  输出内核版本。 如:  #48-Ubuntu SMP Fri Jul 29 19:05:14 UTC 2011
      -m, --machine  输出主机的硬件架构名称。 如:  i686
      -p, --processor  输出处理器类型或"unknown"。 如:  686
      -i, --hardware-platform 输出硬件平台或"unknown"。 如:  i386
      -o, --operating-system 输出操作系统名称。 如:  GNU/Linux
          --help  显示此帮助信息并退出。
          --version  显示版本信息并退出。

nohup
    用nohup命令让Linux下程序永远在后台执行
  用途:不挂断地运行命令。
  语法:nohup Command [ Arg ... ] [ & ]
  描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。
          在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示"and"的符号)到命令的尾部。
    如: nohup python ~/projects/ppf/service/run.py &  # 后台执行,且输出到执行程序同目录下的 nohup.out 文件中

    注: 在当shell中提示了nohup成功后还需要按回车键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;
         而在nohup执行成功后直接点关闭程序按钮关闭终端,会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。
    指定输出文件: nohup command > myout.file 2>&1 &

关机命令
    shutdown    安全地将系统关机。
   [-t] 在改变到其它runlevel之前,告诉init多久以后关机。指定的范围为 0 - 600 秒。如: shutdown -t 100 将在100秒后关机
   [-r] 重启计算器。如: shutdown -r 5  系统将关机,且在5分钟后重启。
   [-k] 并不真正关机,只是送警告信号给每位登录者〔login〕。
   [-h] 关机后关闭电源〔halt〕。
   [-n] 不用init,而是自己来关机。不鼓励使用这个选项,而且该选项所产生的后果往往不总是你所预期得到的。
   [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
   [-f] 在重启计算器〔reboot〕时忽略fsck。
   [-F] 在重启计算器〔reboot〕时强迫fsck。
   [-time] 设定关机〔shutdown〕前的时间。

    halt    最简单的关机命令
   其实halt就是调用shutdown -h。halt执行时,杀死应用进程,执行sync系统调用,文件系统写操作完成后就会停止内核。
   [-n] 防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
   [-w] 并不是真正的重启或关机,只是写wtmp〔/var/log/wtmp〕纪录。
   [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
   [-f] 没有调用shutdown而强制关机或重启。
   [-i] 关机〔或重启〕前,关掉所有的网络接口。
   [-p] 该选项为缺省选项。就是关机时调用poweroff。

    reboot
     reboot的工作过程差不多跟halt一样,不过它是引发主机重启,而halt是关机。它的参数与halt相差不多。

    init
     init是所有进程的祖先,它的进程号始终为1,所以发送TERM信号给init会终止所有的用户进程、守护进程等。shutdown 就是使用这种机制。
     init定义了8个运行级别(runlevel),init 0为关机,init 1为重启。关于init可以长篇大论,这里就不再叙述。
     另外还有telinit命令可以改变init的运行级别,比如,telinit -iS可使系统进入单用户模式,并且得不到使用shutdown时的信息和等待时间。

    poweroff    部分泛UNIX/LINUX系统才支持,红旗LINUX亦适用。
     其实是 halt -p 命令。

如果执行一个 sh 文件
    方法一(在ubuntu下的):
        cd sh文件的目录
        ./名称.sh   # 执行此文件
    方法二:
        sh 目录/名称.sh

10 个最酷的 Linux 单行命令
    1. sudo !!
       以 root 帐户执行上一条命令。

    2. python -m SimpleHTTPServer
       利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问。

    3. :w !sudo tee %
       在 Vim 中无需权限保存编辑的文件。

    4. cd -
       更改到上一次访问的目录。

    5. ^foo^bar
       将上一条命令中的 foo 替换为 bar,并执行。

    6. cp filename{,.bak}
       快速备份或复制文件。

    7. mtr google.com
       traceroute + ping。

    8. !whatever:p
       搜索命令历史,但不执行。

    9. $ssh-copy-id user@host
       将 ssh keys 复制到 user@host 以启用无密码 SSH 登录。

    10. ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
        把 Linux 桌面录制为视频。

 

【上篇】
【下篇】

抱歉!评论已关闭.