首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

Unix常用命令总结

2012-08-10 
Unix常用命令小结大项目一般都是使用Unix,是因为它的稳定性,而C\C++不能在Unix运行,所以说Java的发展前景

Unix常用命令小结
大项目一般都是使用Unix,是因为它的稳定性,而C\C++不能在Unix运行,所以说Java的发展前景相对好。Unix是用C写的。

**对有特殊字符的文件名进行各种操作,需要用‘’把它括起。   如‘*.txt’

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

常用命令:

一、特殊字符含义
    文件名以“.”开头的都是隐藏文件/目录,只需在文件/目录名前加“.”就可隐藏它。
    ~        表示主目录。   
    .        当前目录(一个点)。   
    ..       上一级目录(两个点)。
    ;        多个命令一起用。
    >  >>    输出重定向    追加输出重定向。        
    <  <<    输入重定向    追加输入重定向。
    *        匹配零个或者多个字符。
    ?        匹配一个字符。
    []       匹配中括号里的内容[a-z][A-Z][0-9]。
    !       事件。
    $        取环境变量的值。
    |        管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。
            |经常跟tee连用,tee 把内容保存到文档并显示出来。

二、目录管理命令
pwd   显示当前所在目录,打印当前目录的绝对路径。
cd    进入某目录,DOS内部命令 显示或改变当前目录。
      cd回车 /cd ~      都是回到自己的主目录。
      cd ..           回到上一级目录(空格再加两个点)。    cd ../..  向上两级。
    
ls    显示当前目录的所有目录和文件。
      用法  ls
      ls -l      (list)列表显示文件(默认按文件名排序),
                 显示文件的权限、硬链接数(即包含文件数,普通文件是1,目录1+)、用户、组名、大小、修改
                 日期、文件名。
      ls -a      显示所有文件,包括隐藏文件。
      ls -t      (time)按修改时间排序,显示目录和文件。
      ls -lt     是“-l”和“-t”的组合,按时间顺序显示列表。
      ls -F      显示文件类型,目录“/ ”结尾;可执行文件“*”结尾;文本文件(none),没有结尾。
      ls -R      递归显示目录结构。即该目录下的文件和各个副目录下的文件都一一显示。
      可累用 如:ls -a -l

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

chmod  更改权限; chmod 777  file_name
    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 777( 用数字的方式设置权限是最常用的)
  
    另外,临时文件/目录的权限为rwt,可写却不可删,关机后自动删除;建临时目录:chmod 777 目录名,再chmod +t 目录名。

id 显示用户有效的uid(用户字)和gid(组名)
    用法 id [-ap] [user]
    id 显示自己的。
    id root 显示root的。
    id -a root 显示用户所在组的所有组名(如root用户,是所有组的组员)
   
df 查看文件系统,查看数据区
    df -k   以kbytes显示文件大小的查看文件系统方式

du 查看目录情况
    用法 du [-a] [-d] [-h|-k] [-r] [-o|-s] [-H|-L] [文件...]
    -s占用的数据块总数,-k按千字节排序 -a 显示指定目录中各文件及子孙目录中各文件占用的数据块数
   
    如 du -s . 当前目录的数据块数  du -a 当前目录及子孙目录占用的数据块 du -s * 所有目录


三、显示文件内容
more  分屏显示文件的内容。
      用法   more file_name
     分屏显示的中途操作
      空格<space>       继续打开下一屏;
      回车<return>      继续打开下一行;
      b                另外开上一屏;
      f                另外开下一屏;
      h                帮助;
      q或Ctrl+C        退出;
      /字符串           从上往下查找匹配的字符串;
      ?字符串          从下往上查找匹配的字符串;
      n                继续查找。
     
      在cygwim中没有more命令,是用less,可以在.bashrc文件中添加alias more='less' 即可用more
    
cat   显示文件内容,不分屏(一般用在小文件,大文件显示不下);合并文件,仅在屏幕上合并,并不改变原文件

head/tail  实时监控文件,一般用在日志文件,可以只看其中的几行。
      head -n file_name  显示指定文件的前N行     tail -n file_name 显示后N行  没选项则全显示
      sed -n ‘2,5p’ file_name  显示文件的2-5行  其中的 n p是固定格式
      head -5 hello  显示hello文件前5行     tail -5 hello  显示后5行
      head -2 hello test.java 分别显示两个文件前2行
     

四、文件/目录的增删
echo  显示一行内容。 如 echo $PATH

touch 如果文件/目录不存在,则创建新文件/目录;如果文件存在,那么就是更新该文件的最后访问时间,
     
mkdir 创建目录(必须有创建目录的权限)
      用法 mkdir [-m 模式] [-p] dirname ...
      mkdir dir1/dir2          在dir1下建dir2  dir1必须存在,否则要 -p
      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 -i beans apple      增加是否覆盖的提示

mv 移动或重命名文件/目录
   
    mv 源文件名 目标文件名   若目标文件名还没有,则是源文件重命名为目标文件;若目标文件已存在,则源文件覆盖目标文件。
    mv 源文件名 目标目录     移动文件
    mv 源目录 目标目录      若目标目录不存在,则源目录重命名;若目标目录已存在,则源目录移动到目标目录下。

rm  删除文件/目录

    rm 文件名     删除文件。
    rm -r 目录名  删除目录。
    rm –f 文件   只要是该文件或者目录的拥有者,无论是否有权限删除,都可以用这个命令参数强行删除。
    rmdir 删除空目录。只可以删除空目录。

