我是一個Linux系統的初學者,在這就記錄一下自己學到的一些知識。
一,Linux使用nohup命令後臺運行程序
在Linux服務器上搭建web服務器,用ssh客戶端登錄後使用 ./startservice.sh 腳本啓動服務,但是當ssh斷開連接後起的服務器也會停掉。這時就可以使用下面命令運行服務,這樣在ssh斷開後服務也不會停。
1 |
|
上面代碼的用途:不掛斷地運行命令。
語法:nohup Command [Arg ... ] [&]
描述:nohup命令運行由Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在註銷後使用 nohup命令運行後臺中的程序。要運行後臺中的 nohup命令,添加 & (表示“and” 的符號)到命令的尾部。
所以上面命令中帶 & 的命令行,即使 terminal(終端)關閉,或者電腦死機程序依然運行(前提是將程序提交給服務器)。
上面 2>&1 的意思就是把標準錯誤(2) 重定向到標準輸出(1),而標準輸出又導入文件 output裏面,所以結果是標準錯誤和標準輸出都導入文件output裏面了。至於爲什麼需要將標準錯誤重定向到標準輸出的原因,那就歸結爲標準錯誤沒有緩衝區,而 stdout 有。這就會導致 >output 2>output 文件被output 被打開兩次,而 stdout 和 stderr 將會競爭覆蓋,這肯定不是我們相要的。
操作系統中有三個常用的流:
- 0:標準輸入流 stdin
- 1:標準輸入流 stdout
- 2:標準錯誤流 stderr
一般當我們用 > console.txt,實際是 1>console.txt的省略用法;< console.txt ,實際是 0 < console.txt的省略用法。
二,ctrl+c,ctrl+d,ctrl+z在linux程序中意義和區別
ctrl+c和ctrl+z都是中斷命令,但是他們的作用卻不一樣.
ctrl+c是強制中斷程序的執行,,進程已經終止。
ctrl+z的是將任務中止(暫停的意思),但是此任務並沒有結束,他仍然在進程中他只是維持掛起的狀態,用戶可以使用fg/bg操作繼續前臺或後臺的任務,fg命令重新啓動前臺被中斷的任務,bg命令把被中斷的任務放在後臺執行.
例如:當你vi一個文件是,如果需要用shell執行別的操作,但是你又不打算關閉vi,因爲你得存盤推出,你可以簡單的按下ctrl+z,shell會將vi進程掛起~,當你結束了那個shell操作之後,你可以用fg命令繼續vi你的文件。
ctrl-d 不是發送信號,而是表示一個特殊的二進制值,表示 EOF。
注:在shell中,ctrl-d表示推出當前shell
三,Linux文件夾中的文件顏色
今天看到Linux文件夾中的文件顏色,很是好奇,所以百度一下,滿足了自己的好奇心。
綠色文件: 可執行文件,可執行的程序
紅色文件:壓縮文件或者包文件
藍色文件:目錄
白色文件:一般性文件,如文本文件,配置文件,源碼文件等
淺藍色文件:鏈接文件,主要是使用ln命令建立的文件
紅色閃爍:表示鏈接的文件有問題
黃色:表示設備文件
灰色:表示其他文件
在終端輸入ls-l就會出現花花綠綠的東西,如下:
共顯示了七列信息,從左至右依次爲:權限、文件數、歸屬用戶、歸屬羣組、文件大小、創建日期、文件名稱。
四,Linux中ls和ll的區別
ll 列出來的結果詳細,有時間,是否可讀寫等信息 ,象windows裏的 詳細信息
ls 只列出文件名或目錄名 就象windows裏的 列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
五,Linux裏sh命令是做什麼的?
1 2 3 4 5 6 7 8 |
|
六,文件類型的詳細說明
6.1 文件類型
普通文件(regular file):
就是一般存取的文件,由ls -al顯示出來的屬性中,第一個屬性爲 [-],例如 [-rwxrwxrwx]。另外,依照文件的內容,又大致可以分爲:
1、純文本文件(ASCII):這是Unix系統中最多的一種文件類型,之所以稱爲純文本文件,是因爲內容可以直接讀到的數據,例如數字、字母等等。設 置文件幾乎都屬於這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內容(cat是將文件內容讀出來)。
2、二進制文件(binary):系統其實僅認識且可以執行二進制文件(binary file)。Linux中的可執行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個二進制文件。
3、數據格式的文件(data):有些程序在運行過程中,會讀取某些特定格式的文件,那些特定格式的文件可以稱爲數據文件(data file)。舉例來說,Linux在用戶登入時,都會將登錄數據記錄在 /var/log/wtmp文件內,該文件是一個數據文件,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因爲它是屬於一種特殊格式的文件。
目錄文件(directory):
就是目錄,第一個屬性爲 [d],例如 [drwxrwxrwx]。
1,連接文件(link):類似Windows下面的快捷方式。第一個屬性爲 [l],例如 [lrwxrwxrwx]。
2,設備與設備文件(device):與系統外設及存儲等相關的一些文件,通常都集中在 /dev目錄。通常又分爲兩種:
3,塊設備文件:就是存儲數據以供系統存取的接口設備,簡單而言就是硬盤。例如一號硬盤的代碼是 /dev/hda1等文件。第一個屬性爲 [b]。
4,字符設備文件:即串行端口的接口設備,例如鍵盤、鼠標等等。第一個屬性爲 [c]。
5,套接字(sockets):這類文件通常用在網絡數據連接。可以啓動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。第一個屬性爲 [s],最常在 /var/run目錄中看到這種文件類型。
6,管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。第一個屬性爲 [p]。
6.2 文件結構
/:根目錄,所有的目錄、文件、設備都在/之下,/就是Linux文件系統的組織者,也是最上級的領導者。
/bin:bin 就是二進制(binary)英文縮寫。在一般的系統當中,都可以在這個目錄下找到linux常用的命令。系統所需要的那些命令位於此目錄。
/boot:Linux的內核及引導系統程序所需要的文件目錄,比如 vmlinuz initrd.img 文件都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄。
/cdrom:這個目錄在剛剛安裝系統的時候是空的。可以將光驅文件系統掛在這個目錄下。例如:mount /dev/cdrom /cdrom
/dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因爲在這個目錄中包含了所有linux系統中使用的外部設備。但是這裏並不是放的外部設備的驅動程序。這一點和常用的windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的端口。可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。
/etc:etc這個目錄是linux系統中最重要的目錄之一。在這個目錄下存放了系統管理時要用到的各種配置文件和子目錄。要用到的網絡配置文件,文件系統,x系統配置文件,設備配置信息,設置用戶信息等都在這個目錄下。
/home:如果建立一個用戶,用戶名是"xx",那麼在/home目錄下就有一個對應的/home/xx路徑,用來存放用戶的主目錄。
/lib:lib是庫(library)英文縮寫。這個目錄是用來存放系統動態連接共享庫的。幾乎所有的應用程序都會用到這個目錄下的共享庫。因此,千萬不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。
/lost+found:在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這裏。當系統啓動的過程中fsck工具會檢查這裏,並修復已經損壞的文件系統。有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。
/mnt:這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄。可以參看/etc/fstab的定義。
/media:有些linux的發行版使用這個目錄來掛載那些usb接口的移動硬盤(包括U盤)、CD/DVD驅動器等等。
/opt:這裏主要存放那些可選的程序。
/proc:可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。
/root:Linux超級權限用戶root的家目錄。
/sbin:這個目錄是用來存放系統管理員的系統管理程序。大多是涉及系統管理的命令的存放,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令,這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目錄是相似的,凡是目錄sbin中包含的都是root權限才能執行的。
/selinux :對SElinux的一些配置文件目錄,SElinux可以讓linux更加安全。
/srv 服務啓動後,所需訪問的數據目錄,舉個例子來說,www服務啓動讀取的網頁數據就可以放在/srv/www中
/tmp:臨時文件目錄,用來存放不同程序執行時產生的臨時文件。有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。
/usr這是linux系統中佔用硬盤空間最大的目錄。用戶的很多應用程序和文件都存放在這個目錄下。在這個目錄下,可以找到那些不適合放在/bin或/etc目錄下的額外的工具
/usr/local:這裏主要存放那些手動安裝的軟件,即不是通過“新立得”或apt-get安裝的軟件。它和/usr目錄具有相類似的目錄結構。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面、。
/usr/share :系統共用的東西存放地,比如 /usr/share/fonts 是字體目錄,/usr/share/doc和/usr/share/man幫助文件。
/var:這個目錄的內容是經常變動的,看名字就知道,可以理解爲vary的縮寫,
/var下有/var/log 這是用來存放系統日誌的目錄。
/var/ www目錄是定義Apache服務器站點存放目錄;
/var/lib 用來存放一些庫文件,比如MySQL的,以及MySQL數據庫的的存放地。
七, Linux下的chmod +x是什麼意思,爲什麼要使用這個?
一個start.sh文件,本來是灰色的(普通的文件),如果執行chmod +x 給了權限,文件顏色就變成綠色。
如果使用chmod -x 則就會變成灰色(普通的文本顏色),普通的文本顏色是不能執行的,執行會報錯。
7.1 chmod +x 和 chmod u+x的區別
設置誰擁有執行這個文件權限。chmod +x 和chmod a+x 是一樣的,一般沒有明確要求,就可以使用chmod +x。