您的位置:首页 > 运维架构 > Shell

shell学习笔记

2016-01-13 13:37 477 查看
一,命令

cat:

1,cat -n 1.txt –显示行号

2,cat -s 1.txt –压缩空白行

3,cat 1.txt | tr -s ‘\n’ –tr移除空白行

4,录制和回放 script scriptreplay

find:

1,find . -print –打印文件和目录的文件

2,find . -name “example*” -print –根据文件名查找 不去分大小写

3,find . ! -name “*.txt” -print –查找非txt文件

4,find . -maxdepth(-mindepth) 2 -type f -print –查找深度为2 的文件 [-type f(文件), l(符号链接), d(目录),]

5,find . -type f -atime (+-)7 -print –查找 (超过 之内)7天访问过的文件 根据文件时间检索

6,find . -type f -size 2k –文件大小

xargs:

1,cat 1.txt | xargs –单行输出

2,cat 2.txt | xargs -n 3 –每行3字符串输出

3,cat 1.txt | xargs -d ‘xx’ –以‘xx’ 分隔

查找包含某个字符串的文件,并替换

Example

grep -rl ‘windows’ ./ | xargs sed -i ‘s/windows/linux/g’

This will search for the string ‘windows’ in all files relative to the current directory and replace ‘windows’ with ‘linux’ for each occurrence of the string in each file.

tr: 转换,文本替换工具

1,echo “ABCDEFG” | tr ‘A-Z’ ‘a-z’ –转化为小写

2,echo 123543 | tr ‘0-9’ ‘123456’ –加密

3,echo 789654 | tr ‘123456’ ‘0-9’ –解密

4,ROT13算法 加解密

5,echo ‘Hello 123 world 7998’ | tr -d ‘0-9’ –删除数字并打印

md5sum :校验与核实

1,md5sum 1.txt –查看1.txt的MD5 36个字符的16进制串

2,md5sum 1.txt > 1.md5 –将1.txt文件的MD5信息保存在1.md5文件中 (文件名可为多个)

3,md5sum -c 1.md5 –校验当前文件夹下是否有与1.md5中md5信息匹配的文件

4,md5deep -rl shell > shel.md5 –查看shell文件夹md5,-r 使用递归方式 -l 使用相对路径

sort 排序,单一与重复

1,sort 1.txt –输出排序后的信息

2,sort 1.txt | uniq –排序并去除重复的行

3,sort -n 1.txt –按数字排序

4,sort -r 1.txt –逆序排序

5,sort -M 1.txt –按月份排序

6,sort -n -r -k 1 1.txt –按数字,逆序,第1列,排序(-nrk)

7,sort -k 2 1.txt –按第2列排序

8,sort 1.txt | uniq -u –只显示唯一行(查看没有出现重复的行)

9,sort 1.txt | uniq -c –统计各行在文件中出现的次数

10,sort 1.txt | uniq -d –找出文件中出现重复的行

dd,split,rename 分隔文件和数据

1,dd if=3.log bs=100k count=1 of=data.file –以3.log为模板,分隔出1块大小为100k的文件data.file (count=2 则文件大小为200k)

2,split -b 10k data.file –将data.file按每份10k的大小分隔出多个文件

3,split -l 100 data.file –将data.file分隔成多个文件,每个文件100行

4,split -l 200 3.log -d -a 4 zhongdui –每个文件200行,文件分别为zhongdui0000,zhongdui0001,zhongdui0002

批量重命名和移动

1,重命名.jpg .png

rename.sh

count=1;

二,以文件之名

chmod权限

1,ls -l 查看文件权限如下

drwxrwxr-x 2 kongdexing kongdexing 4096 Dec 31 15:35 ./

drwxrwxr-x 11 kongdexing kongdexing 4096 Dec 31 10:29 ../

-rw-rw-r– 1 kongdexing kongdexing 66 Dec 31 13:08 11.txt

-rw-rw-r– 1 kongdexing kongdexing 107 Dec 31 14:04 1.txt

-rw-rw-r– 1 kongdexing kongdexing 103 Dec 31 13:57 2.txt

-rw-rw-r– 1 kongdexing kongdexing 174147 Dec 31 14:29 3.log

-rw-rw-r– 1 kongdexing kongdexing 55 Dec 31 12:05 4.txt

-rw-rw-r– 1 kongdexing kongdexing 17814 Nov 27 16:45 abc.jpg

-rwxrwxrwx 1 kongdexing kongdexing 11 Dec 31 11:38 cecho.sh*

-rw-rw-r– 1 kongdexing kongdexing 67922 Nov 27 16:18 danza.jpg

-rw-rw-r– 1 kongdexing kongdexing 102400 Dec 31 14:33 data.file

-rw-rw-r– 1 kongdexing kongdexing 102400 Dec 31 15:35 junk.data

-rwxrwxrwx 1 kongdexing kongdexing 173 Dec 31 15:23 rename.sh*

-rw-rw-r– 1 kongdexing kongdexing 120 Dec 31 12:05 tr.md5

-rw-rw-r– 1 kongdexing kongdexing 18 Dec 31 12:02 tr.txt

第一列输出明确了后面的输出,其中第一个字母对应关系

- 普通文件,d 目录,c 字符设备,b 块设备,l 符号链接,s 套接字,p 管道

剩下的部分划分三个组,每组3个字符(—),分别对应用户权限,用户组权限,其他用户权限。这9个字符中的每一个字符指明是否设置了某种权限。如果设置了权限,对应位置上会出现一个字符,否则就以一个‘-’表明没有设置对应的权限。

r 可读,w 可写,x 可执行

2,权限修改

u -用户,g-用户组,o-其他实体权限,a-所有

chmod a+x 1.txt – 给所有类别添加可执行权限

chmod u-rw 1.txt –删除用户可读可写权限

8进制设置权限:r– = 4, -w- = 2, –x = 1; 所以 rwx = 7,chmod 777 1.txt 设置全部权限可用

3,chmod 777 . -R –递归方式修改当前目录下的所有文件和子目录的权限

三 让文件飞

chatter,touch,生成iso文件及混合iso,diff

1,sudo chatter +i 1.txt –文件设置为不可修改

2,touch 112.txt – 创建112.txt文件(若文件存在,将该文件相关的所有时间戳更改为当前时间)

3,touch -a 112.txt –若文件存在,只更改文件访问时间

4,touch -m 112.txt –文件存在,更改文件内容修改时间

5,cat 11.txt > image.iso –用cat创建iso镜像算是小技巧

6,diff 11.txt 4.txt – 非一体化(non-unified)形式的diff输出

7,diff -u 11.txt 4.txt –一体化形式的diff输出

8,diff -u 11.txt 4.txt > diff11-4.patch –将diff的输出重定向到一个文件

9,patch -p1 11.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: