精华内容
参与话题
问答
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root ...
  • shell 命令行在正则表达式中的区别 Linux 正则表达式 你有没有想过,在 shell 命令行中的 ,?和正则表达式中的,?是否一样?自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir . 这样的...

    转自:http://www.cnblogs.com/xiaomiganfan/p/5398072.html
    * 和 ?在 shell 命令行中与在正则表达式中的区别
    Linux 正则表达式
    你有没有想过,在 shell 命令行中的 ,?和正则表达式中的,?是否一样?

    自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir . 这样的命令也不知道敲了多少遍。

    后来,开始用 Windows 3.1 这样的图形界面操作系统,命令行就就得越来越少了。

    再后来,开始学习正则表达式,又开始接触 * 和 ? 这样的东西。在正则中它们被称为元字符(Meta Character)。

    再再后来,开始使用 Linux,于是又开始使用命令行,又开始在命令行中使用 * 和 ?。

    最终,这两种形同且意相似,实质上完全不同但又有神秘联系的东西成功地交织一起,把我彻底搞凌乱了。

    不过,搞清楚它们的不同之处,就不会凌乱了。

    Shell 命令中的通配符

    在操作系统的 Shell 命令中,*和?这样的通配符和其它字符一起组合成表达式,用于匹配符合条件的文件名。

    *: 匹配任意长度的字符串。这个字符串的长度可以是0,可以是1,可以是任意数字

    ?: 匹配任意一个字符。

    例如,a?c.* 可以匹配 abc.o,axc.docs,azc.htm 这样的文件名。

    通配符在 DOS/Windows 和 Linux 中的差别

    在 Linux 中,? 只能匹配一个字符。但在 DOS/Windows 中,如果 ? 处于末尾或者 . 的前面,它也可以匹配零个字符。例如在 DOS/Windows 中,abc?.* 可以匹配 abc.html,abcd.md 这样的文件名。

    在 DOS/Windows 中,? 不能匹配文件名中的 . 。比如 abc?md 不能匹配 abc.md。

    在 Linux 中,如果 . 在文件名的开头,不能用 * 或 ? 来匹配。

    另外,以 . 开头的文件名在 Linux 中很普遍,但在 DOS/Windows 中就很另类,会产生些问题。不提了,不提了,都是坑。

    正则表达式中的元字符

    在正则表达式中,*和?这样的元字符、其它元字符以及普通字符组合在一起形成一个Pattern,用于匹配字符串。比如在文本文件中找出所有包含某个字符串的行。

    *: 匹配前面的表达式零次或多次。

    ?: 匹配前面的表达式零次或一次。

    表达式可以是一个字符,也可以是( )中的字符序列。

    例如,ab*c 可以匹配 ac,abcc,acef, dabbbbbcf 这样的字符串

    两者的区别

    区别一:作用对象不同

    这一点前面已经说过了:一个用于 Shell 命令中匹配文件名,另一个用于文本处理中匹配相应的字符串。

    区别二:工作方式不同

    在命令行中,通配符是占位符,可以独立使用,跟前面的字符没关系。比如 abc*,表示一个字符串以 abc 开始,然后跟 0 个或多个任意字符。

    在正则表达式中,* 和 ? 是对前面的表达式进行匹配次数限制,不能独立使用的。比如 abc*,表示字符串中包含 ab,后面跟上 0 个或多个 c 。这个表达式可以匹配 ab, abc, abcc, abcccd 这样的字符串。这里的 * 作用在它前面的 c上(如果想作用于它前面的 abc,要写成 (abc)* )。

    举两个例子:

    ?

    用于命令行文件名匹配时,可以匹配只有一个字符的名字:t,x等;

    用于正则表达式中字符串匹配时,它是无效表达式。

    a*

    当匹配文件名时,可以匹配任何以字符 a开始的文件名。

    当匹配字符串时,它可以匹配 0 个 a (即空字符串),1 个 a,2 个 a,n 个 a。因为可以匹配 0 个 a,也就是空白,当做用于一个文本文件时,这个正则表达式可以匹配任何行(包括空白行),所以这样写没有意义。要想匹配至少一个 a,要写成 aa* 。要匹配至少两个连续的 a ,要写成 aaa* 。

    区别三:匹配范围不同

    命令行中的表达式是完全匹配,表达式必须跟文件名一致才能匹配。

    正则表达式是包含匹配,只要字符串包含该表达式就能匹配。

    举两个例子:

    aa:

    在命令行中只能匹配文件名 aa;

    作为正则表达式,只要字符串中包含 aa 就可以匹配上,比如aaxyz,123aaxyz。

    ab?:

    在命令行中只能匹配文件名 abc,abe等,但不能匹配 abcc,xyabef。

    作为正则表达式,不但能匹配 abc,abe等,还能匹配 xxabcdef,abc123 等。

    两者的联系

    两者之间还是有些联系的,纯粹靠区别还不足以把人搞凌乱。

    通配符也可以用在字符串匹配上

    它们也可用在一般的字符串查找上。比如在查询系统中,你可以使用通配符来实现简单的模糊查询。这时它们的工作方式跟命令行是一致的。许多系统都提供了基于通配符的简单查询和基于正则表达式的复杂查询。

    在我们经常使用的 SQL 中,%和_这两个字符就作为通配符,跟 LIKE 操作符一起,用于字符串匹配。但 SQL 也提供了基于正则的字符串匹配操作。

    在正在表达式中也有通配符

    正则的元字符 . 有时也被称为通配符,因为它可以匹配任意一个字符。

    通配符有等价的正则表达式

    若不考虑 ? 可以匹配零个字符这种情况,通配符和正则有下面的关系:

    通配符 等效的正则表达式
    ? .
    * .*
    通配符、正则表达式可以放在一起使用

    Linux grep 命令就是一个很好的例子。这个命令的参数可以同时包括通配符和正则表达式,大家自己去体会吧。真个是:联袂而至,没有最凌乱,只有更凌乱。

    展开全文
  • CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...
  • linux常用命令与shell编程

    千次阅读 2018-05-01 18:46:02
    1.echo命令的作用列举如下: 1)打开回显或关闭回显功能 ...2)关闭DOS命令提示符 格式:ECHO OFF 在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出...

    1.     echo命令的作用列举如下:

    1)打开回显或关闭回显功能

    格式:echo [{ on|off }]

    如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。@Echo off

    2)关闭DOS命令提示符

    格式:ECHO OFF

    在DOS提示符状态下键入ECHO OFF,能够关闭DOS提示符的显示使屏幕只留下光标,直至键入ECHO ON,提示符才会重新出现。

    3)输出空行,即相当于输入一个回车

    格式:ECHO.

    值得注意的是命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/[\\]+等任一符号替代。

    命令ECHO.输出的回车,经DOS管道转向可以作为其它命令的输入,比如echo.|time即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态

    4)建立新文件或增加文件内容

    格式:ECHO 文件内容>文件名

      ECHO 文件内容>>文件名

    例如:

    C:>ECHO @ECHO OFF>AUTOEXEC.BAT建立自动批处理文件

    C:>ECHO C:\\CPAV\\BOOTSAFE>>AUTOEXEC.BAT向自动批处理文件中追加内容

    C:>TYPE AUTOEXEC.BAT显示该自动批处理文件

    2.     mv

    功能说明:移动或更名现有的文件或目录。
    语  法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录]
    补充说明:mv可移动文件或目录,或是更改文件或目录的名称。
    参  数:
     -b或--backup  若需覆盖文件,则覆盖前先行备份。 
     -f或--force  若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。 
     -i或--interactive  覆盖前先行询问用户。 
     -u或--update  在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。 

    例如:

    mv 要移动的文件  目标路径

    mv -i 要移动的文件  目标路径(如果有重复文件,会有提示信息)

    3.     rcp(remote copy)

    功能说明:远端复制文件或目录。
    语  法:rcp [-pr][源文件或目录][目标文件或目录] 或 rcp [-pr][源文件或目录...][目标文件] 
    补充说明:rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它灰把前面指定的所有文件或目录复制到该目录中。
    参  数:
      -p  保留源文件或目录的属性,包括拥有者,所属群组,权限与时间。 
      -r  递归处理,将指定目录下的文件与子目录一并处理。

    4.     rm(remove)

    功能说明:删除文件或目录。
    语  法:rm [-dfirv][--help][--version][文件或目录...]
    补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。 
    参  数:
     -d或--directory  直接把欲删除的目录的硬连接数据删成0,删除该目录。 
     -f或--force  强制删除文件或目录。 
     -i或--interactive  删除既有文件或目录之前先询问用户。 
     -r或-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。  

    例如:

    rm -i file:删除file文件并有提示信息,y确认删除,n是调过

    rm -f file:强制删除文件或目录。该选项会忽略放在他前面的-i选项

    rm -rffile:删除一个叫做dir1的目录并同时其内容

    5.     tftp(trivial file transfer protocol)

    功能说明:传输文件。
    语  法:tftp [主机名称或IP地址]
    补充说明:FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。tftp是简单的文字模式ftp程序,它所使用的指令和FTP类似。

    6.     cd(change directory)

    功能说明:切换目录。
    语  法:cd [目的目录]
    补充说明:cd指令可让用户在不同的目录间切换,但该用户必须拥有足够的权限进入目的目录。

    cd命令不仅显示当前状态,还可以改变当前状态,用法和dos下的cd命令基本一致。

    cd ..  可进入上一层目录

    cd -   可进入上一个进入的目录

    cd ~   可进入用户的home目录

    cd /   可切换到根目录

    cd     cd后不加参数返回home目录

    7.     dirs

    功能说明:显示目录记录。
    语  法:dirs [+/-n -l]
    补充说明:显示目录堆叠中的记录。
    参  数:
      +n   显示从左边算起第n笔的目录。
      -n   显示从右边算起第n笔的目录。
      -l   显示目录完整的记录。

    8.     ls(list)

    功能说明:列出目录内容。
    补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。
    参  数:
      -1   每列仅显示一个文件或目录名称。
      -a或--all   下所有文件和目录。
       -l   使用详细格式列表。

    如果想取得详细的信息,可用ls –l命令,这样就可以显示目录内容的详细信息。如果目录下的文件太多,用一屏显示不了,可以用ls –l|more分屏显示。

    ls –l可用ll替代。

    9.     ln

    功能说明:建立链接。
    补充说明:符号链接(软链接)需要使用带-s参数的ln命令来创建,符号链接删除链接文件不影响原文件。ln默认是建立硬链接,硬链接是直接引用,而符号链接是通过名称进行引用。
    ln –s  TARGET LINK_NAME

    ln -s /app/liuyh /app/liuyhln

     

    10.  mkdir(make directories)

    功能说明:建立目录
    语  法:mkdir [-p][--help][--version][-m <目录属性>][目录名称]
    补充说明:mkdir可建立目录并同时设置目录的权限。
    参  数:
      -m<目录属性>或--mode<目录属性>   建立目录时同时设置目录的权限。
      -p或--parents   若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
      --help   显示帮助。
      --verbose   执行时显示详细的信息。
      --version   显示版本信息。

    例如:

    mkdir dir1 创建一个叫做“dir1”的目录

    mkdir dir1dir2 同时创建两个目录

    mkdir系统默认新建立目录的权限数字代码为755,如果默认的路径无法满足要求,使用-m选项设置,比如mkdir -m777 test4

    11.  pwd(print working directory)

    功能说明:显示工作目录。
    语  法:pwd [--help][--version]
    补充说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

    12.  rmdir(remove directory)

    功能说明:删除目录。
    语  法:rmdir [-p][--help][--ignore-fail-on-non-empty][--verbose][--version][目录...]
    补充说明:当有空目录要删除时,可使用rmdir指令。
    参  数:
      -p或--parents   删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
      --help   在线帮助。
      --verbose   显示指令执行过程。
      --version   显示版本信息。

    13.  telnet

    功能说明:远端登入。
    语  法:telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
    补充说明:执行telnet指令开启终端机阶段作业,并登入远端主机。

    14.  ifconfig

    功能说明:显示或设置网络设备。
    补充说明:ifconfig可设置网络设备的状态,或是显示目前的设置。

    15.  ping

    功能说明:检测主机。
    语  法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
    补充说明:执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

    ping直接加IP地址可以查看是否联通。

    16.  tar(tape archive)

    功能说明:备份文件。
    补充说明:tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
    参数:
      -c或--create   建立新的备份文件。
      -f<备份文件>或--file=<备份文件>   指定备份文件。
      -r或--append   新增文件到已存在的备份文件的结尾部分。
      -v或--verbose   显示指令执行过程。
      -x或--extract或--get  从备份文件中还原文件。

    例如:

    tar -cvf cebent.tar cebent:把cebent文件夹归档为cebent.tar文件

    tar -tf cebent.tar:列出cebent.tar的内容但不解压文件

    tar -xvf cebent.tar :解压缩文件cebent.tar

    17.  date显示系统时间

     date:显示系统时间设置

    date +%y%m%d:将日期显示为两位数的年、月、日的组合

     date -s 06/18/14:将系统时间设置为2014年6月18日

     date -s 14:20:50:将系统时间设置为14点20分50秒

    date -s "2016-12-6 10:38:00"(好用)

    18.  su切换用户

        su命令是最基本的命令之一,常用于不同用户间切换。例如如果登陆为user1,要切换到user2,只需要用如下命令:$su user2,然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以用exit命令返回到user1。

       su命令的常见用法是变成根用户或超级用户。如果发出不带用户名的su命令,则系统提示输入根口令,输入之后则可切换为根用户。

    如果登陆为根用户,则可以用su命令成为系统上任何用户而不需要口令。

    例如:

    su - 新用户:切换到新用户

    19.  scp远程复制

    scp 需要复制的文件 用户名@ip:/目标目录

    scpcebent.tar netbank@10.1.244.228:/app/ceb/app:把当前服务器目录下的cebent.tar复制到用户名为netbank,ip为10.1.244.228的/app/ceb/app目录下。

    20.  cp

    cp 要复制的文件  目标路径

    cp -i 要复制的文件  目标路径(如果有重复文件,会有提示信息)

    cp -r 要复制的文件  目标路径(递归处理,将指定目录下的文件和子目录一起复制)

    21.  chmod:改变文件(目录)的权限

    chmod 777 文件(r读:4,w写:2,x执行:1)

    用户和文件的关系定义为3类:第1类是文件所有者(文件主),即创建文件的人;第二类是同组用户,即几个有某些共同关系的用户组成的集体;第三类是其他用户。Linux把文件权限分为三类:读(r)、写(w)、执行(x)。每一类用户的文件设置成3位。

    22.  chown:改变文件的所有权或组别

    语  法:chown [option] … [owner][:[group]] file

    补充说明:将文件file的属主更改为owner,属组更改为group。

    参数:

     -R选项用于改变一个目录及其下所有文件(包含子目录)的所有权

    例如:

    chown netbank:root days:文件days属主更改为netbank用户,属组更改为root组。

    chown guest days:文件days的属主更改为guest用户,保留其属组设置。

    chown :newGrp days:文件days的属组更改为newGrp,保留属主设置

    chown -R netbank app/:将app/和及其下所有的文件交给用户netbank

    23.  chgrp:单独设置文件的属组

    语  法:chgrp [option] …[group] file

    补充说明:将文件file的属组更改为group。

    参数:

     -R选项用于改变一个目录及其下所有文件(包含子目录)的属组

    例如:

    chgrp root days:文件days的属组更改为root组。

    chgrp -R root app/:将app/和及其下所有的文件属组更改为root组

    24.  cat

    cat 文件:查看文件内容,一般为文本文件,从文件的第一行内容开始显示,文件过长的话只能看到最后一页,不适合查看长文件。

    25.  more

    more 文件: 在文件末尾显示整个内容的比例,空格键向下翻动一页,字母b向上翻动一页,Enter键向下滚动一行,按Q键退出

    26.  less

    less 文件:更适用阅读较长较大的文件。 less命令中的“回车键、空格键和b”操作键功能和more的相同,还可以使用Page Up和 Page Down进行上下翻页,使用上下方向键对文本内容一行一行的上下移动,退出命令和more的也一样。还可以查找字符串,输入/要查找的字符串。

    27.  head

    head –20 查看的文件名称:查看文件的前20行

    ctrl+c可以退出

    28.  tail

    tail –f 查看的文件名称(动态查看文件内容)

    ctrl+c可以退出

     

    29.  who查看哪些用户登录以及工作在哪个控制台上

    whoami:查看当前用户

    30.  df

    df -h:以容易理解的格式显示出文件系统大小

    31.  touch

    touch 文件名:创建一个空文件

    touch -d 20141106 app-20141106.tar:更改文件的修改时间2014年11月6日00:00:00

    32.  uname

    uname -a:显示当前系统的版本信息

    uname -r:显示内核信息

     

    Linux localhost.lw 2.6.32-358.el6.i686 #1 SMP Thu Feb21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux

    显示x86_64表示为64位,i686则为32位。

    33.  wc

    wc [option] [FILE]:该命令的功能是显示文件列表中各文件的行数、词数和字节数信息。如果不加任何命令选项,它分4栏显示统计信息,分别为行数(line)、字数(word)、字节数(character)和文件名。

    34.  grep

    grep命令的格式为:grep [option] pattern [file]。

    grep命令会到输入中或你指定的文件中查找包含匹配指定模式的字符的行。grep的输出就是包含了匹配模式的行。

    例如在文件day中查找包含un的行,可以使用grep un day。

    35.  history

    history:查看用户操作的命令    

    history  10:查看最近10行的命令

    36.  id

    id 用户名:查看用户的UID、GID及其所属的组 

    37.  输出重定向>和>>

    输出重定向:将命令的输出重定向到文件

    date > test.log:将date命令的输出重定向到test.log文件中,如果该文件非空则覆盖

    > 文件名:清空文件的内容

    date >> test.log:将date命令的输出追加到test.log文件中

    38.  输入重定向<和<<

    输入重定向:将文件的内容重定向到命令。

    区分方法:命令总是在左侧,而重定向符号“指向”数据流动的方向。例如输入重定向小于号说明数据正在从输入文件流向命令。

    例:wc < test.log:统计test.log文件的行数、词数和字节数。

    内联输入重定向:允许你在命令行而不是文件指定输入重定向的数据。必须指定一个文本标记来划分要输入数据的开始和结尾,可以用任何字符串的值来作为文本标记,但在数据的开始和结尾必须一致

    例:

    netbank@HK-NBANK-WEB-T02:~/liuyh> wc << EOF

    > test String1

    > test String2

    > test String3

    > EOF

     3  6 39

    39.  标准输出与标准错误输出

    standard error (简称 stderr) 与 standard output (简称 stdout) 给他传送到其它不同的地方,而不是屏幕上头!传送的目标处,通常是档案或者是装置! 而传送的指令则是如下所示:

    1. 标准输入(stdin) :代码为 0 ,使用 < 或 << ;

    2. 标准输出(stdout):代码为 1 ,使用 > 或 >> ;

    3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;

    指令的格式为:

    当然啦,一串指令的最左边一定是指令,而在 >,2>,< 右边的,必须是档案或装置才行! 此外,那个 > 会等于 1> ,因为 standard output 代码是 1 ,可以省略啦! 再者, 1 与 > 之间并没有空格喔!是紧接在一起的!请特别留意这一点:同时写入同一个档案需要使用 2>&1 才对呦

    40.  tee

    功能说明:读取标准输入的数据,并将其内容输出成文件和屏幕,若文件以绝对路径存在,则必须保证父目录的存在。>会将数据流整个传送给档案或装置, 因此我们除非去读取该档案或装置,否则就无法继续利用这个数据流。有没有发现在命令重导向的时候,如果我们要将数据送出到档案的时候, 屏幕上就不会出现任何的数据!那么如果我们需要将数据同时显示在屏幕上跟档案中呢?呵呵!这个时候就需要 tee 这个指令。

    语  法:tee [-ai][--help][--version][文件...]

    补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

    参  数:

     -a或--append  附加到既有文件的后面,而非覆盖它.

     -i-i或--ignore-interrupts  忽略中断信号。

     --help  在线帮助。

     --version  显示版本信息。

    例:echo "==>tee命令测试开始"|tee -a test.log

    41.  管道

    取代将命令的输出重定向到文件,你可以重定向输出到另一个命令。这个过程称为管道连接。不要以为管道链接会一个一个地运行。Linux系统实际上会同时运行这两个命令,在系统内部将他们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。传输数据不会用到任何中间文件或缓冲区域。

    command1| command2

    例:ps -ef|grep java

    42.  命令帮助

    man 命令:查看某个命令的帮助信息

    whatis 命令:了解该命令的大致用途

    43.  vim

    语  法:vim file

    补充说明:将vim是vi的增强版,用于编辑文件。如果vim的文件不存在,则会自动新建一个文件

    参数:

     :q-------------------如果未修改缓冲区数据,退出vim

     :wq------------------将缓冲区数据保存并退出vim

     :q!-------------------取消所有对缓冲区数据的修改并退出vim

      :w filename-------------将文件保存到另一个文件名下

    在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。
    切换到命令行模式:按Esc键;
    切换到插入模式:按 i 、o、a键;
        i 在当前位置前插入
        I 在当前行首插入
        a 在当前位置后插入
        A 在当前行尾插入
        o 在当前行之后插入一行
        O 在当前行之前插入一行

    打开文件:vim file

    退出:esc -> :q

    修改文件:输入i进入插入模式

    保存并退出:esc->:wq

    不保存退出:esc->:q!

    当你刚打开要编辑的文件时(或新建一个文件时),vim编辑器会进入普通模式。在普通模式中,vim编辑器会将按键解释成命令。在插入模式下,vim会将你在当前光标位置输入的每个键都插入到缓冲区。要进入插入模式,按下i键。要退出插入模式回到普通模式,按下键盘上的退出键(ESC)就可以了。

    set nu:显示行号

    set nonu:取消行号

    /pattern<Enter>:向下查找pattern匹配字符串

    ?pattern<Enter>:向上查找pattern匹配字符串

    使用了查找命令之后,使用如下两个键快速查找:

    n:按照同一方向继续查找

    N:按照反方向查找

    快捷键:

    dd – 快速删除一行

    yy - 复制当前行

    nyy - 从当前行向后复制几行

    p - 粘贴

    R – 替换

    44.  反引号

    在一串指令中,在 ` 之内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息。反引号允许你将shell命令的输出赋给变量。反引号(`)在美式键盘上通常和波浪线(~)位于同一键位。

    例如: testing=`date`

    shell会运行反引号中的命令,并将其输出赋给变量testing。

    45.  用户变量

    除了环境变量,shell脚本允许在脚本中定义和使用自己的变量。定义变量允许临时存储数据并在整个脚本中使用,从而使shell脚本看起来更像计算机程序。用户变量可以是任何不超过20个字母、数字或下划线的文本字符串。用户变量区分大小写。值通过等号赋给用户变量。在变量、等号和值之间不能出现空格。shell脚本会自动决定变量值的数据类型。在脚本的整个生命周期中,shell脚本中定义的变量会一直保持着它们的值,但在shell脚本完成时删除掉。类似于系统变量,用户变量可通过美元符引用。

    46. $?查看退出状态码

    Linux提供了$?专属变量来保存上个执行的命令的退出状态码。你必须在你要查看的命令之后马上查看或使用$?变量。它的值会变成shell中执行的最后一条命令的退出状态码。

     

    例如:echo $? ---------------0

    47. 内部字段分隔符IFS

    特殊的环境变量IFS,称为内部字段分隔符(internal field separator)。IFS环境变量定义了bash shell用作字段分隔符的一系列字符。默认情况下,bash shell会将下列字符当作字段分隔符:空格、制表符和换行符。如果bash shell在数据中看到了这些字符中的任意一个,它就会假定你在列表中开始了一个新的数据段。在处理可能含有空格的数据时,这会非常麻烦。要解决这个问题,可以在脚本中临时更改IFS环境变量的值来限制一下被bash shell当作字段分隔符的字符。比如,如果你修改IFS的值使其只能识别换行符,需设置IFS=$'\n'。

    48.   “$变量名”容纳空格

    forvar in /app/liuyh/*

    do

     if [ -f "$var" ];then

     echo $var is a file!

     fi

    done

    for命令遍历/app/liuyh/*输出的结果。该代码使用test命令测试了每个条目(使用方括号方法)以查看它是不是一个文件。在这个例子中,和普通if语句处理得有些不同:if [ -f "$var" ]。

    在Linux中,目录名和文件名中包含空格当然是合法的。要容纳这种值,应该将$var变量用双引号圈起来。如果不这么做,遇到有空格的目录名或文件名时会有错误产生。

    49. basename

    basename命令会返回程序名而不包括路径。

    例如bash shell中:echo `basename $0`:打印程序的名称

    命令行中:basename 文件名。

    50. $#

    $#特殊变量含有脚本运行时就有的命令行参数的个数。你可以在脚本中任何地方使用这个特殊变量,就跟普通变量一样。

    51. #!/bin/bash

    在通常的shell脚本文件时,必须在文件的第一行指定要使用的shell。其格式为:#!/bin/bash。在通常的shell脚本的行里,#用作注释行。shell脚本中的注释行是不被shell执行的。然而,shell脚本文件的第一行是个特例,#后接!号告诉shell用哪个shell来运行脚本(你可以用bash shell来运行你的脚本名称,也可以用其他shell)。在指定了shell之后,可在文件的每行输入命令,后加一个回车符即可编写脚本。

    52. read

    read命令接受从标准输入(键盘)或另一个文件描述符的输入。在收到输入后,read命令会将数据放进一个标准变量。

    read命令的简单用法:

    #echo命令使用了-n选项,它会移掉字符串末尾的换行符,允许脚本用户紧跟其#后输入数据

    echo -n "Ener your name:"

    read name

    echo "Hello $name!Welcome toChina."

    read命令包含了-p选项,允许你直接在read命令行指定提示符:

    read -p "Enter your name:"name

    echo "Hello $name!Welcome toChina."

    read命令行可以接受多个参数,也可以在read命令行中不指定变量,那么read命令会将它收到的任何数据都放进特殊环境变量REPLY中,如果需要引用该变量即可。

    53. 单引号和双引号

    单引号引用了所有的字符,即单引号中字符除单引号本身之外都解释为字面意义,单引号不再具备引用变量的功能。因此我们通过将单引号的引用方式称为全引用,将双引号的引用方式称为部分引用。

    netbank@HK-NBANK-WEB-T02:~> echo'$PWD is the current directory'

    $PWD is the current directory

    netbank@HK-NBANK-WEB-T02:~> echo"$PWD is the Current directory"

    /app is the Current directory

    netbank@HK-NBANK-WEB-T02:~>

    54. shell脚本调试方法

    -n:读一遍脚本中的命令但不执行,用于检查脚本中的语法错误;

    -v:一边执行脚本,一边将执行过的脚本命令打印到标准错误输出;

    -x:提供跟踪执行信息,将执行的每一条命令和结果依次打印出来

    netbank@HK-NBANK-WEB-T02:~/liuyh> sh-n test0316.sh

    test0316.sh: line 8: syntax error nearunexpected token `fi'

    test0316.sh: line 8: `  fi'

    netbank@HK-NBANK-WEB-T02:~/liuyh> sh-v test0316.sh

    #!/bin/sh

    #获取系统当天日期为上线日期,或者通过脚本获得上线日期

           if[ ! -d 0316 ];then

                  mkdir0316

           fi

    netbank@HK-NBANK-WEB-T02:~/liuyh> sh-x test0316.sh

    + '[' '!' -d 0316 ']'

    + mkdir 0316

    55. Linu中提示No such file or directory解决办法

    分析原因,可能是平台迁移遇到文件格式问题,dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然可能看不见。在 dos 使用的断行字符为 ^M$ ,我们称为 CR 与 LF 两个符号。 而在 Linux 底下,则是仅有 LF ($) 这个断行符号。由于文件格式的原因会导致文件执行失败,有3种办法解决。

    1)     在windows下转换:利用一些编辑器如UE或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UE):File->Conversions->DOS->UNIX即可。

    2)     Linux下打开该sh文件,输入:

    :set ff  //回车,显示fileformat=dos

    :set ff=unix //重新设置下文件格式

    :wq //保存退出

    3)     Linux下使用命令“dos2unix 文件名”即可

    56. find

    1)     在某个路径下查文件,在/etc下查找“*.log”的文件

         find /etc -name "*.log"

    2)     扩展,列出某个路径下所有文件,包括子目录

         find /etc -name "*"

    3)     在某个路径下查找所有包含“hello abcserver”字符串的文件

         find /etc -name "*" | xargs grep"hello abcserver"

         或者find /etc -name "*" | xargsgrep "hello abcserver" > ./cqtest.txt

    57. nohup

    nohup指令的一般形式是nohup command &,其中command是要执行的命令。在日常的系统管理工作中,有些程序耗费的时间较长,在用户需要进行其他工作,而前台执行的程序又没有完成的情况下,就可以使用nohup命令让程序后台继续运行,使用nohup命令能够忽略hangup(挂起)信号而继续执行相关程序。

    58. sleep

    sleep命令用于暂停执行某个命令或作业一定的时间,在指定的时间结束之后继续相关的命令或作业,时间默认为秒,例如暂停30秒,sleep 30

    59. xargs

    xargs用于从标准输入设备中读取并执行特定的命令。find命令的-exec参数可以对查找的结果进行批量处理,但是有一定的局限性,而xargs弥补了find命令中-exec参数的不足,xargs从标准输入设备中接收的指令以空格分隔,执行指定的linux/unix命令,显示执行结果,最后返回状态值并退出。语法格式为:xargs [参数] linux/unix命令 [参数] [命令操作对象]

    例:删除find命令查找的所有文件

    在利用find命令的-exec参数对查到的文件执行删除操作时,匹配到的所有文件都将传递给-exec执行。而有些系统对传递给exec命令的长度有限制,当匹配文件过多时,会产生溢出错误。例如“参数列太长”或“参数列溢出”。

    在利用xargs执行find命令匹配文件时,每次只能获取一部分文件,xargs先处理已经获得的一部分文件,然后再继续获得下一部分文件,这就避免了产生类似-exec参数的溢出错误。

    假设查找当前目录下的所有文件test并将其删除,命令执行如下:

    find ./ -name test | xargs rm –f

    60. ftp常用命令

    ftp命令可以将文件上传到指定的远端FTP服务器,也可以从远端服务器上下载文件。

    ftp常用的内部命令如下:

    ascii:使用ascii类型传输方式。

    bin:使用二进制文件传输文件。

    bye:退出ftp会话

    chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out

    mkdir dir-name:在远程主机中建一目录。

    delete remote-file:删除远程主机单个文件

    mdelete [remote-file]:删除远程主机多个文件。

    rmdir dir-name:删除远程主机目录。

    get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。

    mget remote-files:传输多个远程文件。

    put local-file[remote-file]:将本地文件local-file传送至远程主机。

    mput local-file:将多个文件传输至远程主机。

    prompt:设置多个文件传输时的交互提示。

    rename[from][to]:更改远程主机文件名。

    status:显示当前ftp状态。

    ? [cmd]:同help。

    61. alias

    alias:查看已设置的命令别名

    62. 文件的变动时间

    每个档案在 linux 底下都会记录三个主要的变动时间, 咦!那么三个时间是哪三个呢?

    modification time (mtime):当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性喔!

     status time (ctime):当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~

    access time (atime):当『该档案的内容被取用』时,就会更新这个读取时间 (access)。 举例来说,我们使用 cat 去读取 ~/.bashrc ,就会更新 atime 了。

    netbank@HK-NBANK-WEB-T02:~> ls -l/app/liuyh/SFTPTest.sh

    -rw-r--r-- 1 netbank users 496  4 20 14:41/app/liuyh/SFTPTest.sh

    netbank@HK-NBANK-WEB-T02:~> ls -l--time=atime /app/liuyh/SFTPTest.sh

    -rw-r--r-- 1 netbank users 496  5  2 15:18 /app/liuyh/SFTPTest.sh

    netbank@HK-NBANK-WEB-T02:~> ls -l--time=ctime /app/liuyh/SFTPTest.sh

    -rw-r--r-- 1 netbank users 496  4 20 14:41/app/liuyh/SFTPTest.sh

    63. PATH变量

    我们知道 PATH 这个变量是我们在执行指令的时候,所需要具备的指令搜寻目录数据, 没有他,我们就得要使用绝对路径来下达指令才行。

    64. type

    查看指令是来自于外部指令(指的是其它非bash套件所提供的指令)或是内建在bash当中的指令。

    1)     查询一下ls指令

    netbank@HK-NBANK-WEB-T02:~> type ls

    ls is aliased to `ls $LS_OPTIONS'

    #没有加上任何参数,仅列出ls这个指令的最主要使用情况

    netbank@HK-NBANK-WEB-T02:~> type -tls

    alias

    #-t参数则仅列出ls这个指令的最主要使用情况说明

    netbank@HK-NBANK-WEB-T02:~> type -als

    ls is aliased to `ls $LS_OPTIONS'

    ls is /bin/ls

    #-a利用所有方法找出来的ls相关信息都会被列出来

    2)     查询一下cd指令

    netbank@HK-NBANK-WEB-T02:~> type cd

    cd is a shell builtin

    65. env

    查看环境变量。

    66.  export

    功能说明:设置或显示环境变量。
    语  法:export [-fnp][变量名称]=[变量设置值]
    补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
    参  数:
     -f  代表[变量名称]中为函数名称。 
     -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 
     -p  列出所有的shell赋予程序的环境变量。

    67.  source

    利用source或小数点(.)都可以将设定档的内容读进来目前的shell环境中。举例来说,我修改了~/.bashrc,那么不需要注销,立即以source ~/.bashrc就可以将刚刚最新设定的内容读进目前的环境中。

    68.  关机和重启

    重启命令:

    1、reboot

    2、shutdown -r now 立刻重启(root用户使用)

    3、shutdown -r 10 过10分钟自动重启(root用户使用)

    4、shutdown -r 22:22 在时间为22:22时候重启(root用户使用)

    如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

    关机命令:

    1、halt   立刻关机

    2、poweroff  立刻关机

    3、shutdown -h now 立刻关机(root用户使用)

    4、shutdown -h 10 10分钟后自动关机

    如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

    69.  进程和端口

    1)     根据进程pid查端口:

    netstat -nap | grep pid

    2)     根据端口port查进程

    netstat -nap | grep port

    70.  关闭防火墙

    service iptables stop 或者 systemctl stop firewalld.service

    71.  执行sh ./xxx.sh出现:“Syntax error: “(” unexpected”的解决方法

    通过sh ./virtualmin.sh执行代码就报“Syntax error: “(” unexpected”错误,通过bash ./virtualmin.sh执行就没问题。几经查找语法,没有问题,后来在网上找到问题原因:

    代码对于标准bash而言没有错,因为Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,是dash在捣鬼,解决方法就是取消dash。

    sudodpkg-reconfiguredash,在选择项中选No,搞定了!

    72.  grep

    功能说明:用于查找文件里符合条件的字符串。
    语  法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
    参  数:

        -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。

        -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。

    例如:grep lang anaconda-ks.cfg --color :anaconda-ks.cfg文件中高亮显示lang

    72.  nc

    功能说明:本指令可设置路由器的相关参数,测试某个端口是否联通等。

    语  法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

    参  数:

    -z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换

    -v 参数指使用冗余选项(译者注:即详细输出)

    -n 参数告诉netcat 不要使用DNS反向查询IP地址的域名

    例如:nc -vzn 192.168.8.11 80

    展开全文
  • 很早就想根据自己的学习规律和遗忘规律,自己总结一下Linux/Unix系统的Shell命令,一来便于自己时常查询之用,二来也分享于各位博友Linux shell是系统的用户界面,即命令行。它提供了用户内核进行交互式操作控制...

    很早就想根据自己的学习规律和遗忘规律,自己总结一下Linux/Unix系统的Shell命令,一来便于自己时常查询之用,二来也分享于各位博友

     

    Linux shell是系统的用户界面,即命令行。它提供了用户与内核进行交互式操作与控制的接口,接受用户输入的命令并把它送入内核中去执行。实际上Shell是Linux/Unix系统的命令解释器,它解释了由用户输入的命令,类似于Windows系统平台下的DOS界面和命令。

     

     

     

     

    ===========================================================================

     

     

     

     

     

     

     

    ===========================================================================

     

     

     

     

     

     

    ===========================================================================

     

     

     

     

     

    展开全文
  • perl与命令行

    2011-04-28 21:47:00
    MS-DOS中运行命令行 perl -e "print qq(Hello world\n)" 直接调用shell并输出 #!/usr/bin/perl -wmy $now=`date`;print "The time is now $now"; #!/usr/bin/perl -wforeach ...

    在linux中运行命令行

    perl -e 'print "Hello world\n"'

    MS-DOS中运行命令行

    perl -e "print qq(Hello world\n)"

    直接调用shell并输出

    #!/usr/bin/perl -w
    my $now=`date`;
    print "The time is now $now";

    #!/usr/bin/perl -w
    foreach (`who`) {
      my($user,$tty,$date=/(\S+)\s+(\S+)\s+(.*)/;
      $ttys{$user}   .="$tty at $date\n"
    }

    展开全文
  • dos命令大全.pdf

    2020-08-14 20:30:37
    DOSKEY 编辑命令行、撤回 Windows 命令并 创建宏。 DRIVERQUERY 显示当前设备驱动程序状态和属性。 ECHO 显示消息,或将命令回显打开或关闭。 ENDLOCAL 结束批文件中环境更改的本地化。 ERASE 删除一个或多个文件。...
  • dos命令详解

    2008-06-15 00:55:30
    扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。...从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有批处理文件十分相...
  • Linux命令行使用之命令行输入输出

    千次阅读 2018-10-20 00:33:13
    与DOS类似,Shell 程序通常自动打开3个标准文档:标准输入文档(stdin)、标准输出文档(stdout)和标准错误输出文档(stderr)。其中 stdin 一般对应终端键盘,stdout 和 stderr 对应终端屏幕。进程从 stdin 获取...
  • DOS命令活用

    2012-05-06 06:51:00
    以前一直认为Windows系统的命令行功能太弱,不大好用,但今年结识了一位在DOS命令方面功底颇深的兄弟,遂改变了对DOS命令的看法。其实WindowsLinux一样,也有着强大Shell命令集。以下篇幅记录一些不太常用但非常...
  • Linux/Unix Shell 常用命令与目录分区

    千次阅读 2013-03-05 13:54:43
    实际上Shell是Linux/Unix系统的命令解释器,它解释了由用户输入的命令,类似于Windows系统平台下的DOS界面和命令。             一、基本命令 1、立即关机并重启动,执行如下命令: ...
  • Qt执行dos命令并获取控制台输出

    千次阅读 2018-05-29 17:56:51
    应用场景问题描述:问题是这样的,我写了很多命令行程序用于处理遥感影像,这种方式很方便,可以通过dosshell脚本来实现批处理。但这也引起一个问题,当我在集成时偷懒,不想做界面,而用户又必须要求有个界面时...
  • 批处理文件(.bat)的写法——DOS命令大全 1 先来看看.cmd,.bat是什么: .bat是dos下的批处理文件; .cmd是nt内核命令行环境的另一种批处理文件; 因此,二者是没有本质区别。从更广义的角度来看,...
  • 在windows的DOS窗口命令行或linux的shell命令行,假设需要备份的数据库是advanced: mysqldump -u root -p advanced > c:\share\advanced.sql 回车后输入mysql数据库密码,即导出advanc
  • dos常用命令

    2012-08-18 14:52:56
    ----------------------  ...总体概括下,dos命令行常用命令,开始--------》运行,输入cmd 进入dos窗口,声明下,这次说的是基于Windows操作系统的dos命令,不涉及Linux的Shell命令。 一,命令概括: dir
  • 命令行工具Path作用 一、命令行工具 1、简介: 身为程序员,一定要起码知道命令行工具是什么。...他的别名:Shell,CMD,终端,也有叫dos窗口,小黑盒,命令行窗口。 2、作用: 操作系统都是通过图...
  • dos bat 批处理 命令

    千次阅读 2007-10-29 09:59:00
    bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有批处理文件十分相似的作用,而且同样是...
  • 更主要的是基于界面引导Path与命令行直达速度是难以比拟的。另外Geek很大一部分是键盘控,而非鼠标流的。 一、Windows下Shell命令概述 Windows的Shell命令又是Windows的CMD命令。而cmd命令又是原来MS-DOS系统保留...
  • 我也要学C语言(威力加强版)_第二章:system函数与命令行参数以及内存的查看 system函数  在C语言中可以使用system函数向操作系统传递控制台命令,通过system()函数执行命令和在DOS窗口中执行命令都是一样的...
  • 问题一:DOS与windows中cmd区别 在windows系统中,“开始-运行-cmd”可以打开“cmd.exe”,进行命令行操作。 操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统...只是cmd中的某些命令dos
  • 1:操作系统是管理计算机硬件软件资源的程序 2:典型操作系统 1:UNIX、LINUX、Mac OS X、Windows iOS、Android、MS-DOS 3:操作方式 1:命令行界面(Command Line Interface CLI) 1:用户通过键盘输入指令,...
  • 高级Shell脚本编程

    2013-10-28 10:08:19
    DOS命令与UNIX的等价命令 N-1. 修订历史 O-1. 翻译版修订历史 例子清单 2-1. 清除: 清除/var/log下的log文件 2-2. 清除:一个改良的清除脚本 2-3. 清除: 一个增强的和广义的删除logfile的脚本 3-1. 代码块和I...
  • 本章节分享Shell 学习篇,那么对于Shell 简单介绍下,对于Shell来说,大家可以理解Shell 是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等),然后调用相应的应用程序。另外一点它可以使用用户...
  • 深入学习shell脚本艺术

    热门讨论 2011-02-22 04:01:01
    内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 12.2. 复杂命令 12.3. 时间/日期 命令 12.4. 文本处理命令 12.5. 文件与归档命令 12.6. 通讯命令 12.7. 终端控制命令 ...

空空如也

1 2 3 4 5
收藏数 91
精华内容 36
关键字:

dos命令与shell命令行