ln 创建硬链接或软链接,硬链接=同一文件的多个名字;软链接=快捷方式

    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 [ [月] 年 ]

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

clear   清屏,清除(之前的内容并未删除,只是没看到,拉回上面可以看回)。

七、帮助
   man 帮助
   如 man date   按 q 退出

八、vi
   
vi 的使用方法

:(冒号)命令模式切换为低行模式
Esc键 从低行模式或者输入模式切换到命令模式

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

2、光标    h 左    j 下        k 上    l 右
    低行模式下 :set nu 显示行号(不显示 set nonu)   :5  光标到5行位置
   
    命令模式下:
    H               屏幕头
    M               屏幕中间
    L               屏幕底
    ^ (shift+6)     行首
    $ (shift+4)     行尾
    Ctrl+f          下翻
    Ctrl+b          上翻   

3、修改替换
    r        替换一个字符
    dd       删除行,剪切行   
             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        全文替换
                      (1表示从第一行开始)    没有g则只替换一次,加g替换所有

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

查看用户
users      显示在线用户(仅显示用户名)。
who        显示在线用户,但比users更详细,包括用户名、终端号、登录时间、IP地址。
who am i  仅显示自己,(但包括用户名、端口、登录时间、IP地址;信息量=who)。
whoami    也仅显示自己,但只有用户名(仅显示自己的有效的用户名)。
w          显示比who更多内容,还包括闲置时间、占CPU、平均占用CPU、执行命令。
           用法 w [ -hlsuw ] [ 用户 ]

su         改变用户,需再输入密码。
           用法  su [-] [ username [ arg ... ] ]
su -      相当于退出再重新登录。

passwd:修改用户密码,要求6-8字符,只要有两个文字字符和一个数字或特殊字符,新设置的密码至少要与
原来密码有三处不同。

查找
find   查找文件
    用法 find  [-H | -L] 路径列表 谓词列表
    find / -name perl 从根目录开始查找名为perl的文件。
    find . -mtime 10 -print 从当前目录开始查找距离现在10天时修改的文件,显示在屏幕上。
           (注 “10”表示第10天的时候;如果是“+10”表示10天以外的范围;“-10”表示10天以内的范围。)
    find  . -name h?llo  查找hello/hollo 之类的文件  ?:匹配一个字符   
   
    find . –name ‘*.txt’ –exec rm {} \;  在当前目录查找并删除含‘*.txt’的文件        

grep 文件中查找字符
    用法  grep -hblcnsviw 模式 文件 . . .
    如 grep abc /etc/passwd  在passwd文件下找abc字符,打印其所在行所有内容
    ls -l | grep -v hello  显示除了包含有 hello 字符的所有文件  -v的作用,排除  -i 忽略大小写
   
wc 统计
    -l 统计行数;  -w 统计单词数;   -c 统计字符数
    如  grep wang /etc/passwd|wc -l    统计passwd文件含“wang”的行数

进程管理
ps 显示进程。
    用法 ps [ -aAdeflcjLPyZ ] [ -o 格式 ] [ -t 项列表 ]
    [ -u 用户列表 ] [ -U 用户列表 ] [ -G 组列表 ]
    [ -p 进程列表 ] [ -g 程序组列表 ] [ -s 标识符列表 ] [ -z 区域列表 ]
    ps 显示自己的进程。
     ps -e 显示每个进程,包括空闲进程。同 ps -a
    ps -f 显示详情。
     ps -ef 组合-e和-f,所有进程的详情。
     ps -U uidlist(用户列表) 具体查看某人的进程。 ps -p pidlist 如 ps -p 1020 3021

kill [-singal]  pid    -singal:可以省略,我们常用的信号代码是 -9 ,表示强制终止;
pkill  -- 和killall一样,多用于杀除多个进程
   [root@localhost beinan]# pgrep -l gaim
   2979 gaim 条
   [root@localhost beinan]# pkill gaim   全杀

sleep -- 使得shell暂停运行一段时间  如 sleep 10   暂停10秒 
         sleep  NUMBER[suffix]    suffix :s(秒) m(分) h(时)  d(天)

jobs
    用法  jobs [-l ]  显示当前shell下正在运行的后台作业
   
bg %  把前台作业移到后台 
fg %  把后台作业移到前台
stop %n 挂起(仅csh能用)


网络链接
ping
      ping host [timeout]

ipconfig   查看网路地址    finger user查看user用户的网路信息


环境变量
(1)env  打印系统的环境变量
(2)如果没设置好环境变量,要想执行命令,可用绝对路径来执行:
/user/student/……/命令
(3)查看变量 echo  $变量名
(4)在bash中,可以在 .bash_profile中修改环境变量
   在csh中,可以在 .cshrc中修改
(5)PATH=..:..:..:..   冒号
   PATH=$PATH:/user/opt/.. 在原有的基础上加上/user/opt/..这个路径
 
  CHINA=good     export CHINA    把变量设置为环境变量 
  export CHINA=good              bash特有的,可以直接设为环境变量
  unset CHINA   去掉环境变量

(6)在csh中
全局变量 setenv CHINA  good        unsetenv CHINA
局部变量 set CHINA=good            unset CHINA

write user 给user发信息   wall 发广播
mesg –n 拒收信息   mesg –y 接收信息

热点排行