Linux中一些操作命令筆記

 

  我是一個Linux系統的初學者,在這就記錄一下自己學到的一些知識。

一,Linux使用nohup命令後臺運行程序

  在Linux服務器上搭建web服務器,用ssh客戶端登錄後使用 ./startservice.sh 腳本啓動服務,但是當ssh斷開連接後起的服務器也會停掉。這時就可以使用下面命令運行服務,這樣在ssh斷開後服務也不會停。

1

nohup ./startservice.sh >>nohup.out 2 > &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

ll不是命令,是ls -l的別名

 

ls 命令可以說是linux下最常用的命令之一。

-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。

-b 把文件名中不可輸出的字符用反斜槓加字符編號(就象在C語言裏一樣)的形式列出。

-c 輸出文件的 i 節點的修改時間,並以此排序。

-d 將目錄象文件一樣顯示,而不是顯示其下的文件。

-e 輸出時間的全部信息,而不是輸出簡略信息。

-f -U 對輸出的文件不排序。

-g 無用。

-i 輸出文件的 i 節點的索引信息。

-k 以 k 字節的形式表示文件的大小。

-l 列出文件的詳細信息。

-m 橫向輸出文件名,並以“,”作分格符。

-n 用數字的 UID,GID 代替名稱。

-o 顯示文件的除組信息外的詳細信息。

-p -F 在每個文件名後附上一個字符以說明該文件的類型,“*”表示可執行的普通

  

五,Linux裏sh命令是做什麼的?

1

2

3

4

5

6

7

8

    sh或是執行腳本,或是切換到sh這個bash裏,默認的shell是bash,你

可以試試tcsh啊,csh啊,ksh,zsh什麼的,看看別的shell是什麼樣子的。

當然,linux中sh是鏈接到bash上的,所以sh與bash在功能上是沒有區別的。

 

    還有就是在執行腳本的時候是用sh + 腳本名的方式來執行,其實,大部

分的時候,簡單腳本只要權限設置正確,可以直接執行,不需要sh命令的

 

---------------------

 

六,文件類型的詳細說明

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章