Linux常用命令

ls?

列出當前目錄的文件

常用參數:?

-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。

cd

前往指定目錄

chown

更改文件所有者和用戶組? ?示例:chown root:root temfile?將 tmpfile文件 的所有者和用戶組從 meidia:media 更改為 root:root

cat

將文件內容顯示出來。

注意不要隨便去 cat 一個很大的文件或與 log 驅動節點無關的文件,否則將造成串口輸出亂碼或死機!!!示例:cat /proc/kmsg 將打印出所有 kernel log。

logcat

用于抓取 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

monkey

隨機測試指令,會自動模擬一些用戶操作對 APP 進行壓力測試。

常用參數:

-p :指定啟動的 APK,我們比較常用的是 monkey -p com.xxx.yyy 1 來啟動一個 apk 的隨機頁面。

am

用于啟動和管理 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

查找命令,查找文件中是否包含指定字符串并輸出該行示例:

grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行號

cp

參數說明:

-a:此選項通常在復制目錄時使用,它保留鏈接、文件屬性,并復制目錄下的所有內容。其作用等于dpR參數組合。

-d:復制時保留鏈接。這里所說的鏈接相當于Windows系統中的快捷方式。

-f:覆蓋已經存在的目標文件而不給出提示。

-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。

-p:除復制文件的內容外,還把修改時間和訪問權限也復制到新文件中。

-r:若給出的源文件是一個目錄文件,此時將復制該目錄下所有的子目錄和文件。

-l:不復制文件,只是生成鏈接文件。

命令示例:cp -a a? parentPath/sonPath/ a對應當前文件夾下目錄或文件名? 可替換為絕對路徑?

mv

移動指令,等效于 windows 的移動和重命名。

示例:

mv /data/tmp1 /data/local/tmp2 //將 data/tmp1移動到/data/local/ 并重命名為 tmp2

rm

刪除指令,用于刪除文件和文件夾,示例:

rm -rf tmp // 刪除 tmp,建議加上-rf參數,其會刪除 tmp 所有的目錄和文件。

mkdir

創建目錄。常用參數:

-p :若 mkdir -p 后接路徑包含不存在路徑則一并創建。

sync

同步命令,常用于 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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內容