• shell 常用命令


    Terminal是Mac OS X系统中的字符控制界面,可以更灵活地控制苹果电脑
    以下看到 “>“ 就是打指令的地方,prompt,指令列
    >pwd
    列出路径
    >ls
    列出此档案夹里所有的东西
    >l
    列出使档案夹里所有的东西以及它的权限
    >cd
    无论身在何处,回到home 档案夹
    >cd snoopy
    进入到叫snoopy 的档案夹
    >cd ..
    回到上一层档案夹
    >mkdir kitty
    制作档案夹叫kitty- make directory
    >touch girl
    制作一个叫girl 的档案
    >rmdir
    丢掉“档案夹“- remove directory
    >rm micky
    将micky 这一个 “档案“ 丢掉
    >mv kitty snoopy
    如果你所在的档案夹里没有叫snoopy 的档案夹那会将kitty 更名为snoopy
    如果你所在的档案夹里有叫snoopy 的档案夹那会将kitty 一到snoopy 这个档案里
    >mv simpson ../
    将simpson 这个档案移到上一层
    >cp Desktop/garfield .
    将Desktop 这个档夹里的garfield 这个档案拷贝到你现在所在的档案夹
    可以将“.“改成你想要的档夹
    >man cp
    列出cp 这个指令的介绍,用法 (现在有许多GUI 的软件,提供此服务)
    >cat snoopy
    显示出snoopy 这个“档案“的内容
    >more snoopy
    一样可以显示出snoopy 这个档案的内容
    >less snoopy
    一样可以显示出snoopy 这个档案的内容,过可以使用下面这一些指令
    空格键 : 到下一页
    b:到上一页
    q:离开
    上下左右键的上键:往上一行
    上下左右键的下键:往下一行
    >tail /var/log/httpd/access_log
    观看记录文件最后十行(这理是http 的access_log 这个记录文件)
    >wget www.laushu.idv.tw/hi.sit
    下载网络上www.laushu.idv.tw/hi.sit 这一个档
    >telnet 216.170.128.9
    telnet 到216.170.128.9
    >ssh 216.170.128.9
    ssh 到216.170.128.9
    >ftp 216.170.128.9
    ftp 到216.170.128.9 (在ftp 的 状态下还有很多指令可以用,这里不一一解释)
    >login mummy
    以mummy 的身分使用Terminal
    >make
    编译原始码
    >sudo make install
    安装软件
    >su
    使用root (必须先在NetInfo Manager 里设定使定密码启动)
    >vi
    >emacs
    vi 及emacs 是Terminal 所附有的文字编辑器,不要以为它跟Word 一样,那你就错了,这是个完全没有GUI 的环境,甚至连如何储存离开等常用的指令,你都必须很神奇的自己知道,不然就没辄了。
    ctrl + d
    告诉计算机你已经结束输入指令
    ctrl + z
    停止程序的执行并回到 指令列,使用Terminal 软件当机的时候很好用
    更多指令:
    1.man用来介绍系统各种命令的详细用法。
    格式:man command
    command 为系统能接受的命令。
    %man man
    %man pwd
    2.who/w查询目前进入系统的使用者。
    %who
    %whoami
    %who am i
    %w
    3.finger查询目前进入系统的使用者。
    %finger u8442019
    4.date显示现在之年、月、日、时间及星期。
    %date
    Wed Oct 13 12:31:39 CST 1999
    5.quota使用者可使用之磁盘空间(Kbyte)及档案个数查询。
    Example:
    %quota -v u8442019
    Filesystem usage quota limit timeleft files quota limit imeleft
    /autohome/mail
    3 2000 2000 1 0 0
    6.du显示每一个档案或目录所占的block数。
    格式:du [option] [dirname]
    Option: -s 仅显示使用block 数的总和
    Example:
    %du
    %du -s ~
    7.last为印出进出系统使用人次情形
    %last |more
    %last |grep reboot|more
    8.chfn/passwd -r nis –g(solaris) 更改finger name。
    %chfn
    9.alias 将命令用一别名取代。
    格式:alias alias_name command
    examples:
    %alias copy 'cp -i'
    %copy
    unalias 取消alias的设定。
    格式:unalias alias_name
    examples:
    %unalias copy
    网络侦错指令
    1.nslookup
    格式:nslookup 网站
    examples:
    %nslookup bbs.ccu.edu.tw
    2.ping
    格式:ping 网站
    examples:
    %ping bbs.ccu.edu.tw
    3.traceroute 网站
    格式:traceroute 网站
    examples:
    %traceroute bbs.ccu.edu.tw
    档案(目录)的操作
    1.pwd列出现在的工作目录。
    %pwd
    2.ls列出目录内的文件名称。
    格式:ls [options] [directory] [file]
    options:
    -a 印出全部的档案。
    -l 列出档名外,并加上各种信息。
    -F 加此参数则会在目录文件后加上/,执行文件后加上*,链接文件后加上@,其余为一般档案。
    -g 列出档案的所属群体名称。
    -t 列出的档名依日期排序,若没指定则依档名排序。
    examples:
    %ls
    %ls –lg
    %ls -lg
    total 4
    drwxr-xr-x 3 huang center 2048 Oct 14 10:30 bin
    -rwxr-xr-x 1 huang center 233 Sep 11 09:38 letter
    %
    第一行total 4 表示bin,letter 所占的内存容量(以block为单位)
    有关每个目录、档案的信息,说明如下:
    - rwxr-xr-x 1 huang center 233 Sep 11 09:38 letter
    - ----------- --- --------- --------- ------ ---------------- ---------
    1 2 3 4 5 6 7 8
    (1)档案型态
    - 表一般档案。
    d 表目录。
    l 表链接档案。
    c 表字符式特殊档案。
    b 表区块式特殊档案。
    (2)使用权:表示谁有权去读取及使用此档案,从左至右3字符为一组,分成自己、群体及其它三部份,其中
    r 表读取。
    w 表写入。
    x 表执行。
    (- 表对应项目的动作不被执行。)
    (3)链接次数:是指链接至该文件的数目,以目录而言,表示在档案系统中的目录个数。
    (4)档案拥有者:该档的拥有者。
    (5)档案所属群体:该档的所属群体。
    (6)字符个数:即档案大小,以位(byte)为单位。
    (7)最后一次修改的日期与时间:为档案最后一次修改的日期与时间。
    (8)文件名称。
    3.mkdir建立目录。
    格式:mkdir directory1 [directory2 ...]
    %mkdir dir1 dir2
    4.cd改变目前的工作目录。
    格式:cd [directory]
    %cd dir1
    5.rmdir
    6.mv移动或更改文件名称。
    格式:
    mv [options] oldfile newfile
    mv [options] olddir newdir
    options:
    -i 可避免覆盖原有的档案。
    -f 强制覆盖原有的档案。
    examples:
    %mv file1 file2
    %mv -i file2 file2
    %mv -f file2 file3
    7.touch 开启一个空的档案
    格式:
    %touch file1 file2 ……
    8.cp复制档案。
    格式:
    cp [options] file1 file2
    cp [options] dir1 dir2
    cp [options] file directory
    options:
    -i 可避免覆盖原有的档案。
    -r 拷备目录及其下所有档案、子目录。
    examples:
    %cp file1 file2
    %cp file1 dir1
    %cp -r dir1 dir2
    9.rm删除档案。
    格式:rm [options] file1 file2 file3 ...
    options:
    -i 删除档案前会先询问。
    -f 强制删除档案。
    -r 删除目录及其下所有档案、子目录。
    examples:
    %rm file1 file2 file3
    %rm -rf dir1
    *用rm 删除的档案将永久的被删除,救不回来。
    10.chmod更改档案使用权。
    格式:chmod mode filename ...
    mode 有两种表示法:
    .绝对模式以八进制数字表示。
    400 即r-- --- --- (100 000 000)仅档案拥有者可读取。
    777 即rwx rwx rwx (111 111 111)任何人都可对该档做 读取、写入、执行等动作。
    700 即rwx --- --- (111 000 000)仅档案拥有者可读取 写入、执行。
    .符号模式 其格式如下:
    [who] op permission [op permission] ...
    who 可以是:
    u 档案拥有者的存取权。
    g 档案所属群体的存取权。
    o 其它使用者的存取权。
    a 全部使用者的存取权。
    *如果省略此参数,则默认值为a。
    op 可以是
    + 开放存取权。
    - 取消存取权。
    = 设定存取权。
    permission 可以是
    r 读取权。
    w 写入权。
    x 执行权。
    examples:
    %chmod o-w file 开放file写入权给其它使用者。
    %chmod 700 file 仅档案拥有者可对file做读取、写入、 执行的动作。
    11.cat显示档案内容,类似于DOS 的type。
    格式:cat [options] filename
    options:
    -n 产生行号。
    -s 档案中连续空白行,仅输出一行。
    examples:
    %cat -n file1
    %cat -s file2
    12.more显示档案内容, 每次仅显示一个屏幕之档案内容。
    格式:more [options] filename
    options:
    +line number 从第n行开始显示。
    +/pattern 从含有pattern的前两行开始显示。
    -d 设定打印行数。
    在more中常用之指令如下:
    space 键 往下卷动一个屏幕。
    enter 键 往下卷动一行,键入数字后,再按enter可向下卷动指定之行数。
    q 键 停止输出。
    %more -d20 more.man 一次显示20行。
    %more +50 more.man 从第50行开始显示。
    %more +/terminal more.man 从含有terminal的前两行开始显示。
    13.grep从某一档案中,找出符合条件的数据列。
    格式:grep [option] pattern filename
    Option:
    -c 只显示符合条件的列数。
    -i 忽略大小写。
    -n 显示时加行号。
    -v 显示不符合条件的列资料。
    -w 将pattern视为一个字(Word)来处理。
    %ps -aux |grep elm 找出process中,含有elm字眼的process。
    %grep -n meeting * 在目前目录下,找出含有meeting字眼的档案并列出是在该档的第几行。
    %grep -w '952 console' joe1
    grep的一些应用:
    (1)%grep 'thing' file1 列出该行中含有thing字眼的料,该行可能含有thing, things or somethings只要含有thing即将其印出。
    (2) %grep 's.nd' file1 “.”可代换为任一字符,只要是以s开头nd结尾的字,都将其印出,Ex: sand or send。
    (3)%grep '[l-s]end' file1 列出以l, m, n...s字符开头, end结束 的数据行, Ex: lend、mend、send。
    (4)%grep '[Mm]end' file1 列出含Mend or mend 的列资料。
    (5)%grep '^some' file1 列出以some为行开头的资料, Ex: someoneor somewhere。
    (6)%grep '!' file1 列出含有!的资料行。
    14.head从文件首开始显示n行数据,默认值为10行。
    格式:head [-n] [file]
    Example:
    %head file1 显示前10行资料。
    %head -20 file1 显示前20行资料。
    15.tail从文件尾向前算起显示n行资料。
    格式:tail [-/+n] [files]
    Option:
    + 从第n行开始显示。
    - 从文件尾向前算起显示n行资料。
    Example:
    %tail -20 file 1
    %history |tail -5
    16.find 寻找档案。
    格式:find path expression
    Option:
    -name filename 如有filename匹配现在文件名称则为真。
    -print 显示文件名称。
    -type d 档案型态d表目录;f表一般档案;c表字符特殊文件 案,b表区域特殊档案。
    -exec command
    -size n
    -user
    Example:
    %find ~ -name '*.c' -print 找出使用者目录底下所有.c的档案。
    %find ~ -size 0 -exec rm {} ;将使用者目录下所有档案大小为0的档案删除。
    %find ~ -type d -print 将使用者目录下所有目录档案列出。
    17.wc 计算档案的列数,字数及字符数。
    格式:wc [option] [filename]
    Option:
    -l 只计算列数(Line)。
    -w 只计算字数(Word)。
    -c 只计算字符数(Character)。
    Example:
    %wc file1
    %who |wc -l
    18.dff比较两个文本文件的差别。
    格式:diff filename1 filename2
    19.sort排序文本文件。
    格式:sort [options] [file]
    Option:
    - 从标准输入读取。
    -b 忽略前置空格。
    -d 按字典顺序,仅字母数字空格才有效。
    -n 以数值来做排序。
    -r reverse反方向顺序排序。
    -o 将output存于下个自变量中指定的档案,否则sort 会将排序结果送到屏幕显示。
    -tc 字段间以字符c来分开。
    +n1[-n2] n 跳过n1个字段,至第n2的字段为止,做排序。
    Example:
    %sort -b +1n file1 跳过1个字段,以第2字段为key sort file1。
    %sort -t: +2n /etc/passwd 以uid(第3字段)为key sort /etc/passwd。
    打印相关之指令
    1.lpr/lp送印指令(HP9000/800 G60 用lp指令)。
    格式:lpr [options] filename ....
    options:
    -Pprinter 指定打印机,若省略此参数,则指预设打印机lp。
    目前中心的列表机有
    lp 系统打印机。
    sp 激光打印机。
    np 激光打印机。
    -m 当档案打印完毕,会送一个讯息给使用者。
    -#n 打印n份。
    examples:
    %lpr file
    %lpr file1 file2 file3
    %man lpr | lpr -m
    %cat file1 file2 | lpr -#3 打印3份
    2.lpq查询printer queue ,当你的档案送印后,可用此指令查询是否送印成功(HP9000/800 G60用lpstat指令)。
    格式:lpq [options]
    options:
    -Pprinter 指定打印机,若省略此参数,则指预设打印机lp。
    examples:
    %lpq 查询系统打印机lp打印情况。
    %lpq -Psp 查询激光打印机sp打印情况
    3.lprm取消已送印的档案(HP9000/800 G60用cancel指令)。
    格式:lprm [options] job#
    options:
    -Pprinter 打印机,若省略此参数,则为预设打印机lp。
    -username 将此user欲打印的档案取消,若省略此参数,则指自己。
    examples:
    %lpq -Psp
    Rank Owner Job Files Total Size
    1st guo 235 file1 38 bytes
    2nd guo 236 file2 38 bytes
    3rd guo 237 file3 300 bytes
    %lprm -Psp 236 237
    4.pr调整文件打印格式,先产生在屏幕,确定无误后再用lpr送打印机打印。
    格式:pr [option] [filename]
    Option:
    -ln 设定页长。
    -n 产生n栏的报表。
    +n 从第n页开始打印。
    -h 下一个参数当报表表头。
    Example:
    %pr -150 -h "THE OUTPUT REPORT" file1
    产生页长为50,表头为"THE OUTPUT REPORT" 的报表。
    过程控制
    1.ps显示目前系统process状况。
    格式:ps [options]
    Option:
    -a 显示全部的process。
    -u 显示process的使用者。
    -l 显示process更多的讯息。
    w 可以把指令行很长的程序颢显示出来,由于屏幕宽度有限,超过部份系统会自动切掉,w愈多显示的长度就愈长。
    Example:
    %ps
    PID TT STAT TIME COMMAND
    12536 P2 S 0:00 -csh(csh)
    12539 P2 TW 0:00 mail huang
    12540 P2 TW 0:00 cat
    12541 P2 TW 0:00 vi
    12549 P2 R 0:00 ps
    说明:
    PID 每一个process的编号。
    TT 终端机编号。
    STAT process目前的状况。
    R running
    T stopped
    I idle
    P page wait
    S sleep
    TIME 使用的CPU的时间。
    %ps -auxww|more
    *在IBM及HP9000/800 G60系统上要用%ps -ef。
    2.指令& 将欲执行的命令(或程序),放到背景作业执行。
    Example:
    %cc myprog.c &
    %who | sort > list &
    *如果在.chrc文件内有set notify的命令,则系统会以[Done]来显示背景作业己执行完毕。
    3.jobs列出在此系统上所有的Background job。
    Example:
    %mail huang
    Ctrl-z
    %cat > file1
    Ctrl-z
    %vi
    Ctrl-z
    %jobs
    [1] Stopped mail huang
    [2] - Running cat > file1
    [3] + Stopped vi
    (1) (2) (3) (4)
    (1) job number 工作代号。
    (2) + 表示current job。
    - 表示next current。
    (3)每个job目前执行的状况。
    (4) job的作业内容。
    4.fg启动被暂停的job,并改为前景作业。
    格式:fg %job_number
    Example:
    %fg 启动current job,改为前景作业。
    %fg %1 启动job1,改为前景作业。
    5.bg启动被暂停的job,并改为背景作业。
    格式:bg %job_number
    Example:
    %bg 启动current job,改为背景作业。
    %bg %1 启动job1,改为背景作业。
    6.stop 暂停一个正在执行的job。
    格式:stop %job_number
    Example:
    %stop %2
    7.kill删除一个job。
    格式:kill %job-number或kill pid
    Example:
    %kill %3
    %kill 8122
    *如果尚无法清除此job,则可则改用以%kill -9取代kill指令。
    %kill -9 8122
    8.at 于特定时间执行某些指令,执行后产生的Standard Output必须自己以输出转向的方式处理,否则看不到结果。
    格式:at [options] time [day] [script]
    Option:
    -m 执行完毕后会送mail给使用者。执行过程中若有错误,则虽未给予此参数,亦会送mail告知使用者。
    time 执行命令的时间,前2位。
    day 执行命令的日期,若省略则指当天。
    script 内含要执行的命令,类似PC的批次档,若省略此参数,则可将命直接在终端机输入,欲结束按Ctrl-d。
    Example:
    %at -m 1040 Aug 20
    at> a.out> output
    Ctrl-d
    %
    说明:在8月20日10点40分,去执行a.out>output的动作,执行完送一封mail给使用者。
    %at -m 1050 scrfile 在10点50分时,去执行scrfile的动作,执行完送一mail给使用者。
    9. atq 查询待行之作业。
    Example:
    %atq
    Rank Execution Date Owner Job# Queue Job Name
    lst Aug 14,1992 17:00 huang 858825600.a a stdin
    10. atrm job# 取消at命令。
    %atrm 858825600.a

    tar [option] file or dir
    tar -xvf zdd.tar 将zdd.tar解压,解压后将产生zdd文件夹,里面包含解压后的文件 x表示解压,v表示输出解压信息,f表示操作普通文件
    tar -cvf tmp.tar tmp 将文件夹tmp打包成tmp.tar
    tar -rvf tmp.tar zzz 将文件zzz追加到tmp.tar中

    zip 压缩
    zip [options] dest_files source
    zip -r9 ~/zdd /home/zdd/* 将目录/home/zdd下的所有文件压缩并放入当前目录下名为zdd。-r表示递归处理文件夹中的文件,9表示最大压缩率。

    unzip 解压缩
    unzip -d ~/zdd zdd.zip 将zdd.zip解压到当前目录下的zdd目录中,-d表示指定解压目录。

  • 相关阅读:
    【Java多线程】Fork/Join 源码分析(三十一)
    【Java多线程】Fork/Join 框架(三十)
    【Java】 Iterator(迭代器)
    【Java多线程】ScheduledThreadPoolExecutor实现原理(二十九)
    【Java多线程】ScheduledThreadPoolExecutor详解(二十八)
    【Java多线程】Executor框架 (二十七)
    【Python基础编程252 ● 包 ● 使用import 包名 as 别名 语句导包】
    【Python基础编程251 ● 包 ● 使用from 包名 import * 语句导包】
    【Python基础编程250 ● 包 ● 导包的方式】
    【Python基础编程249 ● 包 ● 包的基本概念、作用和命名规则】
  • 原文地址:https://www.cnblogs.com/zhxhdean/p/4654220.html
Copyright © 2020-2023  润新知