0%

详细情况:

开机后画面停留在白色MI,然后就是死等也等不开机。如此这般,设置无法关机,只能拔掉电板。

解决方法:

  1. 按住开机键 和 音量+ ;
  2. 选择(按电源键选择)简体中文,选择重启手机;
  3. 这时候提示两个系统 选择后缀没有注释最近的选项,然后OK。

PS.有注释的也就是无法启动的OS,我的问题应该是在MIUI上安装busybox导致的。

本来打算重新刷机的,看来不用了。

嘻嘻。

高兴

一切皆可查的 find

find命令用来在指定目录下查找文件,功能相当之强大。

官方定义为:

find - search for files in a directory hierarchy

Linux的哲学是一切皆文件,那么find的使命就是一切皆可查

语法

使用语法为:

1
$ find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

比较常用的几个参数为:

  • -exec <执行指令>:假设find指令的回传值为True,就执行该指令;
  • -size <文件大小>:查找符合指定的文件大小的文件;
  • -mtime <24小时>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
    -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -type <文件类型>:只寻找符合指定的文件类型的文件;

无参数

如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls -l
total 310M
-rw-rw-r-- 1 user user 10M Mar 21 20:01 a
drwxrwxr-x 2 user user 22 Mar 21 20:01 aa
-rw-rw-r-- 1 user user 100M Mar 21 20:01 b
-rw-rw-r-- 1 user user 200M Mar 21 20:01 c


$ find
.
./a
./b
./c
./test

查找小于,等于和大于100MB的文件

通过-size大小来查找文件

1
2
3
4
5
6
7
8
9
10
$ find . -size -100M
.
./a
./aa
$ find . -size 100M
./b
$ find . -size +100M
./c
./aa/d

查找多长时间修改过

可以通过参数-mtime来查找文件的修改时间,比如如下可以查找当前目录下最近60天没有被修改的文件。

1
2
3
4
$ find . -mtime +60

# 最近2天以内未修改
$ find . –mtime -2

如何删除扩展名为.tar.gz并且大于100M的压缩文件?

当你不想意外删除文件时,那么当执行下列命令要小心点。最好的方法是利用ls -l去执行下列相同命令以确保当执行rm命令时,你知道什么文件会被删除。

1
2
3
$ find / -type f -name *.tar.gz -size +100M -exec ls -l {} \; 

$ find / -type f -name *.tar.gz -size +100M -exec rm -f {} \;

稍微复杂但是很有用的命令

我经常把 find 命令和他的选项 exec一起使用,比如我想查找一个目录中的所有文件并将其更改其权限。可以通过以下简单命令完成:

$ find /path/ -type f -exec chmod 644 {} \;

这个命令会递归搜索指定目录内/path/下的所有文件,并对找到的文件执行 chmod 命令。

Linux 之 find 命令

find命令用来在指定目录下查找文件,功能相当之强大。

官方定义为:

find - search for files in a directory hierarchy

Linux的哲学是一切皆文件,那么find的使命就是一切皆可查

语法

使用语法为:

1
$ find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

比较常用的几个参数为:

  • -exec <执行指令>:假设find指令的回传值为True,就执行该指令;
  • -size <文件大小>:查找符合指定的文件大小的文件;
  • -mtime <24小时>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
    -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -type <文件类型>:只寻找符合指定的文件类型的文件;

1⃣ 无参数

如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls -l
total 310M
-rw-rw-r-- 1 user user 10M Mar 21 20:01 a
drwxrwxr-x 2 user user 22 Mar 21 20:01 aa
-rw-rw-r-- 1 user user 100M Mar 21 20:01 b
-rw-rw-r-- 1 user user 200M Mar 21 20:01 c


$ find
.
./a
./b
./c
./test

2⃣ 查找小于,等于和大于100MB的文件

通过-size大小来查找文件

1
2
3
4
5
6
7
8
9
10
$ find . -size -100M
.
./a
./aa
$ find . -size 100M
./b
$ find . -size +100M
./c
./aa/d

3⃣ 查找多长时间修改过

可以通过参数-mtime来查找文件的修改时间,比如如下可以查找当前目录下最近60天没有被修改的文件。

1
2
3
4
$ find . -mtime +60

# 最近2天以内未修改
$ find . –mtime -2

4⃣ 稍微复杂但是很有用的命令

我经常把 find 命令和他的选项 exec一起使用,比如我想查找一个目录中的所有文件并将其更改其权限。可以通过以下简单命令完成:

1
$ find /path/ -type f -exec chmod 644 {} \;

这个命令会递归搜索指定目录内/path/下的所有文件,并对找到的文件执行 chmod 命令。

Linux 之 find 命令

find命令用来在指定目录下查找文件,功能相当之强大。

官方定义为:

find - search for files in a directory hierarchy

Linux的哲学是一切皆文件,那么find的使命就是一切皆可查

语法

使用语法为:

1
$ find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

比较常用的几个参数为:

  • -exec <执行指令>:假设find指令的回传值为True,就执行该指令;
  • -size <文件大小>:查找符合指定的文件大小的文件;
  • -mtime <24小时>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
    -name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
  • -type <文件类型>:只寻找符合指定的文件类型的文件;

无参数

如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls -l
total 310M
-rw-rw-r-- 1 user user 10M Mar 21 20:01 a
drwxrwxr-x 2 user user 22 Mar 21 20:01 aa
-rw-rw-r-- 1 user user 100M Mar 21 20:01 b
-rw-rw-r-- 1 user user 200M Mar 21 20:01 c


$ find
.
./a
./b
./c
./test

查找小于,等于和大于100MB的文件

通过-size大小来查找文件

1
2
3
4
5
6
7
8
9
10
$ find . -size -100M
.
./a
./aa
$ find . -size 100M
./b
$ find . -size +100M
./c
./aa/d

查找多长时间修改过

可以通过参数-mtime来查找文件的修改时间,比如如下可以查找当前目录下最近60天没有被修改的文件。

1
2
3
4
$ find . -mtime +60

# 最近2天以内未修改
$ find . –mtime -2

稍微复杂但是很有用的命令

我经常把 find 命令和他的选项 exec一起使用,比如我想查找一个目录中的所有文件并将其更改其权限。可以通过以下简单命令完成:

1
$ find /path/ -type f -exec chmod 644 {} \;

这个命令会递归搜索指定目录内/path/下的所有文件,并对找到的文件执行 chmod 命令。

一个搜索文件的好例子是:

1
# find /home/user -type f

这个命令会搜索 /home/user 目录下的所有文件。find 命令真的很强大,你可以传递更多选项给它使得你的搜索更加详细。如果你想搜索超过特定大小的文件,可以使用:

1
# find . -type f -size 10M

上面的命令会搜索当前目录中所有大于 10M 的文件。确保不要在你 Linux 系统的根目录运行该命令,因为这可能导致你的机器 I/O 瓶颈。

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;

-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定ls参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定-print参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定-print0参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定-printf参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码&gt;:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-ilname<范本样式>:此参数的效果和指定-lname参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定-name参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定-path参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定-regexe参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定-xdev相同;

-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定-exec类似,但在执行指令之前会先询问用户,若回答y或Y,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有&ldquo;./&rdquo;字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;

-true:将find指令的回传值皆设为True;

-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-xdev:将范围局限在先行的文件系统中;
-xtype<文件类型>:此参数的效果和指定type参数类似,差别在于它针对符号连接检查。

如何查找在最近几天没有被修改过的文件?

下面这条命令会列出在当前目录下在最近60天没有被修改过文件

# find . -mtime +60

如何查找在最近几天被修改的文件?

下面这条命令会列出在当前目录下在最近2天被修改过文件

# find . –mtime -2

所以+-可以查找未被修改和修改过的文件。

如何删除目录/home/aaa/test中扩展名为.tar.gz并且大于100M的压缩文件?

先来一个例子:

我想查找后缀为tar.gz的,大于100M的文件,并详细查看,可以使用

find /home/aaa/test -type f -name *.tar.gz -size +100M -exec ls -l {} ;

find / home/aaa/test -type f -name *.tar.gz -size +100M -exec rm -f {} ;

find

◦find [搜索范围] [匹配条件]

◦1. find /etc –name passwd

◦2.

◦3. find / -user yourname

◦4. find / -amin/-cmin/-mmin

–amin – access访问时间 –

cmin – change 文件属性

–mmin – modify 文件内容

◦ 5. find / -type f/d/l 文件/目录/软链接

locate

◦locate filename

◦/var/lib/mlocate/mlocate.db && updated

which && whereis 查找命令

在home目录查找以.txt结尾的文件名

1
find /home -name "*.txt"

在home目录查找以.txt结尾的文件名,但是忽略大小写

1
find /home -iname "*.txt"

在home目录查找以.txt和.pdf结尾的文件名,但是忽略大小写

1
find /home -name "*.txt" -o -name ".pdf"

匹配文件路径或者文件

1
find . -path "*path*"

否定参数

找出home目录下不是以.txt结尾的文件

1
find /home ! -name "*.txt"

根据文件类型进行搜索

1
find . -type 类型参数

其中类型参数如下:

  • f 普通文件
  • l 符号链接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p FIFO

在home目录查找以.txt结尾的文件名,但是忽略大小写

向下最大深度限制为3

1
find . -maxdepth 3 -type f

根据文件时间戳进行搜索

1
find . -type f 时间戳

每个文件都有3个时间戳

  1. 访问时间 -atime 天 -amin 分钟 :用户最后一次访问时间
  2. 修改时间 -mtime 天 -mmin 分钟 :文件最后一次修改时间
  3. 变化时间 -ctime 天 -cmin 分钟 :文件数据元(如权限)最后一次修改时间

搜索最近7天内访问过的文件

1
find . -type f -atime -7

搜索恰好7天访问过的文件

1
find . -type f -atime 7

搜索超过7天内访问过的文件

1
find . -type f -atime +7

less - 少就是多

Linux系统如果希望查阅文件,有三个命令,是在命令行里面,如果GUI界面,请自行绕过,选择太多了。

  • cat 入门级的
  • more 文件内容一屏幕装不下的时候使用的
  • less 可以简单地认为是more的升级版 , 首推

我首推less命令的原因是该命令可以往回卷动浏览已经看过的部分,但是more是不可以的。或者可以认为less是查看模式下的vim

首先看看为什么用less命令吧。

If the file is longer than the size of Terminal window then it will be not easy to read or view all the content of the file easily. But there is a tweak, you can use less with cat command. It will give user an ability to scroll forward and backward through the content of the files using PgUp and PgDn keys or Up and Down Arrow keys on the keyboard.

如题,在文件内容足够多的时候,屏幕足够不大的时候,就会出现上面描述的问题,这就出现了less命令。

Linux系统可以说把少就是多这个哲学用到了极致,恰如小巧优美的C语言,不该有的功能坚决不给你提供,应该有的也不给你提供,哈哈,比如内存的管理,程序员就是神,你就是神。

命令简介

less - opposite of more # 我觉得这是废话

我嘞个去,什么鬼?这是什么意思,我也知道少的反义词是多,大的反义词是小。

别急,那就看看more的含义吧,不会是 opposite of less 吧。OMG

more - file perusal filter for crt viewing

什么意思,淡定,听我说,在Linux系统中有三种命令可以用来查阅全部的文件,分别是catmoreless命令,关于more的解释主要针对在上古年代的计算机,你不理解crt也没有关系,毕竟现在已经是Retina的年代了。

一起看看下面的实例吧。

命令格式

1
less [参数] 文件

与其他命令类似,直接跟上文件名即可。

接下来依旧使用/etc/services来进行示例。

-m 显示类似more命令的百分比

这个是more命令比较好用的一个功能,可以显示目前浏览的百分比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ less -m /etc/services

auditd 48/udp # Digital Audit Daemon
la-maint 51/tcp # IMP Logical Address Maintenance
la-maint 51/udp # IMP Logical Address Maintenance
xns-time 52/tcp # XNS Time Protocol
xns-time 52/udp # XNS Time Protocol
xns-ch 54/tcp # XNS Clearinghouse
xns-ch 54/udp # XNS Clearinghouse
isi-gl 55/tcp # ISI Graphics Language
isi-gl 55/udp # ISI Graphics Language
xns-auth 56/tcp # XNS Authentication
xns-auth 56/udp # XNS Authentication
xns-mail 58/tcp # XNS Mail
xns-mail 58/udp # XNS Mail
ni-mail 61/tcp # NI MAIL
ni-mail 61/udp # NI MAIL
5%

此时可以在左下角看到,有个百分比。

-N 显示行号

使用-N可以实现cat中-n的效果,显示行号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $ less -N /etc/services
1 # /etc/services:
2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
3 #
4 # Network services, Internet style
5 # IANA services version: last updated 2013-04-10
6 #
7 # Note that it is presently the policy of IANA to assign a single well-known
8 # port number for both TCP and UDP; hence, most entries here have two entries
9 # even if the protocol doesn't support UDP operations.
10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
11 # are included, only the more common ones.
12 #
13 # The latest IANA port assignments can be gotten from
14 # http://www.iana.org/assignments/port-numbers
15 # The Well Known Ports are those from 0 through 1023.
16 # The Registered Ports are those from 1024 through 49151

搜索字符串

在less中,可以比较容易的搜索字符串,比如可以:

  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

其实这些功能或者热键与vim相同。

在用less打开文件后,可以直接输入/number来搜索nubmer这个字符串,回车后可以看到该字符串高亮显示,这个也是优于more的一点;同样?number可以反向搜索number字符串。

可以通过-i选项来忽略搜索时的大小写

设置缓冲区的大小

可以通过-b <缓冲区大小> 设置缓冲区的大小,这个一般用于文件很大、巨大、不是一般大的时候,此时你的内容可能不足以承载打开整个文件,比如4G的内存,而你却要打开10G的文件,此时可以通过该选项来设置,默认单位为KB,比如

1
$ less -b 1024 filename

即打开1024KB的文件缓冲

编辑less浏览的文件

要编辑一个正在用less浏览的文件,可以按下v。你就可以用变量$EDITOR所指定的编辑器来编辑了: 按下v键来编辑文件,退出编辑器后,你可以继续用less浏览了。

移动

我比较喜欢less的原因是对于该命令的很多操作都是与vim相同,而我是一个重度vimer,so 推荐less

说几个比较简单的移动:

  • j 向下移动
  • k 向上移动
  • g 移动到第一行
  • G 移动到最后一行
  • b 向后翻一页
  • d 向后翻半页
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一行
  • 回车键 滚动一页

less - 少就是多

Linux系统如果希望查阅文件,有三个命令,是在命令行里面,如果GUI界面,请自行绕过,选择太多了。

  • cat 入门级的
  • more 文件内容一屏幕装不下的时候使用的
  • less 可以简单地认为是more的升级版 , 首推

我首推less命令的原因是该命令可以往回卷动浏览已经看过的部分,但是more是不可以的。或者可以认为less是查看模式下的vim

首先看看为什么用less命令吧。

If the file is longer than the size of Terminal window then it will be not easy to read or view all the content of the file easily. But there is a tweak, you can use less with cat command. It will give user an ability to scroll forward and backward through the content of the files using PgUp and PgDn keys or Up and Down Arrow keys on the keyboard.

如题,在文件内容足够多的时候,屏幕足够不大的时候,就会出现上面描述的问题,这就出现了less命令。

Linux系统可以说把少就是多这个哲学用到了极致,恰如小巧优美的C语言,不该有的功能坚决不给你提供,应该有的也不给你提供,哈哈,比如内存的管理,程序员就是神,你就是神。

命令简介

less - opposite of more # 我觉得这是废话

我嘞个去,什么鬼?这是什么意思,我也知道少的反义词是多,大的反义词是小。

别急,那就看看more的含义吧,不会是 opposite of less 吧。OMG

more - file perusal filter for crt viewing

什么意思,淡定,听我说,在Linux系统中有三种命令可以用来查阅全部的文件,分别是catmoreless命令,关于more的解释主要针对在上古年代的计算机,你不理解crt也没有关系,毕竟现在已经是Retina的年代了。

一起看看下面的实例吧。

命令格式

1
less [参数] 文件

与其他命令类似,直接跟上文件名即可。

接下来依旧使用/etc/services来进行示例。

-m 显示类似more命令的百分比

这个是more命令比较好用的一个功能,可以显示目前浏览的百分比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ less -m /etc/services

auditd 48/udp # Digital Audit Daemon
la-maint 51/tcp # IMP Logical Address Maintenance
la-maint 51/udp # IMP Logical Address Maintenance
xns-time 52/tcp # XNS Time Protocol
xns-time 52/udp # XNS Time Protocol
xns-ch 54/tcp # XNS Clearinghouse
xns-ch 54/udp # XNS Clearinghouse
isi-gl 55/tcp # ISI Graphics Language
isi-gl 55/udp # ISI Graphics Language
xns-auth 56/tcp # XNS Authentication
xns-auth 56/udp # XNS Authentication
xns-mail 58/tcp # XNS Mail
xns-mail 58/udp # XNS Mail
ni-mail 61/tcp # NI MAIL
ni-mail 61/udp # NI MAIL
5%

此时可以在左下角看到,有个百分比。

-N 显示行号

