Linux基础指令

ls指令
参数含义
直接列举所有可见文件,不包含隐藏
-a显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r将文件以相反次序显示(原定依英文字母次序)
-t将文件依建立时间之先后次序列出
-A同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R若目录下有文件,则以下之文件亦皆依序列出
文件显示命令
file
file查看文件类型
cat
参数含义
默认只显示文本。
-n由 1 开始对所有输出的行数编号。
-b和 -n 相似,只不过对于空白行不编号。
-s当遇到有连续两行以上的空白行,就代换为一行的空白行。
-E在每行结束处显示 $。

注:

  1. cat主要用于查看短文件
  2. cat filename 多⽤于显⽰短⽂件,当⽂件过长出现滚屏时,⽤ctrl+s暂停滚屏,⽽ctrl+q继续,完全终⽌显⽰ Del。
  3. cat连接⽂件
$ cat file1 file2 > file3
$ cat file3
more
参数含义
正常显示文件
-num一次显示的行数
-d提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-f计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s当遇到有连续两行以上的空白行,就代换为一行的空白行
+num从第 num 行开始显示

注:

  1. more主要用于查看长文件
  2. Enter 向下n行,需要定义。默认为1行
  3. Ctrl+F 向下滚动一屏,空格键 向下滚动一屏
  4. Ctrl+B 返回上一屏
  5. = 输出当前行的行号
  6. f 输出文件名和当前行的行号
  7. V 调用vi编辑器
  8. !命令 调用Shell,并执行命令
  9. q 退出more
  10. pg用法与more相似。
  11. more查看多文件
$ more file1 file2 file3
less
参数含义
正常显示文件
-b<缓冲区大小> 设置缓冲区的大小
-e当文件显示结束后,自动离开
-f强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示类似more命令的百分比
-N显示每行的行号
-o<文件名>将less 输出的内容在指定文件中保存起来
-Q不使用警告音
-s显示连续空行为一行
-S行过长时间将超出部分舍弃
-x<数字>将"tab"键显示为规定的数字空格

注;

  1. less主要用于查看长文件
  2. /字符串:向下搜索"字符串"的功能
  3. ?字符串:向上搜索"字符串"的功能
  4. n:重复前一个搜索(与 / 或 ? 有关)
  5. N:反向重复前一个搜索(与 / 或 ? 有关)
  6. b 向上翻一页
  7. == d 向后翻半页==
  8. h 显示帮助界面
  9. Q 退出less 命令
  10. u 向前滚动半页
  11. y 向前滚动一行
  12. 空格键 滚动一页
  13. 回车键 滚动一行
  14. [pagedown]: 向下翻动一页
  15. [pageup]: 向上翻动一页
  16. less为more的进阶版
head和tail
查看头尾含义
headhead filename 查看⽂件的头10行
tailtail filename查看⽂件的最后10行

注:

  1. 可加数字选项,使其按指定⾏数显⽰
$ head -20 file6.txt
grep
参数含义
区分大小写
-a要忽略二进制的数据
-A<显示行数>除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数>除了显示符合样式的那一行之外,并显示该行之前的内容。
-c计算符合样式的列数。
-C<显示行数>除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作>当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作
-e<范本样式>指定字符串做为查找文件内容的样式
-E将样式为延伸的正则表达式来使用。
-f<规则文件>指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F将样式视为固定字符串的列表。
-G将样式视为普通的表示法来使用。
-h在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H在显示符合样式的那一行之前,表示该行所属的文件名称。
-i忽略字符大小写的差别。
-l列出文件内容符合指定的样式的文件名称。
-L列出文件内容不符合指定的样式的文件名称。
-n在显示符合样式的那一行之前,标示出该行的列数编号
-o只显示匹配PATTERN 部分
-q不显示任何信息
-r此参数的效果和指定"-d recurse"参数相同。
-s不显示错误信息
-v显示不包含匹配文本的所有行。
-w只显示全字符合的列。
-x只显示全列符合的列。

注:

  1. grep -E == egrep
  2. 主要结合正则表达式来使用

eg:找到abc连续出现至少两次的字符串

$ grep -n ‘\(abc\)\{2,\}’ reg.txt
sed

是一个文本编辑器,可以对来自文件、以及标准输入的文本进行编辑。
语法:

$ sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

参数含义
-e<script>或–expression=<script>以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件>以选项中指定的script文件来处理输入的文本文件。
-h或–help显示帮助。
-n或–quiet或–silent仅显示script处理后的结果。
-V或–version显示版本信息

动作说明

动作含义
a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
s取代,可以直接进行取代的工作!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g
d删除,因为是删除,所以 d 后面通常不接任何
i插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行

例如:
(1):在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令:

$ sed -e 4a\newLine testfile 

(2):将a.txt中的所有car替换为cars

$ sed 's/car/cars/' a.txt
sort

语法

$ sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
参数含义
将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
-b忽略每行前面开始出的空格字符。
-c检查文件是否已经按照顺序排序
-d排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f排序时,将小写字母视为大写字母。
-i排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-M将前面3个字母依照月份的缩写进行排序
-n依照数值的大小排序
-u意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件>将排序后的结果存入指定的文件。
-r以相反的顺序来排序
-t<分隔字符>指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位>以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help显示帮助
–version显示版本信息

eg1:
将排序后的输出重定向到⼀个⽂件中,⽽不显⽰在屏幕上,⽤-o参数。

