shell学习笔记

一,命令
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 <diff11-4.patch --11.txt的内容现在和4.txt一样了。
       
head与tail--打印文件的前10行和后10行
        1,head 3.log --打印前10行
        2,head -n 5 3.log --打印前5行
        3,head -n -100 3.log --打印除了最后100行之外的所有行
        4,tail 11.txt --打印最后10行 (同cat 11.txt | tail)
        5,ls -d */ --列出当前路径下的目录。同 ls -F | grep "/$"; ls -l | grep '^d'; find . -type d -maxdepth 1 -print


pushed和popd快速定位
        1,cd - --退回上一次所在目录(适用于两个位置的切换)
        2,pushd  /var/www(当前路径) , 
        3,dirs 查看栈内容(从左至右,从0到n计数)。pushd +3 将栈进行翻转并切换到栈中id为3的位置。popd +0 --移除最近压入的路径并切换到下一个目录
            
统计文件行数,单词数,字符数
        1,wc -l 11.txt --统计行数,同 cat 11.txt | wc -l
        2,wc -w 11.txt -- 统计单词数,同 cat 11.txt | wc -w
        3,wc -c 11.txt -- 统计字符数,同 cat 11.txt | wc -c
        4,wc 11.txt --打印出文件的行数,单词数,字符数,彼此之间用制表符分隔
        5,wc 11.txt -L --最长行的长度
        6,tree shell --打印shell目录的树形结构
        7,tree shell -P *.sh  --重点标记匹配某种样式的文件
        8,tree shell -I *.sh   --标记除符合某种形式之外的那些文件
        9,tree h --同时打印文件和目录的大小
grep
        1,grep 'text' . -R -n --当前目录下递归查找含有‘text’ 的源码,并在输出时显示行号
         2,cat 1.txt | grep 'uniq' -A 3 --打印匹配某个结果之后的3行 (-B 之前的,-C 之前以及之后的3行)
         3,cat 1.txt | grep -E 'is|uniq' --多个匹配,匹配 is  与 uniq字符串


四:一团乱麻
        1,wget url --下载   wget -c url --断点续传 [用于文件下载的命令行工具]
        2,wget --limit-rate 20k url   ---下载限速20k
        3,wget -Q 100m url  --指定最大下载配额
        4,lynx 以格式化纯文本形式下载网页
        5,curl 支持包括HTTP,HTTPS,FTP等众多协议,post,cookie,认证,从指定偏移处下载,参照页,用户代理字符串,扩展头部,限速,文件大小限制,进度条等特性。


五,B计划
 
用tar归档
        1,-c 创建文件 (creat file) 
              -f 指定文件名 (specify filename)
              -v 列出归档内容及更多细节 (verbose)
              -r 向tar文件中再添加文件
              -x 提取 (exact)
              -A 合并多个tar文件
              -u 通过检查时间戳来更新归档文件中的内容


config,host,route,ping,lsof,netstat
       1,ifconfig eth0 --查看单个网络接口的信息  
           HWaddr : 硬件地址(MAC地址) inet addr :IP地址 Bcast : 广播地址  Mask:子网掩码
        2,ifconfig eth0 192.168.0.61  --更改ip地址 (sudo)
        3,ifconfig etho 192.168.0.60 netmask 255.255.252.0 --更改子网掩码地址
        4,ifconfig eth0 hw ether 00:24:1d:d6:fe:d3 -- 更改硬件地址
        5,route -n --显示路由表信息
        6,ping www.baidu.com -c 2 --发送2个echo分组后停止发送
        7,lsof -i  --列出开放端口及服务 同 netstat -tnp


六,管家
        1,du 11.txt ---某个文件或多个文件占用的磁盘空间  【du,df是linux中用于统计磁盘使用情况的重要命令】
         2,du -a directory  --递归输出指定目录中所有文件的统计结果
         3,who,w--获取当前登录用户的相关信息
         4,users --登录主机的用户列表
         5,uptime --查看系统通电运行了多长时间
         6,last  --提供登录会话信息  last reboot --获取重启会话信息
         7,head ~/.bash_history  --打印最近10条命令历史记录
         8,ps --收集进程信息
         9,top  --默认输出占用CPU最多的进程列表
        10,ps -eLf --sort -nlwp | head --线程数最多的10个进程
        11,kill -l --列出所有可用的信号
        12,kill -s SIGKILL process_id 或者 kill -9 process_id --强行杀死进程
        13,killall process_name  --通过命令名终止进程
        14,which  --找出某个命令的位置
        15,whereis  --与which类似,但还能打印出其对应的命令手册的位置以及命令源代码的路径
        16,file  --确定文件的类型
        17,whatis  --输出作为参数的命令的简短描述信息
        18,cron --安排脚本在某个时间或每隔一段时间来运行


windows 下用vritualbox 创建ubuntu系统,设置共享文件夹后,ubuntu中提示
“您没有查看“***”的内容所需的权限。”
vboxsf.
执行下列命令:(username)为ubuntu用户名
sudo usermod -a -G vboxsf username



1.tail -f filename 查看文件实时更新内容
2.tail -f filename  | grep -E 'key1|key2|key3'  查看文件更新并过滤


        




















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值