使用-N可以实现cat中-n的效果,显示行号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 $ less -N /etc/services
1 # /etc/services:
2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
3 #
4 # Network services, Internet style
5 # IANA services version: last updated 2013-04-10
6 #
7 # Note that it is presently the policy of IANA to assign a single well-known
8 # port number for both TCP and UDP; hence, most entries here have two entries
9 # even if the protocol doesn't support UDP operations.
10 # Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
11 # are included, only the more common ones.
12 #
13 # The latest IANA port assignments can be gotten from
14 # http://www.iana.org/assignments/port-numbers
15 # The Well Known Ports are those from 0 through 1023.
16 # The Registered Ports are those from 1024 through 49151

搜索字符串

在less中,可以比较容易的搜索字符串,比如可以:

  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

其实这些功能或者热键与vim相同。

在用less打开文件后,可以直接输入/number来搜索nubmer这个字符串,回车后可以看到该字符串高亮显示,这个也是优于more的一点;同样?number可以反向搜索number字符串。

可以通过-i选项来忽略搜索时的大小写

设置缓冲区的大小

可以通过-b <缓冲区大小> 设置缓冲区的大小,这个一般用于文件很大、巨大、不是一般大的时候,此时你的内容可能不足以承载打开整个文件,比如4G的内存,而你却要打开10G的文件,此时可以通过该选项来设置,默认单位为KB,比如

1
$ less -b 1024 filename

即打开1024KB的文件缓冲

编辑less浏览的文件

要编辑一个正在用less浏览的文件,可以按下v。你就可以用变量$EDITOR所指定的编辑器来编辑了: 按下v键来编辑文件,退出编辑器后,你可以继续用less浏览了。

移动

我比较喜欢less的原因是对于该命令的很多操作都是与vim相同,而我是一个重度vimer,so 推荐less

说几个比较简单的移动:

  • j 向下移动
  • k 向上移动
  • g 移动到第一行
  • G 移动到最后一行
  • b 向后翻一页
  • d 向后翻半页
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一行
  • 回车键 滚动一页

识别文件类型的file

file鉴别大神

file的官方解释为:

1
file - determine file type

也就是说可以识别文件类型的意思,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的,所以加不加后缀真的无所谓,谁会爱上谁,说起Windows吗,啥也不说了。

下面看几个比较使用的例子。

实例一 :默认

file后直接跟文件,得到如下所示信息

1
2
3
4
$ file book.pdf
delete.pdf: PDF document, version 1.3
➜ file book
delete: PDF document, version 1.3

可以看出加不加后缀都是没有关系的。

实例二:不显示名称

1
2
$ file -b book.pdf
PDF document, version 1.3

加上-b参数,是brief的含义,将只显示文件辨识结果,不显示文件名称了,这个其实对于很多文件而言,不是很友好。

实例三:输出易懂信息

1
2
$ file -i  delete.pdf
delete.pdf: application/pdf; charset=binary

加上-i参数,是mime类型的含义,我也不懂是啥意思,但是我能刚方便地读懂我想知道的文件类型的含义。这就够了,不是吗,毕竟我们是来是用file命令的。

实例四:查看文件中的文件名的文件信息

1
2
3
4
$ cat hello.txt
sunset.jpg
$ file -f hello.txt
sunset.jpg: JPEG image data, JFIF standard 1.01

这个咋听着这么拗口,其实很简单,其实并不难,加上·-f·参数,是file-from类型的含义,到底是几个意思呢,也就是你想查看文件的类型信息的文件名在一个文件里面,从这个文件里面读取文件的信息。

实例五:好看的鸡肋

1
2
$ file -F " === " sunset.jpg
sunset.jpg === JPEG image data, JFIF standard 1.01

这个功能说实话,没搞明白有什么作用,默认的:感觉挺好用的,当然这个应该属于定制型的,就是默认替换掉一些提示信息。

实例六:查看软链接的文件信息

1
2
3
4
$ file a.jpg
a.jpg: symbolic link to `sunset.jpg'
$ file -L a.jpg
a.jpg: JPEG image data, JFIF standard 1.01

默认情况下,如果没有-L参数,只能得到这个文件是软链接的信息,如果加上这个参数,就能看到源文件的文件信息,这个功能还是很赞的。

识别文件类型的file

file的官方解释为:

1
file - determine file type

也就是说可以识别文件类型的意思,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的,所以加不加后缀真的无所谓,谁会爱上谁,说起Windows吗,啥也不说了。

下面看几个比较使用的例子。

实例一 :默认

file后直接跟文件,得到如下所示信息

1
2
3
4
file book.pdf
delete.pdf: PDF document, version 1.3
file book
delete: PDF document, version 1.3

可以看出加不加后缀都是没有关系的。

实例二:不显示名称

1
2
file -b book.pdf
PDF document, version 1.3

加上-b参数,是brief的含义,将只显示文件辨识结果,不显示文件名称了,这个其实对于很多文件而言,不是很友好。

实例三:输出易懂信息

1
2
file -i  delete.pdf
delete.pdf: application/pdf; charset=binary

加上-i参数,是mime类型的含义,我也不懂是啥意思,但是我能刚方便地读懂我想知道的文件类型的含义。这就够了,不是吗,毕竟我们是来是用file命令的。

实例四:查看文件中的文件名的文件信息

1
2
3
4
➜  cat hello.txt
sunset.jpg
➜ file -f hello.txt
sunset.jpg: JPEG image data, JFIF standard 1.01

这个咋听着这么拗口,其实很简单,其实并不难,加上·-f·参数,是file-from类型的含义,到底是几个意思呢,也就是你想查看文件的类型信息的文件名在一个文件里面,从这个文件里面读取文件的信息。

实例五:好看的鸡肋

1
2
➜  file -F " === " sunset.jpg
sunset.jpg === JPEG image data, JFIF standard 1.01

这个功能说实话,没搞明白有什么作用,默认的:感觉挺好用的,当然这个应该属于定制型的,就是默认替换掉一些提示信息。

实例六:查看软链接的文件信息

1
2
3
4
➜  file a.jpg
a.jpg: symbolic link to `sunset.jpg'
➜ file -L a.jpg
a.jpg: JPEG image data, JFIF standard 1.01

默认情况下,如果没有-L参数,只能得到这个文件是软链接的信息,如果加上这个参数,就能看到源文件的文件信息,这个功能还是很赞的。

创建、修改、更新文件的touch

linuxtcpdump命令不常用,一般用来修改文件时间戳(可更改文件或目录的日期时间,包括存取时间和更改时间)或者新建一个不存在的文件。

命令格式

1
$ touch [选项]... 文件...

其中选项如下所示:

  • -a 只更改存取时间。
  • -c 或–no-create  不建立任何文档。
  • -d  使用指定的日期时间,而非现在的时间。
  • -m 只更改变动时间。
  • -r  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
  • -t  使用指定的日期时间,而非现在的时间。

创建不存在的文件

1
2
3
4
5
6
$ ls

$ touch a.txt b.txt

$ ls
a.txt b.txt

更新b.txt 的时间和 a.txt 时间戳相同

1
2
# 将文件b.txt的时间戳与a.txt保持一致
$ touch -r a.txt b.txt

设定文件的时间戳

1
2
3
4
5
# 设定filename的时间戳为2012年05月06日13时14分15秒
$ touch -t 201205061314.15 filename

$ ls -l
-rw-rw-r--. 1 user user 0 May 6 2012 filename

其中-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time的形式如下为: [[CC]YY]MMDDhhmm[.SS]

其中秒及年可以省略。

创建、修改、更新文件的touch

linuxtouch命令不常用,一般用来修改文件时间戳(可更改文件或目录的日期时间,包括存取时间和更改时间)或者新建一个不存在的文件。

命令格式

1
$ touch [选项]... 文件...

其中选项如下所示:

  • -a 只更改存取时间。
  • -c 或–no-create  不建立任何文档。
  • -d  使用指定的日期时间,而非现在的时间。
  • -m 只更改变动时间。
  • -r  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
  • -t  使用指定的日期时间,而非现在的时间。

创建不存在的文件

1
2
3
4
5
6
$ ls

$ touch a.txt b.txt

$ ls
a.txt b.txt

更新b.txt 的时间和 a.txt 时间戳相同

1
2
# 将文件b.txt的时间戳与a.txt保持一致
$ touch -r a.txt b.txt

设定文件的时间戳

1
2
3
4
5
# 设定filename的时间戳为2012年05月06日13时14分15秒
$ touch -t 201205061314.15 filename

$ ls -l
-rw-rw-r--. 1 user user 0 May 6 2012 filename

其中-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time的形式如下为: [[CC]YY]MMDDhhmm[.SS]

其中秒及年可以省略。