原创 十一、Shell字符串

字符串是shell編程中最常用最有用的數據類型(除了數字和字符串,也沒啥其它類型好用了),字符串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟PHP類似。 單引號 str='this is a string' 單

原创 Linux內核驅動自動創建設備節點文件

Linux下生成驅動設備節點文件的方法有3個:1、手動mknod;2、利用devfs;3、利用udev 在剛開始寫Linux設備驅動程序的時候,很多時候都是利用mknod命令手動創建設備節點,實際上Linux內核爲我們提供了一組函數,

原创 八、Shell運算符:Shell算數運算符、關係運算符、布爾運算符、字符串運算符等

Bash 支持很多運算符,包括算數運算符、關係運算符、布爾運算符、字符串運算符和文件測試運算符。原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awk 和 expr,expr 最常用。expr 是一款表達式計算工具,使

原创 busybox mdev使用 自動創建設備節點

quote]------本文很多關於mdev解釋的內容來源於網絡,有說的不對的地方,望大家指正。-------同時,各位也可以在我的blog裏面找到,http://blog.chinaunix.net/space.php?uid=2075

原创 USB枚舉過程

1. 枚舉是什麼?        枚舉就是從設備讀取一些信息,知道設備是什麼樣的設備,如何進行通信,這樣主機就可以根據這些信息來加載合適的驅動程序。調試USB設備,很重要的一點就是USB的枚舉過程,只要枚舉成功了,那麼就已經成功大半了

原创 關於實現udev/mdev自動掛載與卸載

在網上有很多關於講mdev的自動掛載基本上都是一個版本,經過測試自動掛載確實可行,但是關於自動卸載mdev似乎不能很好的支持,經過修改已經可以做到與udev的效果相似。不能在掛載的目錄中進行熱插拔,否則會出現問題,不過此問題在下次插入U

原创 Linux系統中使用 DD 命令測試 USB 和 SSD 硬盤的讀寫速度

磁盤驅動器速度 磁盤驅動器的速度是以一個單位時間內讀寫數據量的多少來衡量的。DD 命令是一個簡單的命令行工具,它可用對磁盤進行任意數據塊的讀取和寫入,同時可以度量讀取寫入的速度。 在這篇文章中,我們將會使用 DD 命令來測試 USB

原创 基於管道的popen和pclose函數

標準I/O函數庫提供了popen函數,它啓動另外一個進程去執行一個shell命令行。 這裏我們稱調用popen的進程爲父進程,由popen啓動的進程稱爲子進程。 popen函數還創建一個管道用於父子進程間通信。子進程要麼從管道讀信息

原创 exec()與system()的區別

這應該算是老生長談的問題了,在此做一個記錄。 執行exec()後,老的進程上下文將被exec出來的新的進程上下文覆蓋,新進程代替原進程執行。 執行system()後則相當於fork()出一個子進程,並等待此子進程執行完畢。 請看如

原创 三、什麼時候使用Shell

因爲Shell似乎是各UNIX系統之間通用的功能,並且經過了POSIX的標準化。因此,Shell腳本只要“用心寫”一次,即可應用到很多系統上。因此,之所以要使用Shell腳本是基於: 簡單性:Shell是一個高級語言;通過它,你可以簡潔地

原创 一、Shell簡介:什麼是Shell,Shell命令的兩種執行方式

Shell本身是一個用C語言編寫的程序,它是用戶使用Unix/Linux的橋樑,用戶的大部分工作都是通過Shell完成的。Shell既是一種命令語言,又是一種程序設計語言。作爲命令語言,它交互式地解釋和執行用戶輸入的命令;作爲程序設計語言

原创 十、Shell註釋

以“#”開頭的行就是註釋,會被解釋器忽略。sh裏沒有多行註釋,只能每一行加一個#號。只能像這樣: #--------------------------------------------# 這是一個自動打ipa的腳本,基於webfr

原创 二、Shell腳本語言與編譯型語言的差異

編譯型語言 很多傳統的程序設計語言,例如Fortran、Ada、Pascal、C、C++和Java,都是編譯型語言。這類語言需要預先將我們寫好的源代碼(source code)轉換成目標代碼(object code),這個過程被稱作“

原创 四、第一個Shell腳本

打開文本編輯器,新建一個文件,擴展名爲sh(sh代表shell),擴展名並不影響腳本執行,見名知意就好,如果你用php寫shell 腳本,擴展名就用php好了。輸入一些代碼: #!/bin/bashecho "Hello World

原创 七、Shell替換:Shell變量替換,命令替換,轉義字符

如果表達式中包含特殊字符,Shell 將會進行替換。例如,在雙引號中使用變量就是一種替換,轉義字符也是一種替換。 舉個例子: #!/bin/basha=10echo -e "Value of a is $a \n" 運行結果: