linux 》》命令,linux常用的20个命令
大家好,关于linux >>命令很多朋友都还不太明白,今天小编就来为大家分享关于linux常用的20个命令的知识,希望对各位有所帮助!
linux里的 > 是什么意思
>和>>都属于输出重定向,都可以输出内容到指定文件。
>会覆盖目标的原有内容,当文件存在时,会先删除原文件,再重新创建文件,然后把内容写入该文件,否则直接创建文件。
>>会在目标原有内容后追加内容,当文件存在时直接在文件末尾进行内容追加,不会删除原文件,否则直接创建文件。
扩展阅读:
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的一大亮点。
Linux与其他操作系统相比,具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
linux patch命令
linux系统下patch命令是什么呢?下面是patch命令的具体介绍:
1、patch命令简介:
Patch的主要用途是给代码打补丁,修正已知的错误,或者作为一种调试手段来调试有问题的代码,发现问题和验证修正的结果。
2、patch命令功能:
修补文件。
3、语法:patch[-bceEflnNRstTuvZ][-B备份字首字符串][-d工作目录][-D标示符号][-F监别列数][-g控制数值][-i修补文件][-o输出文件][-p剥离层级][-r拒绝文件][-V备份方式][-Y备份字首字符串][-z备份字尾字符串][--backup-if-mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件修补文件]或path[-p剥离层级][修补文件]
4、补充说明:patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。
5、参数:
-b或--backup备份每一个原始文件。
-B备份字首字符串或--prefix=备份字首字符串设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。
-c或--context把修补数据解译成关联性的差异。
-d工作目录或--directory=工作目录设置工作目录。
-D标示符号或--ifdef=标示符号用指定的符号把改变的地方标示出来。
-e或--ed把修补数据解译成ed指令可用的叙述文件。
-E或--remove-empty-files若修补过后输出的文件其内容是一片空白,则移除该文件。
-f或--force此参数的效果和指定-t参数类似,但会假设修补数据的版本为新版本。
-F监别列数或--fuzz监别列数设置监别列数的最大值。
-g控制数值或--get=控制数值设置以RSC或SCCS控制修补作业。
-i修补文件或--input=修补文件读取指定的修补问家你。
-l或--ignore-whitespace忽略修补数据与输入数据的跳格,空格字符。
-n或--normal把修补数据解译成一般性的差异。
-N或--forward忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使用过。
-o输出文件或--output=输出文件设置输出文件的名称,修补过的文件会以该名称存放。
-p剥离层级或--strip=剥离层级设置欲剥离几层路径名称。
-f拒绝文件或--reject-file=拒绝文件设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej。
-R或--reverse假设修补数据是由新旧文件交换位置而产生。
-s或--quiet或--silent不显示指令执行过程,除非发生错误。
-t或--batch自动略过错误,不询问任何问题。
-T或--set-time此参数的效果和指定-Z参数类似,但以本地时间为主。
-u或--unified把修补数据解译成一致化的差异。
-v或--version显示版本信息。
-V备份方式或--version-control=备份方式用-b参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用-z参数变更,当使用-V参数指定不同备份方式时,也会产生不同字尾的备份字符串。
-Y备份字首字符串或--basename-prefix=--备份字首字符串设置文件备份时,附加在文件基本名称开头的字首字符串。
-z备份字尾字符串或--suffix=备份字尾字符串此参数的效果和指定-B参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上backup/字符串后,文件super.c会备份于/src/linux/fs/backup目录里。
-Z或--set-utc把修补过的文件更改,存取时间设为UTC。
--backup-if-mismatch在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件。
--binary以二进制模式读写数据,而不通过标准输出设备。
--help在线帮助。
--nobackup-if-mismatch在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件。
--verbose详细显示指令的执行过程。
patch,是打补丁的命令,有很多用法,见帮助#man patch
patch-p0(“p”指的是路径,后面的数字表示去掉路径的第几部分。0,表示不去掉,为全路径)
patch-p1(“p”后面的数字1,表示去掉前第一个路径)fetch
fetch
fetch...
patch-p0...fetch
patch-p patch-tcp_auto_buf-20061212-RELENG_6.diff
也可以把文件中的目录全改成系统已在的目录如/usr/src/sys.....
6、Patch过程分三个大的步骤:
一是用diff工具比较新旧代码,生成patch文件;二是使用patch命令,将patch文件合并到原有代码;三是检查有无无法patch的文件,修改或重新选择是否对其做patch。patch打完了就可以直接编译了。
patch对应到的主要命令有两个,diff和patch。至于检查结果,在linux环境下使用ls命令或者find命令查看有无rej类型的文件就可以了。
现实中常见的做法,是在makefile中加入patch命令,在编译过程中做好代码的patch,然后编译代码。
7、diff命令常用选项:
以下面命令举例:
diff-uNr orginal_proj updated_proj test.patch
其中,-u表示使用unified output format,统一输出格式,比较紧凑而且易读;
-N用来处理新增的文件(此时参数对应的是目录)
-r表示递归处理所有的子目录。
整条命令的意思是,递归比较original和updated两个工程中的所有文件,使用统一的输出格式,添加新增的文件,生成结果输出到 test.patch文件中。
其他常用的选项还有:-p仅针对C程序有效,显示每个不同所对应的函数;-i忽略大小写,对于大小写不敏感的场合使用,比如某些html文件;–exclude表示排除某些文件或者目录,不做比较,适用于如代码包含cvs目录之类的场合。剩下的其他参数可以参考info或者help或者man。
patch文件的格式
上个例子中生成的文件是统一输出格式的,比较紧凑而且易读。举例:
— autoconf-2.7/acgeneral.m4 Wed Nov 22 11:42:00 1995##旧文件
+++ autoconf-2.9/acgeneral.m4 Sat Mar 16 15:53:07 1996##新文件
@@-1,7+1,7@@##第一段不同的地方,旧文件从1行开始,共7行;新文件从1行开始,共7行
dnl Parameterized macros.##无+—符号,是引用的内容
dnl Requires GNU m4.
dnl This file is part of Autoconf.
-dnl Copyright(C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.##删除的内容
+dnl Copyright(C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.##替换的内容
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@@-51,7+51,7@@##第二段不同之处
divert(-1)dnl Throw away output until AC_INIT is called.
changequote([, ])
-define(AC_ACVERSION, 2.7)
+define(AC_ACVERSION, 2.9)
dnl Some old m4′s don’t support m4exit. But they provide
dnl equivalent functionality by core dumping because of the
从刚才的diff命令的例子可以看到,一个patch文件中可能包含整个工程中所有不同文件的比较结果,因此,必须区分具体的文件路径和文件名,以及单一文件中多个不同之处的情况。统一输出格式中,使用—表示旧文件,使用+++表示新文件;文件中的多个不同的文本或代码段,使用@@开始,@@结束的一行来开始;中间的内容是新旧文件的起始行数和本段比较包含的函数,空格做分隔。每段中,无-+符号的是引用的行,有-号的是删除的行,有+号的是新增的行。这样就可以区分开这些情况了。
diff命令还可以生成非统一格式的patch文件,但可读性非常差,所以从编程的角度讲,一定是使用unified output format比较合理。
8、patch命令常用选项:
以下面命令举例:
patch-lNp0 test.patch
其中,-l的意思–ignore-whitespace,忽略空白字符;-N表示–forward,忽略已经打过或者已经取消的补丁(ignore patches that seem to be reversed or already applied);-pnum表示–strip=num,如果没有num参数,表示直接使用文件名,0表示全路径名,其他表示从左开始去除几个slash到,哪一级目录(cut slash count).
整条命令的意思是,使用test.patch文件作为输入,忽略空白符号和已经处理过的补丁,保留patch文件中的包含文件的全路径名,对patch文件涉及到的文件做补丁。
linux中&>什么意思
表示任意几个字符串,其他具体的参考如下:
1.>重定向输出符号。
2.>>重定向输出符号,但有追加的功能。
3. 2>错误重定向输出符号,覆盖原文件内容。
4. 2>>错误重定向输出符号,有文件内容追加的功能。重定向:I/O。Linux Shell环境中支持输入输出重定向,用符号<和>来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt表示将错误信息输出到文件a.txt中。
5.*代表0个或者多个特殊字符
6.?匹配任意一个字符。
7.|管道符号。解释:command1|command2,将command1的输出作为command2的输入,比如ls-al|less,表示将ls-al的输出作为less的输入,即将la-al的输出分页。管道命令只接受标准输入(standoutput)。
8.&后台进程符。
9.&&l逻辑与符号。用法:命令1&&命令2表示如果命令1执行成功,继续执行命令2。
10.||逻辑或符号。用法:命令1||命令2表示如果命令1执行成功,不执行命令2;但如果命令1执行失败才执行命令2。
&&与||,命令执行是顺序进行的,没有优先级
11.!逻辑非符号。排除指定范围。例:ls a[!0-9]
12.[x-y]表示一定的范围。
13.#注释符;符合替换文字最短的那一个。
14.””双引号表示把它所包含的内容作为普通字符,但` `$\‘‘几个符号除外。
15.’’单引号表示把它所包含的内容作为普通的字符,无特殊例外。
16.$变量符,提取变量,如echo$HOME,查看变量;正则表达式中表示行首。
17.\转义字符,就是将特殊字符转换成其本来的普通字符的意思。
18.``反单引号,表示它所包含的内容。一般作为嵌入的命令使用,此命令将先执行。
19.;命令分隔符。
20.<重定向输入符。
21.()表示整体执行命令。
22.^反向选择符,例:grep-n'^[^a-zA-Z]' wokao.txt,[]内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行。
23..点该表任意字符串