Linux命令详解

more命令

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

more +20 testfile     //从第 20 行开始显示 testfile 之文档内容

more -s testfile //逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示
  • -num 一次显示的行数
  • -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  • -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  • -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  • -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  • -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  • -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  • -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  • +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  • +num 从第 num 行开始显示
  • fileNames 欲显示内容的文档,可为复数个数

 文本三剑客(找文件里的关键字)

grep命令

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。 

grep [options] pattern [files]

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

  • pattern - 表示要查找的字符串或正则表达式。
  • files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。
  • 常用选项:

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

 更多可见常用选项:Linux grep 命令 | 菜鸟教程 (runoob.com)

grep hello file.txt

grep -r -n pattern dir/

echo "hello world" | grep -c world //在标准输入中查找字符串 "world",并只打印匹配的行数

grep test *file 

grep -r update /etc/acpi 

grep -v test *test*
sed命令 

s (substitute)为查找替换命令

# 在输出或打印中,替换字符串。并不改变原文件内容
sed '作用范围s/替换查找目标/替换成为/替换目标option' 文件名

# 替换字符串,并更改原文件内容,在sed后面加 -i,即编辑文档“edit files in place”选项
sed -i '作用范围s/替换查找目标/替换成为/替换目标option' 文件名

 例,sed ‘s/cat/dog/g’ pet.txt
在全局范围(s前的作用范围无内容)查找cat并替换为dog,作用范围内每一行出现的不仅第一个目标,而是所有目标都会被替换(g)。

指定行,写上行号;指定某行到某行,用逗号连接行号

# 作用范围在第1行
sed '1s/cat/dog/g' pet.txt

# 作用范围在第6行到第10行
sed '6,10s/cat/dog/g' pet.txt

# 作用范围在第6行到最后一行
sed '6,$s/cat/dog/g' pet.txt

# 作用范围在指定行到其后2行,用加号(减号不可用)
sed '1,+2s/cat/dog/g' pet.txt
awk命令

linux awk命令详解 - ggjucheng - 博客园 (cnblogs.com)

awk入门速通 - 骏马金龙 - 博客园 (cnblogs.com)

AWK常用技巧 - 惨绿少年 - 博客园 (cnblogs.com)

find 命令(找文件)

参数说明 :

路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。

expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。

匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份:

  • -name pattern:按文件名查找,支持使用通配符 * 和 ?
  • -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
  • -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
  • -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
  • -user username:按文件所有者查找。
  • -group groupname:按文件所属组查找。

动作: 可选的,用于对匹配到的文件执行操作,比如删除、复制等。

find 命令中用于时间的参数如下:

  • -amin n:查找在 n 分钟内被访问过的文件。
  • -atime n:查找在 n*24 小时内被访问过的文件。
  • -cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。
  • -ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。
  • -mmin n:查找在 n 分钟内被修改过的文件。
  • -mtime n:查找在 n*24 小时内被修改过的文件。

在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。

正数应该表示时间之前,负数表示时间之内。

例如:-mtime 0 表示查找今天修改过的文件,-mtime -7 表示查找一周以前修改过的文件。

查找当前目录下名为 file.txt 的文件:
find . -name file.txt

将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"

将当前目录及其子目录中的所有文件列出:
find . -type f

查找 /home 目录下大于 1MB 的文件:
find /home -size +1M

查找 /var/log 目录下在 7 天前修改过的文件:
find /var/log -mtime +7

查找过去 7 天内被访问的文件:
find /path/to/search -atime -7

在当前目录下查找最近 20 天内状态发生改变的文件和目录:
find . -ctime  20

将当前目录及其子目录下所有 20 天前及更早更新过的文件列出:
find . -ctime  +20

查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;

查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;

查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;

找并执行操作(例如删除):
find /path/to/search -name "pattern" -exec rm {} \;
这个例子中,-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,\; 表示命令结束。

mkdir快捷指令

1、-m, --mode=MODE

