|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
自娱自乐,我决意启动一台Linux服务器,然后以root用户实行“rm–rf/”命令,然后察看下哪些文件大概指令会幸存上去。了局是甚么也没少!因而你必需增添—no-preserce-root再试一遍:
1
#rm-rf--no-preserve-root/
当你按下“Enter”时,一些主要的工具,好比
1
2
3
4
5
6
7
/bin/ls
/bin/cat
/bin/chmod
/usr/bin/file
将会回声消散!可是你以后的SSH毗连和bash终端都还在,这标明一切bash相干的内建指令都没有受影响,好比echo。
成为Bash达人
1
2
3
root@rmrf:/#ls
-bash:/bin/ls:Nosuchfileordirectory
实行以上命令,发明已没有ls可用,可是echo和fileglobs还在。使用这些“幸存者”们,我们能够做点甚么呢?
1
2
3
4
5
6
7
root@rmrf:/#echo*
devprocrunsys
#echo/dev/pts/*
/dev/pts/0/dev/pts/3/dev/pts/ptmx
注重!/dev,/proc,/run,/sys还在,我们必定要保留好它们。假如有了ls指令,那末对目次下内容的读取操纵将会加倍复杂。
1
2
3
4
5
6
7
root@rmrf:/#foriiin/dev/pts/*;doecho$ii;done
/dev/pts/0
/dev/pts/3
/dev/pts/ptmx
很多Reddit用户指出,printf还是可用的。CAMH-说:printf会将参数顺次格局化到输入字符串中往。
1
root@rmrf:/#ls(){printf%sn${1:+${1%/}/}*;}
既然在bash下能够界说函数,那末我们能够自建一个ls工具,固然功效还不是很完美。
1
root@rmrf:/#ls(){printf%sn${1:+${1%/}/}*;}
1
-bash:syntaxerrornearunexpectedtoken`(
不合错误啊,这类操纵应当完整正当才对,岂非ls已被映照,大概它是其他命令的别号?
1
2
3
root@rmrf:/#typels</code>
lsisaliasedto`ls--color=auto</code>
本来云云,我们下面的指令被扩大成了ls--color=auto(){printf%sn${1:+${1%/}/}*;}。那末,我们能够先利用unalias指令,往失落ls与ls—color的联系关系。
1
root@rmrf:/#ls(){foriiin$1/*;doecho$ii;done}
1
2
3
4
5
6
7
8
9
root@rmrf:/#ls
/dev
/proc
/run
/sys
1
2
3
root@rmrf:/#ls/dev
/dev/pts
把函数存储到utils.sh文件
1
root@rmrf:/#echols(){foriiin$1/*;doecho$ii;done}>>utils.sh
1
root@rmrf:/#sourceutils.sh
cat命令怎样完成呢?借助read!read是幸存者之一,利用read分离管道和重定向,一个基础的cat就基础成型了!
1
2
3
root@rmrf:/#(whilereadline;doecho"$line";done)<utils.sh
ls(){foriiin$1/*;doecho$ii;done}
分离上述经由过程“幸存者”渐渐恢复一些指令的办法,和echo能够写进恣意多字节的特征,我们能够从头构建出linux的工具体系,并能够经由过程curl大概wget间接取得我们想要的二进制文件。起首,参照echoedbyothers,猎取busybox。Busybox是嵌进式Linux的瑞士军刀,内嵌wget,dd,tar等很多工具。Eusebe |
|