加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell学习笔记

发布时间:2020-12-15 17:07:42 所属栏目:安全 来源:网络整理
导读:一,命令 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 --根据文件名查
一,命令 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' 查看文件更新并过滤

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读