ubuntu菜鳥筆記

2021-08-01 08:22:25 字數 4485 閱讀 2575

linux 基礎

linux 的靈感源自 1969 年就出現的 unix 作業系統,時至今日該系統仍被廣泛使用,並在不斷發展中。 unix 背後的許多設計慣例也同樣存在於 linux 中,對系統基本原理的理解至關重要。 unix 最初主要使用命令列介面,這在 linux 中也得到了保留。也就是說,圖形使用者介面及其視窗、圖示、選單等都構建在基本的命令列介面之上。更進一步,這也意味著在命令列裡可以十分便捷的管理和訪問 linux 的檔案系統。

1.3.1. 目錄和檔案系統

linux 和 unix 檔案系統被組織成乙個有層次的樹形結構。檔案系統的最上層是 /,或稱為 根目錄。在 unix 和 linux 的設計理念中,一切皆為檔案——包括硬碟、分割槽和可插拔介質。這就意味著所有其它檔案和目錄(包括其它硬碟和分割槽)都位於根目錄中。 例如:/home/jebediah/cheeses.odt 給出了正確的完整路徑,它指向 cheeses.odt 檔案,而該檔案位於 jebediah 目錄下,該目錄又位於 home 目錄,最後,home 目錄又位於根(/) 目錄下。 在根 (/) 目錄下,有一組重要的系統目錄,在大部分 linux 發行版裡都通用。直接位於根 (/) 目錄下的常見目錄列表如下:

/bin - 重要的二進位制 (binary) 應用程式

/boot - 啟動 (boot) 配置檔案

/dev - 裝置 (device) 檔案

/etc - 配置檔案、啟動指令碼等 (etc)

/home - 本地使用者主 (home) 目錄

/lib - 系統庫 (libraries) 檔案

/lost+found - 在根 (/) 目錄下提供乙個遺失+查詢(lost+found) 系統

/media - 掛載可移動介質 (media),諸如 cd、數位相機等

/mnt - 掛載 (mounted) 檔案系統

/opt - 提供乙個供可選的 (optional) 應用程式安裝目錄

/proc - 特殊的動態目錄,用以維護系統資訊和狀態,包括當前執行中程序 (processes) 資訊。

/root - root (root) 使用者主資料夾,讀作「slash-root」

/sbin - 重要的系統二進位制 (system binaries) 檔案

/sys - 系統 (system) 檔案

/tmp - 臨時(temporary)檔案

/usr - 包含絕大部分所有使用者(users)都能訪問的應用程式和檔案

/var - 經常變化的(variable)檔案,諸如日誌或資料庫等

1.3.2. 許可權

linux 系統上的所有檔案都有許可權,以允許或者阻止其它使用者查閱、修改或者執行。超級使用者「root」則可以訪問系統上的任意檔案。每個檔案都有訪問限制、使用者限制以及隸屬於某個使用者/組(owner/group)。 所有檔案皆有如下三組許可權加以保護,按重要性依次排列:

使用者(user)

適用於該檔案的所有者

組(group)

適用於該檔案所屬的組

其他(other)

適用於所有其他使用者

上述三組許可權資訊的每一組都包含了實際許可權。這些許可權資訊,連同它們對檔案和目錄具有的不同含義,概述如下:

讀(read)

允許顯示/開啟該檔案 可以顯示目錄內容

寫(write)

可以編輯或刪除該檔案 可以更改目錄內容

可執行(execute)

可執行檔案可以作為程式執行 可以進入該目錄

要檢視和編輯檔案或目錄的許可權,請開啟 位置 → 主資料夾 並在檔案或者目錄上單擊右鍵。然後選擇 屬性。授權資訊就在 許可權 標籤頁中,如果您是該檔案的所有者,您可以編輯所有的授權等級。

1.3.3. root 使用者和 sudo 命令

gnu/linux 系統的 root 使用者具有系統的管理許可權。出於安全考慮,普通使用者並不具備這一許可權。不過,ubuntu 上並不包含 root 使用者,而是將管理員許可權授予特定使用者,他們可以使用 「sudo」 應用程式來執行管理任務。預設情況下,在您的系統安裝過程中建立的第乙個使用者帳號具有使用 sudo 的許可權。您可以通過使用者和組 (參見 第1.3.6節 ― 使用者和組) 來限制和賦予使用者執行 sudo 的許可權。 當您執行乙個要求 root 許可權的應用程式時,sudo 會要求您輸入自己的普通使用者密碼;這樣可以確保惡意程式無法損害您的系統,還可以提醒您應該小心謹慎的對待自己將要執行的管理動作。 在命令列裡使用 sudo,只需直接在您想執行的命令前加上」sudo」即可。隨後 sudo 會提示您輸入自己的密碼。 在短時間內 sudo 會記得您輸入過的密碼。設計這一特性的目的,是為了避免使用者在執行多個管理任務時重複輸入密碼。 執行管理任務時請務必小心,以免損壞系統! 其它一些 sudo 使用技巧:

欲使用 「root」 終端,請在命令列裡輸入「sudo -i」。

ubuntu 裡所有圖形介面配置工具(啟動時)預設已使用sudo,因此如有必要它們會提示您輸入自己的密碼。

關於 sudo 程式及 ubuntu 裡為何預設沒有 root 使用者的更多資訊,請閱讀 ubuntu wiki 上的 sudo頁面。

1.3.4. 終端

使用命令列並不像您想象的那麼困難。使用命令列不需要專門知識,和其它軟體一樣,它也僅僅是乙個程式。linux 中絕大部分工作都可以用命令列完成,儘管大部分程式都有相應的圖形工具,但有時這些圖形工具會捉襟見肘,不夠用。此時便是命令列大顯身手的時候。 終端常常被稱為命令列或者 shell。過去,這就是人機互動的方式。即便現在,linux 使用者還是覺得 shell 比圖形方式更快並且仍有一些優勢。接下來,您將學習如何使用終端。 終端最初用作檔案瀏覽器,即使現在,遇上圖形環境失效時,它仍被用作檔案瀏覽器。您可以將終端作為乙個檔案瀏覽器,用來瀏覽自己的檔案和撤銷曾做過的改動。

1.3.4.1. 啟動終端

要啟動乙個終端,可以選擇 應用程式 → 附件 → 終端。

快捷方式:ctrl + alt + t

alt+f2 run a command: gnome-terminal

1.3.4.2. 常用命令

檢視目錄: ls

ls (list) 用不同顏色、經過排列的文字列出目錄下的檔案。

建立目錄: mkdir (目錄名)

mkdir (makedirectory) 命令可以建立目錄。

切換目錄: cd (directory/location)

cd (changedirectory) 命令可以從您的當前目錄切換到您指定的任意目錄。

複製檔案/目錄: cp (原始檔或目錄名) (目標目錄或檔名)

cp (copy) 命令會拷貝您指定的任意檔案。cp -r 命令則可以拷貝您指定的任意目錄(注:包括該目錄裡的檔案和子目錄)。

刪除檔案/目錄: rm (檔案或目錄名)

rm (remove) 可以刪除您指定的任意檔案。rm -rf 命令則可以刪除您指定的任意目錄(注:包括該目錄裡的檔案和子目錄)。

重新命名檔案/目錄: mv (檔案或目錄名)

mv (move) 命令可以重新命名/移動您指定的任意檔案或目錄。

查詢檔案/目錄: locate (檔案或目錄名)

1. 切換到 root 使用者 ,輸入 「sudo -i 」或「sudo su -」, 退出 「exit」

2. pwd 顯示當前目錄, pwd = print working directory

3. ls 列出目錄下當前檔案

4. cp 複製檔案/目錄 cp (原始檔或目錄) (目標檔案或目錄)

cp -r 複製資料夾 包括子目錄和檔案

rm 刪除檔案/目錄 可以刪除檔案

rm -rf 刪除目錄包含子目錄和檔案

rmdir 刪除空資料夾

mv 移動或重新命名 檔案

cd 進入目錄

cd / 進入根目錄

cd 或 cd ~ 進入使用者的 home 目錄

cd - 進入上次訪問的目錄 (相當於 back)

cd .. 進入上級目錄

man 顯示某個命令的 manual

df 顯示檔案系統空間資訊

df -h 用 m 和 g 做單位顯示檔案系統空間資訊 -h 意思是 human-readable

du 顯示目錄的空間使用資訊

du -sh /media/floppy

-s 意思 summary -h 意思 human-readable

ifconfig 顯示系統的網路

locate 命令會在您的計算機裡搜尋您指定的任意檔案。它使用您系統中的檔案索引以便進行快速查詢:執行命令 updatedb 可以更新該索引。每天您一開機,該命令便會(在合適的時機)自動執行。執行該命令需要具備管理員許可權 (參見 第1.3.3節 ― root 使用者和 sudo 命令)。

您還可以使用萬用字元來匹配乙個或多個檔案,如 「*」 (匹配所有檔案) 或 「?」 (匹配乙個字元)。 欲知關於 linux 命令列的詳盡介紹,請參閱 ubuntu wiki 上的命令列介紹。

MFC菜鳥筆記 一

第一章 控制項使用 新增變數 如果我們要在程式中訪問對話方塊中的控制項,就必須給這些控制項分別新增變數。所謂新增變數,就是給程式中要用到的控制項物件定義乙個與之關聯的變數作為控制項的 以後用到該控制項時,訪問其 變數即可。就是說,乙個變數代表乙個具體的控制項物件。例如,要獲得使用者在編輯框中輸入的內...

菜鳥筆記之演算法

在程式設計中,我們如果要解決問題,就要涉及到演算法設計,演算法設計是最具創造性的工作之一,本人認為演算法設計是計算機工作之中最具活力的工作。人們解決問題的思想方法步驟都有可以稱之為演算法演算法是指令的集合,是為了解決問題而進行的一系列的操作,他明確了可計算的過程,以乙個資料結合作為輸入,以乙個資料集...

JavaScript菜鳥教程筆記

閉包 var add function function myfunction 監聽事件 addeventlistener 方法新增的事件控制代碼不會覆蓋已存在的事件控制代碼。addeventlistener 方法可以更簡單的控制事件 冒泡與捕獲 removeeventlistener 方法來移除事...