上次作業系統概論的老師給了我們一個作業 讓我們寫一個簡單的shell 首先第一個問題:shell是什麼? wikipedia的解答: In computing, a shell is a user interface for access to an operating system’s services.In general, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI), depending on a computer’s role and particular operation. 其實所謂的shell就是一個使用者跟系統服務溝通的橋樑,它可以是命令行界面(CLI)的,也可以是圖形化界面(GUI)的。 而老師要我們寫的shell,基本上就是一個command-line interface的東西,而實作環境是在linux底下。 而shell在接到我們下的command后,到底實際上是怎麼做的呢? 先fork,然後exec。 這時候問題又來了。 什麼是fork? fork是一個把自己複製一份的過程,複製者叫parent,被複製出來的就是child。 那為什麼要fork? 試想想,如果今天你想要某個東西在後臺執行,而你可以繼續做別的事,是不是需要兩個process同時運行? 接下來,我們就可以開始說怎麼寫shell了。 先做好構思。 (1) […]
Category: 學習筆記
使用netstat檢查端口佔用情況與相關程序
遇上了端口被佔用的情況時 可以用下列命令 檢查當前端口是否被誰佔用 netstat -tulpn netstat詳解: 1.功能与说明 netstat 用于显示linux中各种网络相关信息。如网络链接 路由表 接口状态链接 多播成员等等。 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字。 -l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 -c 每隔一个固定时间,执行该netstat命令。 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到 備註: freebsd底下對於端口佔用的檢查用的sockstat sockstat -l -l 仅列出有在 Listen (监听) 的服務状态
Bash再次更新 請立刻再次升級
env -i X='() { (a)=>\’ bash -c ‘echo date’ ; cat echo 若運行上述命令并列印出了類似下列的結果 請立刻再次更新你的bash bash: X: line 1: syntax error near unexpected token `=’ bash: X: line 1: `’ bash: error importing function definition for `X’ Sat Sep 2X 0X:5X:47 CST 2014 更新方法不變: centos(redhat、fedora)版 yum ﹣y update bash debian(ubuntu)版: apt-get -y install –only-upgrade bash 此番更新后顯示結果為下方結果 […]
Bash爆出重大安全漏洞 請立刻更新
bash是unix-like系統下的一種shell 而CentOS默認使用的就是bash 此次bash爆出的致命注入式漏洞 據說造成的威脅比Heartbleed更甚 所以還請大家立刻更新 檢查你的bash是否存在該漏洞的方法: env x='() { :;}; echo vulnerable’ bash -c “echo this is a test” 若出現下列提示,代表你的bash的版本存在這個致命的漏洞,請立刻更新。 vulnerable this is a test 但若出現下列提示,代表你的bash版本是安全的,不需要更新。 bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x’ this is a test 解決方法如下: CentOS(Redhat): yum clean all yum -y update bash 出處:https://access.redhat.com/articles/1200223
Protected: 無題
There is no excerpt because this is a protected post.
關於Mac上NTFS移動硬盤自動掛載只讀的解決方案
你可以選擇安裝Tuxera NTFS for MAC(授權價格:25歐) 安裝過程最後一步會要求重啓電腦 重啟後就可自動掛載NTFS為可寫模式了 官方下載地址: http://www.tuxera.com/mac/tuxerantfs_2013.2.dmg 我的下載地址(你懂的): https://mega.co.nz/#!BhRD3QhL!pDxKr_fAAqB6nD31SmvgsvoYo7fxBbKSh6oBINJ2VdY 又或是使用我寫的這個手動重掛載硬盤為ntfs的腳本 若有ntfs的硬盤且為只讀則進行掛載 若有ntfs的硬盤但無只讀則進行硬盤卸載 由於默認的mount在掛載ntfs時必須加在nobrower的參數才能達到可寫 所以會導致掛載後不會顯示在桌面和Finder裏 所以我另外做了一個ln的動作在桌面加上來快捷方式 也算是一定程度做到了基本要求吧 此腳本必須有bash才能運行 系統自帶bash 所以不成問題 再來就是我在處理掛載和卸載的時候並沒有做嚴格的檢查 所以若是有程序占用則可能出現無法正常重掛載或卸載 大家就自己fuser查看一下吧 下載地址: https://www.guyusoftware.com/mac/remount_NTFS(請右鍵另存)
關於我在OS X使用過程中的經驗之談
macbook pro retina自帶recovery 可以原廠設定 也可以備份還原 方法:一開機馬上按著command+R直到出現recovery 壓縮軟件:betterzip(可以view而不只是直接解壓) 備註:app store裏要錢的 當時實際上是可以免費下載使用的 下載地址:http://macitbetter.com/ 瀏覽器:firefox 備註:firefox的功耗很誇張 突然不是用在圖形一類的 建議用內建的safari safari也可以加extension的 adblock這類也是有的 所以不太介意的話 真心覺得應該用這個 功耗相差差不多有10倍 真的不少 虛擬機:virtualbox 聊天:QQ mail+office suite+pdf reader+其他:OS X自帶 office suite的相關備註: pages對應microsoft word numbers對應microsoft excel keynote對應microsoft word 溫馨提示: 1)OS X的delete=windows的backspace 2)OS X的command=windows的ctrl 3)OS X下touchpad是只有單鍵的 所以一般都用手勢 可以在System Preferences裏面的trackpad查看 4)OS X安裝軟件的方法=img掛載 然後把相關文件drag(拖動)到Applications目錄 或是 使用程序本身的自動化安裝處理 5)OS X的滾動是相反的 6)apple的電池一般建議1000個cycles就必須更換 所以建議滿電後仍然插著電源使用 這樣就不會太浪費cycles數 […]
DirectAdmin下解决WordPress全新安装出现500(404)错误
问题分析: 1 已确定所有wordpress文件的用户和用户组没有问题 2 已确定所有wordpress文件符合文件权限644 文件夹权限755的php-cgi环境规格 3 错误日志里存在 Premature end of script headers: setup-config.php 4 安装过程中正确输入数据库,却出现含有404错误提示的500错误 参考下面 基本上,一看到500错误+“Premature end of script headers” suphp对于“Premature end of script headers”的解释是 你的环境同时安装了php-cli和php-cgi 且配置成了suphp 但调用了php-cli 我很自然地想到是suphp的问题,但其实问题并不在suphp 因为其实关键就在图中不起眼的404错误 问题就在setup-config.php里面用了个函数 叫wp_remote_get 这个函数访问http并没有问题 但https就爆了 这是为什么呢? 其实原因就在wp_remote_get这个函数会呼叫WP_http这个Object 而他的工作方式是使用curl进行的 所以如果curl不支持ssl 则自然无法正常使用 php默认的curl是不带ssl支持的 如果你遇上上述的问题 就代表你在directadmin里没有启用curl支持 所以你必须开启支持 并编译curl 方法如下: grep curl /usr/local/directadmin/custombuild/options.conf | awk -F ‘=’ ‘{ […]
SNMP監控一鍵安裝+360服務器監控
首先先幫360網站服務監控打個廣告好了 現在用的是他的這傢伙 確實還不錯 多平台支持 不管是Linux/Unix,还是Windows,不论是服务器、云主机、VPS,我们都能将其纳入监控范围。 全面有效的监控方式 CPU、内存、负载、磁盘、网卡流量,以及后续更多高级的监控项,全面呵护你的服务器。 部署轻松 360云监控通过全球通用简单网络管理协议(SNMP)进行监控,为了简单实用,我们还创建了一键安装脚本,只需要很少时间,你就能拥有便捷的服务器监控策略。 下面來說說安裝步驟: yum –enablerepo=base install make gcc -y; wget http://download.cloud.360.cn/yjk/snmp_install.sh; chmod 755 snmp_install.sh;./snmp_install.sh -v 3 -u USERNAME -p PASSWORD; wget http://template.gidcs.com/snmp_iptables.sh; chmod 755 snmp_iptables.sh;./snmp_iptables.sh; 備註: 1 安裝環境是XenServer 所以第一步驟yum的時候才需要加上啟用repo的動作 2 第二步驟是下載360官方的snmp自動部署腳本 3 第三步驟是下載我本身爲了方便處理iptables端口開放而編寫的小腳本 如果你已經把iptables禁用了 則不必處理這部份了 至於360 SNMP監控的設定方式如下: