linuxifh
A. linux基本命令
Linux 對我們的生活產生了巨大的沖擊。至少你的安卓手機使用的就是 Linux 核心。盡管如此,在第一次開始使用 Linux 時你還是會感到難以下手。因為在 Linux 中,通常需要使用終端命令來取代 Windows 系統中的點擊啟動圖標操作。但是不必擔心,這里我們會介紹 10 個 Linux 基本命令來幫助你開啟 Linux 神秘之旅。
幫助新手走出第一步的 10 個 Linux 基本命令
當我們談論 Linux 命令時,實質上是在談論 Linux 系統本身。這短短的 10 個 Linux 基本命令不會讓你變成天才或者 Linux 專家,但是能幫助你輕松開始 Linux 之旅。使用這些基本命令會幫助新手們完成 Linux 的日常任務,由於它們的使用頻率如此至高,所以我更樂意稱他們為 Linux 命令之王!
讓我們開始學習這 10 條 Linux 基本命令吧。
1. sudo
這條命令的意思是「以超級用戶的身份執行」,是 SuperUserDo 的簡寫,它是新手將要用到的最重要的一條 Linux 命令。當一條單行命令需要 root 許可權的時候,sudo命令就派上用場了。你可以在每一條需要 root 許可權的命令前都加上sudo。
$ sudo su
2. ls
跟其他人一樣,你肯定也經常想看看目錄下都有些什麼東西。使用列表命令,終端會把當前工作目錄下所有的文件以及文件夾展示給你。比如說,我當前處在 /home 文件夾中,我想看看 /home 文件夾中都有哪些文件和目錄。
/home$ ls
在 /home 中執行ls命令將會返回類似下面的內容:
imad lost+found
3. cd
變更目錄命令(cd)是終端中總會被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常簡單,當你打算從當前目錄跳轉至某個文件夾時,只需要將文件夾鍵入此命令之後即可。如果你想跳轉至上層目錄,只需要在此命令之後鍵入兩個點 (..) 就可以了。 舉個例子,我現在處在 /home 目錄中,我想移動到 /home 目錄中的 usr 文件夾下,可以通過以下命令來完成操作。
/home $ cd usr
/home/usr $
4. mkdir
只是可以切換目錄還是不夠完美。有時候你會想要新建一個文件夾或子文件夾。此時可以使用 mkdir 命令來完成操作。使用方法很簡單,只需要把新的文件夾名跟在 mkdir 命令之後就好了。
~$ mkdir folderName
5. cp
拷貝-粘貼-and-paste是我們組織文件需要用到的重要命令。使用 cp命令可以幫助你在終端當中完成拷貝-粘貼操作。首先確定你想要拷貝的文件,然後鍵入打算粘貼此文件的目標位置。
$ cp src des
注意:如果目標目錄對新建文件需要 root 許可權時,你可以使用 sudo命令來完成文件拷貝操作。
6. rm
rm 命令可以幫助你移除文件甚至目錄。如果不希望每刪除一個文件都提示確認一次,可以用-f參數來強制執行。也可以使用-r參數來遞歸的移除文件夾。
$ rm myfile.txt
7. apt-get
這個命令會依據發行版的不同而有所區別。在基於 Debian 的發行版中,我們擁有 Advanced Packaging Tool(APT)包管理工具來安裝、移除和升級包。apt-get 命令會幫助你安裝需要在 Linux 系統中運行的軟體。它是一個功能強大的命令行,可以用來幫助你對軟體執行安裝、升級和移除操作。
在其他發行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不過現在 dnf 成了它默認的包管理工具。
$ sudo apt-get update
$ sudo dnf update
8. grep
當你需要查找一個文件,但是又忘記了它具體的位置和路徑時,grep命令會幫助你解決這個難題。你可以提供文件的關鍵字,使用grep命令來查找到它。
$ grep user /etc/passwd
9. cat
作為一個用戶,你應該會經常需要瀏覽腳本內的文本或者代碼。cat命令是 Linux 系統的基本命令之一,它的用途就是將文件的內容展示給你。
$ cat CMakeLists.txt
10. poweroff
最後一個命令是 poweroff。有時你需要直接在終端中執行關機操作。此命令可以完成這個任務。由於關機操作需要 root 許可權,所以別忘了在此命令之前添加sudo。
$ sudo poweroff
總結
如我在文章開始所言,這 10 條命令並不會讓你立即成為一個 Linux 大拿,但它們會讓你在初期快速上手 Linux。以這些命令為基礎,給自己設置一個目標,每天學習一到三條命令,這就是此文的目的所在。
B. linux常用命令
linux常用命令有pwd命令、cd命令、ls命令、cat命令、grep命令、touch命令、cp命令、mv命令、rm命令、rmdir命令等。
linux常用命令:
1、 pwd命令
該命令的英文解釋為print working directory(列印工作目錄)。輸入pwd命令,Linux會輸出當前目錄。
2、 cd命令
cd命令用來改變所在目錄。
cd / 轉到根目錄中
cd ~ 轉到/home/user用戶目錄下
cd /usr 轉到根目錄下的usr目錄中-------------絕對路徑
cd test 轉到當前目錄下的test子目錄中-------相對路徑
3、 ls命令
ls命令用來查看目錄的內容。 選項 含義 -a 列舉目錄中的全部文件,包括隱藏文件 -l 列舉目錄中的細節,包括許可權、所有者、組群、大小、創建日期、文件是否是鏈接等 -f 列舉的文件顯示文件類型 -r 逆向,從後向橘慧返前地列舉目錄中內容 -R 遞歸,該選項遞歸地列舉當前目錄下所有子目錄內的內容 -s 大小,按文件大小碧宴排序 -h 以人類可讀的方式顯示文件的大小,如用K、M、G作單位 ls -l examples.doc 列舉文件examples.doc的所有信息
4、 cat命令
cat命令可以用來合並文件,也可以用來在屏幕上顯示整個文件的內容。
cat snow.txt 該命令顯示文件snow.txt的內容,ctrl+D退出cat。
5、 grep命令
grep命令的最大功能是在一堆文件中查找一個特定的字元串。
grep money test.txt
以上命令在test.txt中查找money這個字元串,grep查找是區分大小寫的。
6 、touch命令
touch命令用來創建新文件,他可以創建一個空白的文件,可以在其中添加文本和數據。
touch newfile 該命令創建一個名為newfile的空白文件。
7 、cp命令
cp命令用來拷貝文件,要復制文件,輸入命令:
cp
cp t.txt Document/t 該命令將把文件t.txt復制到Document目錄下,並命圓飢名為t。 選項 含義 -i 互動:如果文件將覆蓋目標中的文件,他會提示確認 -r 遞歸:這個選項會復制整個目錄樹、子目錄以及其他 -v 詳細:顯示文件的復制進度
8 、mv命令
mv命令用來移動文件。 選項 說明 -i 互動:如果選擇的文件會覆蓋目標中的文件,他會提示確認 -f 強制:它會超越互動模式,不提示地移動文件,屬於很危險的選項 -v 詳細:顯示文件的移動進度
mv t.txt Document 把文件t.txt 移動到目錄Document中。
9 、rm命令
rm命令用來刪除文件。 選項 說明 -i 互動:提示確認刪除 -f 強制:代替互動模式,不提示確認刪除 -v 詳細:顯示文件的刪除進度 -r 遞歸:將刪除某個目錄以及其中所有的文件和子目錄
rm t.txt 該命令刪除文件t.txt
10、 rmdir命令
rmdir命令用來刪除目錄。
C. Linux常用命令
列出當前目錄的文件
常用參數:
-a: 顯示當前目錄的所有文件,包含隱藏文件;
-l: 顯示文件詳情;
-Z: 顯示文件的 SE Linux context。
示例:ls -laZ [if !vml] [endif] 以 acct 為例: drwxr-xr-x:其中 d 代表該文件為目錄,若為 l 則為軟鏈接,軟連接後又箭頭代表其實際指向的文件,如etc -> /system/etc 則訪問 etc 實際等同訪問/system/etc,留空則代表該文件為一個文件;rwxr-xr-x 代表其許可權為 755,具體演算法為將上述欄位每 3 個分為 1 組得 rwx,r-x,r-x,凡是有字母標記的皆計數 1,反之為 0,得二進制 111,101,101,轉為 10 進制數字即得7, 5,5 ,即為該文件許可權; root root :依次代表該文件的所有者(owner)為 root,用戶組(group)為 root,上述屬性可通過 chown 命令修改,日常替換文件需與原文件該屬性維持一致; unlabeled:代表 SE Linux context。
前往指定目錄
更改文件所有者和用戶組 示例:chown root:root temfile 將 tmpfile文件 的所有者和用戶組從 meidia:media 更改為 root:root
將文件內容顯示出來。
注意不要隨便去 cat 一個很大的文件或與 log 驅動節點無關的文件,否則將造成串口輸出亂碼或死機!!!示例:cat /proc/kmsg 將列印出所有 kernel log。
用於抓取 android logcat 列印。
常用參數:
-v : 設置列印格式,可用選項為 brief process tag thread raw time threadtime long,我們比較常用 logcat -v time,此時抓的 log 將在每一行開頭添加時間信息;
-s : 設置過濾器,過濾器的選擇取決於軟體中列印 log 時使用的 TAG ,如
ActivityManagerService.java 中的列印使用的 TAG = ActivityManager,則抓相關列印方法為 logcat -s ActivityManager;
-c : 清除 log 緩存,常用於清除之前的列印緩存,如復現某個必現問題,則可先執行 logcat -c 再抓 logcat 重現必現手法以排除無關 log 冗餘信息影響問題定位; pm
包管理命令,用於管理安卓 app 應用。
常用參數:
-l : 顯示所有安裝包應用,等同於 pm list packages
以 package:/system/priv-app/Launcher2.apk=com.android.launcher 為例:
Apk Launcher2 路徑位於/system/priv-app/Launcher2.apk,其包名為 com.android.launcher
path : 根據報名返回所在 apk 路徑
install : 安裝 apk
-r :安裝一個已經存在的 apk 並保留其數據;
-d : 允許降級安裝
如:pm install -r xxx.apk
uninstall : 卸載 apk,命令僅支持卸載 data/app,後接包名;
如:pm uninstall com.sys.migusmartlink.ott.tv //卸載包名為 com.sys.migusmartlink.ott.tv 的 apk
隨機測試指令,會自動模擬一些用戶操作對 APP 進行壓力測試。
常用參數:
-p :指定啟動的 APK,我們比較常用的是 monkey -p com.xxx.yyy 1 來啟動一個 apk 的隨機頁面。
用於啟動和管理 activity 和 service
常用參數:
start : 後接 intent 啟動一個頁面;
startservice : 後接 intent 啟動一個 service; stopservice :後接 intent 停止一個 service; broadcast :後接一個 intent 發送一個廣播; kill :後接一個 app 包名,殺掉該 app 所有進程;在 shell 環境下用如下參數表述一個 intent:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
[-n <COMPONENT>] [-f <FLAGS>]
示例:
如我們在 logcat 抓到如下列印啟動了播放器:
START u0 {act=android.intent.action.VIEW dat=file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204
則我們可以使用如下 am 指令來啟動它:
am start -a android.intent.action.VIEW -d file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //啟動原生安卓設置主頁
am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 && am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //發送廣播
查找命令,查找文件中是否包含指定字元串並輸出該行示例:
grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行並展示行號
參數說明:
-a:此選項通常在復制目錄時使用,它保留鏈接、文件屬性,並復制目錄下的所有內容。其作用等於dpR參數組合。
-d:復制時保留鏈接。這里所說的鏈接相當於Windows系統中的快捷方式。
-f:覆蓋已經存在的目標文件而不給出提示。
-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
-p:除復制文件的內容外,還把修改時間和訪問許可權也復制到新文件中。
-r:若給出的源文件是一個目錄文件,此時將復制該目錄下所有的子目錄和文件。
-l:不復制文件,只是生成鏈接文件。
命令示例:cp -a a parentPath/sonPath/ a對應當前文件夾下目錄或文件名 可替換為絕對路徑
移動指令,等效於 windows 的移動和重命名。
示例:
mv /data/tmp1 /data/local/tmp2 //將 data/tmp1移動到/data/local/ 並重命名為 tmp2
刪除指令,用於刪除文件和文件夾,示例:
rm -rf tmp // 刪除 tmp,建議加上-rf參數,其會刪除 tmp 所有的目錄和文件。
創建目錄。常用參數:
-p :若 mkdir -p 後接路徑包含不存在路徑則一並創建。
同步命令,常用於 cp 替換文件或指令結束後同步狀態,有益無害。
重定向,即將一個命令的輸出指向另外路徑的文件,使用覆蓋模式,即重定向到的文件若存在將覆蓋裡面的內容。
示例:
logcat > /data/xxx.log; //將 logcat輸出到/data/xxx.log;
cat /proc/kmsg > /data/kmsg.log; //將 kmsg 列印輸出重定向到/data/kmsg.log
重定向,即將一個命令的輸出指向另外路徑的文件,使用拼接模式,即重定向到的文件若存在則將輸出拼接到原文件的後面。
示例:
logcat > >/data/xxx.log; //例如我們做 netreboot的時候需要每一次開關機的 log,則會用拼接模式記錄log。
將指令放至後台靜默執行。
依次執行指令,若有指令執行失敗,則後續指令不會執行。
示例:
logcat -c && logcat //先清除 logcat 緩存再抓取 log
D. linux常用命令
linux常用命令如下:
1、查看內核版本:uname -a。
2、控制台-圖形界面:init 5或者startx。
3、圖形界面-控制台: init3或者直接注銷。
4、如何查看ip地址:ifconfig。
5、配置ip:ifconfig eth0 ip地址。
6、重啟:reboot 或者 shutdown -r now。
操作命令
首先介紹一個名詞「控制台」,它就是我們通常見到的使用字元操作界面的人機介面,例如dos。我們說控制台命令,就是指通過字元界面輸入的可以操作系統的命令,例如dos命令就是控制台命令。我們要了解的是基於Linux操作系統的基本控制台命令和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的。