1. 程式人生 > 實用技巧 >POJ2965 The Pilots Brothers' refrigerator (精妙方法秒殺DFS BFS)

POJ2965 The Pilots Brothers' refrigerator (精妙方法秒殺DFS BFS)

-perm匹配許可權

4000 2000 1000分別表示SUID SGID SBIT

/bin/sh和/bin/bash

Bourne shell(sh)是一個早期的重要shell,由史蒂夫·伯恩在1978年前後編寫,並同Version 7 Unix一起釋出。bash則在1987年由布萊恩·福克斯創造。
bash(GNU Bourne-Again Shell)是許多Linux發行版的預設Shell事實上,還有許多傳統UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,Shell Script大致都類同。

在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。
目前常見的shell指令碼中主要有以下兩種方式:
(1) #!/bin/sh
(2) #!/bin/bash
注意:每個指令碼開頭都使用"#!",#!實際上是一個2位元組魔法數字,這是指定一個檔案型別的特殊標記,在這種情況下,指的就是一個可執行的指令碼。在#!之後,接一個路徑名,這個路徑名指定了一個解釋指令碼命令的程式,這個程式可以是shell,程式語言或者任意一個通用程式。
sh是bash的一種特殊的模式,也就是 /bin/sh 相當於 /bin/bash --posix。說白了sh就是開啟了POSIX標準的bash。

rbash

受限制的bash
繞過

BASH_CMDS[a]=/bin/sh;a 
$ /bin/bash
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

外殼

Linux的外殼程式稱作shell(命令列直譯器),它的作用是:
1.將命令翻譯給kernal
2.將kernl處理結果翻譯給使用者
一般我們使用的shell為bash。
在解釋命令的時候,bash不會直接參與解釋,而是建立新程序進行命令的解釋,bash只用等待結果即可,這樣能保證bash程序的安全。
win的外殼為dos介面。

Linux export命令

Linux export 命令用於設定或顯示環境變數。
在 shell 中執行程式時,shell 會提供一組環境變數。export 可新增,修改或刪除環境變數,供後續執行的程式使用。export 的效力僅限於該次登陸操作。
export MYENV=7 //定義環境變數並賦值

參考連結:
https://blog.csdn.net/u014470361/article/details/88049410
https://www.cnblogs.com/daoluanxiaozi/archive/2012/02/23/2365513.html
https://blog.csdn.net/weixin_40739833/article/details/81431915
https://www.cnblogs.com/rootid/articles/10568699.html
https://www.cnblogs.com/xiaoxiaoleo/p/8450379.html
2020-8-09 第三週