压缩 & 解压
解压
.tar.bz2: tar -jxvf
.tar.gz: tar -zxvf
.tar.xz: 先解开.xz,再使用tar -xvf
.gz: gzip -d
.xz: xz -d
.zip: unzip
如果要解压.rar文件,那么需要先安装unrar:
1 $ sudo apt-get install unrar
压缩
Vim
网络
查看MAC地址
1 2 3 $ sudo lshw -c network | grep serial or $ sudo lshw -C network
文件
搜索
文件搜索
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
但常用形式可以简化为:
find [path…] [expression]
path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
expression: -options [-print -exec -ok …]
options
-name: 按照文件名查找文件。
-iname: 按照文件名查找文,忽略大小写。
-mtime -n +n: 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前
-type d/p/l/f/…: 查找某一类型的文件,目录/管道文件/符号链接文件/普通文件/…
-follow: 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-perm xxx: 按照文件权限来查找文件,eg. -perm 755
-size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-prune: 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user: 按照文件属主来查找文件。
-nouser: 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-group: 按照文件所属的组来查找文件。
-nogroup: 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
其他
-print: find命令将匹配的文件输出到标准输出
–exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
1 2 3 4 5 6 7 8 9 10 11 $ find ./ -size 0 -exec rm {} \; 或 $ rm -i `find ./ -size 0 ` 或 $ find ./ -size 0 | xargs rm -f & $ find . -type f -exec ls -l { } \; $ find /logs -type f -mtime +5 -exec rm { } \;
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
1 2 $ find . -name "*.conf" -mtime +5 -ok rm { } \;
示例
.
├── c
│ ├── a.c
│ └── t.c
└── other
└── b.pdf
1 2 3 $ find ./ -iname "file_name" ./c /a.c ./c /t.c
1 2 3 4 $ find ./ -iname "*.txt" -o -iname "*.pdf" ./c/a .c ./c/t.c ./other/b .pdf
内容搜索
grep: global search regular expression(RE) and print out the line
Usage: grep [OPTION]… PATTERN [FILE]…
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i ‘hello world’ menu.h main.c
grep用于搜索由Pattern参数指定的模式,并将每个匹配的行写入标准输出中。
示例
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 $ grep 'test' d*$ grep 'test' aa bb cc$ grep '[a-z]' aa$ grep 'w(es)t.*' aa $ grep -i pattern files $ grep -l pattern files $ grep -L pattern files $ grep -w pattern files $ grep -C number pattern files $ grep pattern1 | pattern2 files $ grep pattern1 files | grep pattern2
权限
1 $ chmod -r xxx file_name
其中xxx为owner/group/world的顺序,其中x为一个三位二进制数。
x可为000~111之间的任意值,代表不同的权限。
4(100): read®
2(010): write(w)
1(001): excute(x)
一般为755,可改为775。
修改文件用户组
修改文件拥有者
xargs
删除文件
删除本目录下所有以hello开头的文件(包括文件夹):
1 $ find . -iname "hello*" | xargs rm -rf
整理文件
将本目录下所有.c
文件都放至src
文件夹中:
1 $ ls *.c | xargs -I {} mv {} src
统计代码行数
统计当前目录下(包括子文件夹)所有.cpp
文件的代码行数:(包含空行)
1 2 $ find . -iname "*.cpp" | xargs cat | wc -l 统计代码行数,过滤空行:
1 $ find . -iname "*.cpp" | xargs cat | grep -v ^$ | wc -l