给创建的目录设置权限

2、-p, --parents

创建父目录,如果父目录已经存在不会出现错误

3、-v, --verbose

为每一个创建的目录打印一个信息

mkdir -pv /etc/pki/CA/{cert,crl,newcerts}



mkdir: created directory '/etc/pki/CA'
mkdir: created directory '/etc/pki/CA/cert'
mkdir: created directory '/etc/pki/CA/crl'
mkdir: created directory '/etc/pki/CA/newcerts'

root@cao-virtual-machine:/etc/pki/CA# ls
cert  crl  newcerts
//三个目录

Linux df 命令

命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计

# df -h 
Filesystem      Size  Used   Avail Use% Mounted on 
/dev/sda6       29G   4.2G   23G   16%     / 
udev            1.5G  4.0K   1.5G   1%     /dev 
tmpfs           604M  892K   603M   1%     /run 
none            5.0M     0   5.0M   0%     /run/lock 
none            1.5G  156K   1.5G   1%     /run/shm 

Linux du 命令

Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小

# du -h test
608K    test/test6
308K    test/test4
4.0K    test/scf/lib
4.0K    test/scf/service/deploy/product
4.0K    test/scf/service/deploy/info
12K     test/scf/service/deploy
16K     test/scf/service
4.0K    test/scf/doc
4.0K    test/scf/bin
32K     test/scf
8.0K    test/test3
1.3M    test

mount指令

//将 /dev/hda1 挂在 /mnt 之下。
#mount /dev/hda1 /mnt

Linux fdisk 命令

Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。

fdisk [必要参数][选择参数]

必要参数:

-l 列出素所有分区表

-u 与 -l 搭配使用,显示分区数目

选择参数:

-s<分区编号> 指定分区

-v 版本信息

菜单操作说明

  • m :显示菜单和帮助信息
  • a :活动分区标记/引导分区
  • d :删除分区
  • l :显示分区类型
  • n :新建分区
  • p :显示分区信息
  • q :退出不保存
  • t :设置分区号
  • v :进行分区检查
  • w :保存修改
  • x :扩展应用,高级功能
# fdisk -l  //显示当前分区情况

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *      1     13   104391  83 Linux
/dev/sda2       14    1305  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

# fdisk -lu   //显示SCSI硬盘的每个分区情况

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *     63   208844   104391  83 Linux
/dev/sda2     208845  20964824  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

Disk /dev/sdb doesn't contain a valid partition table

 压缩指令

gzip

Linux gzip命令用于压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

[root@runoob.com a]# ls //显示当前目录文件
a.c b.h d.cpp
[root@runoob.com a]# gzip * //压缩目录下的所有文件
[root@runoob.com a]# ls //显示当前目录文件
a.c.gz    b.h.gz    d.cpp.gz
[root@runoob.com a]# 
[root@runoob.com a]# gzip -dv * //解压文件,并列出详细信息
a.c.gz:     0.0% -- replaced with a.c
b.h.gz:     0.0% -- replaced with b.h
d.cpp.gz:     0.0% -- replaced with d.cpp
[root@runoob.com a]# 
tar
# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c

# tar -tzvf test.tar.gz 
-rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

# tar -xzvf test.tar.gz 
a.c

-c或--create 建立新的备份文件。
-f<备份文件>或--file=<备份文件> 指定备份文件。
-t或--list 列出备份文件的内容。
-v或--verbose 显示指令执行过程。
-z或--gzip或--ungzip 通过gzip指令处理备份文件。
zip
将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html

如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *


//-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。

从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c

//-d 从压缩文件内删除指定的文件。
//-V 保留VMS的文件版本信息。

解压a.c 
unzip html.zip 
 rar 命令

示例:        

  1. # 压缩文件

  2. rar a -r test.rar file

  3. # 解压文件

  4. unrar x test.rar

释义:

a : 添加到压缩文件

-r : 递归处理

x : 以绝对路径解压文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值