$ sort names >names1

$ sort -o names1 names

eg2:
⽤sort将两个⽂件按顺序合并

$ sort filename1 filename2 > filename3

eg3:

$ cat birthday
charles FEB
bridget DEC
sarah JAN
$ sort -M +1 birthday

注:

  1. +1标志将告诉sort根据第⼆个字段排序。
  2. 选项+pos1 [-pos2] 排序关键字由pos1开始⾄pos2结束,省略pos2⾄⾏尾结束。pos1和pos2的格式mm.nn(第mm+1字段的第nn+1字符,省略nn相当于nn为0)

eg4:选项-k keydef,keydef可以定义⼀个以上的排序关键字段,每⼀个的形式为:start [,end] (sart和end的格式为m.n,m和n从1开始编号,省略n相当于n为1)

$ sort -k 2 , 2 ff
或
$ sort +1 -2 ff

以第2个字段为关键字。

find

语法:

$ find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
参数说明
-mount只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n在过去 n 分钟内被读取过
-anewer file比文件 file 更晚被读取过的文件
-atime n在过去n天内被读取过的文件
-cmin n在过去 n 分钟内被修改过
-cnewer file比文件 file 更新的文件
-ctime n在过去n天内被修改过的文件
-empty空的文件
-ipath p, -path p路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name文件名称符合 name 的文件。iname 会忽略大小写
-size n :文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
-type x文件类型是 x 的文件(x为:d: 目录 c: 字型装置文件 b: 区块装置文件 p: 具名贮列 f: 一般文件 l: 符号连结 s: socket)
-pid nprocess id 是 n 的文件
-exec cmd {}对查找出来的⽂件执⾏cmd命令,{}表⽰找到的⽂件,命令要以“\;”结束
-and选择条件与
-or选择条件或

    可以用(expr.)将运算式分割,括号中作为⼀个整体判断,并且使用运算:

  1. exp1 -and exp2
  2. ! exp
  3. -not exp
  4. exp1 -or exp2
  5. exp1, exp2

eg1:(expr.)举例

$ find /home \(-name core -or -name a.out\) -atime +3 -exec rm {} \;

eg2:将目前目录及其子目录下所有延伸档名是 c 的文件列出来。

$ find . -name "*.c"

eg3:将目前目录其其下子目录中所有一般文件列出

$ find . -type f

eg4:将目前目录及其子目录下所有最近 20 天内更新过的文件列出

$ find . -ctime -20

eg5:查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们

$ find /var/log -type f -mtime +7 -ok rm {} \;

eg6:查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件

$ find . -type f -perm 644 -exec ls -l {} \;

eg7:为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径

$ find / -type f -size 0 -exec ls -l {} \;
文件内容比较
comm

    comm命令比较两个已排过序的文件。这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来。

参数含义
把结果分成 3 列显示:第 1 列仅是在第 1 个文件中出现过的列,第 2 列是仅在第 2 个文件中出现过的列,第 3 列则是在第 1 与第 2 个文件里都出现过的列。若给予的文件名称为 - ,则 comm 指令会从标准输入设备读取数据。
-1不显示只在第 1 个文件里出现过的列
-2不显示只在第 2 个文件里出现过的列。
-3不显示只在第 1 和第 2 个文件里出现过的列。
diff

    diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录

参数含义
==-<行数> ==指定要显示多少行的文本。此参数必须与-c或-u参数一并使用
-adiff预设只会逐行比较文本文件。
-b不检查空格字符的不同。
-B不检查空白行。
-c显示全部内文,并标出不同之处。
-d使用不同的演算法,以较小的单位来做比较。
-e此参数的输出格式可用于ed的script文件
-f输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
-l<字符或字符串>两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
-i不检查大小写的不同。
-p比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-q仅显示有无差异,不显示详细的信息。
-r比较子目录中的文件。
-s若没有发现任何差异,仍然显示信息。
-u以合并的方式来显示文件内容的不同。
-w忽略全部的空格字符。
-y以并列的方式显示文件的异同之处。
cmp

    cmp命令用于比较两个文件是否有差异。

参数含义
相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则cmp指令会从标准输入设备读取数据。
-C除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>指定一个数目。
-I标示出所有不一样的地方。
-s不显示错误信息。
⽂件的复制删除和移动
cp

    将⼀个或多个⽂件拷贝到⽬标⽬录;

  1. 当复制⽂件时,你就⾃动成为新⽂件的属主
  2. 只有具有⽂件读权限 的⽤户才可以将⽂件复制,并放置于任何该⽤户有写权限的⽬录中
  3. 如果你只想复制⽂件但不改变其所有权,就可以使⽤copy -p命令
参数含义
-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
-f覆盖已经存在的目标文件而不给出提示。
-i与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l不复制文件,只是生成链接文件。
mv

    mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。

参数含义
-i若指定目录已有同名文件,则先询问是否覆盖旧文件
-f在 mv 操作要覆盖某已有的目标文件时不给任何指示
命令格式运行结果
mv 文件名 文件名将源文件名改为目标文件名
mv 文件名 目录名将文件移动到目标目录
mv 目录名 目录名目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名出错
rm

    rm命令用于删除一个文件或者目录。

参数含义
-i删除前逐一询问确认。
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r将目录及以下之档案亦逐一删除。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值