Linux基礎知識

1.Linux基礎
系統根目錄結構:
|bin  用戶級二進制工具
|boot  Linux內核鏡像文件,由bootloader程序讀取並裝載
|dev  各種系統硬件設備
|ect  系統配置文件及其他配置文件
|home  用戶工作目錄
|lib  系統運行時所需的各種庫文件
|opt  操作系統附帶的一些應用程序
|proc  內核及進程所虛擬的系統文件
|root  管理員工作目錄
|sbin  與bin的區別在於,該目錄下的二進制工具程序僅用於管理員
|sys  一般是驅動程序對應的虛擬系統文件
|usr  管理安裝的、所有用戶都可以訪問的應用程序
|var  系統運行時所產生的一些調試信息文件或者相關統計文件
  
2.系統的啓動過程
開機並執行bootloader程序--->操作系統內核初始化--->執行第一個應用程序 

3.linux權限
可以使用 chmod (change mode) 命令來改變文件或目錄的訪問權限,權限可以使用符號或數字來表示,增加(+)和刪除(-)權限,也可以指定特定權限(=)
  
 4.linux環境變量
 登錄系統後,Shell會有一個初始化的過程,用來設置環境變量。這個階段,Shell會讀取 /etc/profile 和 .profile 兩個文件,讀取完上面兩個文件,Shell就會出現 $ 命令提示符
 /etc/profile文件包含了通用的Shell初始化信息,由Linux管理員維護,一般用戶無權修改 修改主目錄下的 .profile 文件  設置默認終端類型和外觀樣式;設置 Shell 命令查找路徑,即PATH變量;設置命令提示符   

 5.Linux網絡通信工具
 ping 命令會向網絡上的主機發送應答請求,根據響應信息可以判斷遠程主機是否可用
 ftp 是 File Transfer Protocol 的縮寫,稱爲文件傳輸協議。通過 ftp 工具,能夠將文件上傳到遠程服務器,也可以從遠程服務器下載文件

6.linux管道

把兩個命令連起來使用,一個命令的輸出作爲另一個命令的輸入,這就叫做管道。爲了建立管道,需要在兩個命令之間使用豎線(|)連接。
 grep命令
 -v 反轉查詢,輸出不匹配的行。例如,grep -v "test" demo.txt 將輸出不包含"test"的行
 -n 輸出匹配的行以及行號
 -l 輸出匹配的行所在的文件名
 -c 輸出匹配的總行數
 -i 不區分大小寫進行匹配
sort命令
sort 命令,它將文件中的各行按字母或數進行排序
  -n 按照數字大小排序,例如,10會排在2後面;-n 選項會忽略空格或 tab縮進
   -r 降序排序。sort 默認是升序排序
   -f 不區分大小寫
   +x 對第x列(從0開始)進行排序
 使用 pg 和 more 命令分頁顯示,每次只顯示一屏 一次只顯示一屏文本,顯示滿後,停下來,並提示已顯示全部內容的百分比,按空格鍵(space)可以查看下一屏,按 b 鍵可以查看上一屏
  

---管理磁盤分區---

時經常會使用 df (disk free) 命令 

ubuntu掛載新硬盤操作指南
一、硬盤分區
1.顯示硬盤及所屬分區情況:sudo fdisk -lu
2.對硬盤進行分區:sudo fdisk /dev/sdb
二、硬盤格式化
1.顯示硬盤及所屬分區情況:sudo mkfs -t ext4 /dev/sdb1 -t ext4 表示將分區格式化成ext4文件系統類型
2.設置sdb1的卷標:sudo e2label /dev/sdb1 F  //這裏/F 就是在/dev/sdb1根下起了個名字
3.sudo mkdir /F   sudo mount -t ext4 /dev/sdb1 /F
4.獲取硬盤分區的UUID,然後掛載到啓動:ls -l /dev/disk/by-uuid/
5.寫入啓動掛在點: sudo vim /etc/fstab 
df -h 查看硬盤分區   sudo umount /F 卸載硬盤分區
 
 ---命令部分---
find ./ -type f -name "$FILE_TYPE" | xargs grep -w -nr --color "$STRING"   查找字符串
find ./ -name "$FILE_TYPE" | xargs rm -fr    刪除指定文件類型文件
find ./ -name "*.apk" 查找apk文件
wc -l package.sh 文件行數  wc -c filename:顯示一個文件的字節數  wc -m filename:顯示一個文件的字符數   wc -L filename:顯示一個文件中的最長行的長度 wc -w filename:顯示一個文件的字數        wc filename :輸出信息依次是:行數 字數 字節數 文件名稱.
file package.sh 文件類型
read 讀取用戶輸入的變量
cut -b5-10 package.sh 指定欲顯示的文件內容範圍,每行第五個至第十個字符
basename package.sh  獲取不包含路徑的文件名
dirname package.sh 獲取不包含文件名的文件路徑
adb shell getprop | grep persist.sys.timezone   查找手機persist.sys.timezone的值
aapt d badging $STRING | grep package       launchable-activity  查看apk文件包名
--man,即手冊,使用man *命令查詢*命令的作用和用法
--find,用於查找某個文件或者文件夾,比如:find . -name "*.java",該命令用於查找當前目錄下擴展名爲java的所有文件
--grep,爲正則表達式匹配命令,用於字符串匹配,比如grep "Activity" hello.java,查找hello.java文件中包含"Activity"字符串的所有地方
grep和find的區別在於,find用於查找目錄或者文件,grep用於查找指定的字符串
--xargs,xargs不是命令而是一個標識,代表上一個命令執行結果作爲下一個命令的參數
find `find . -name res` -name "*.xml"|xargs grep status_bar_size,查找當前目錄下目錄名稱爲res下的所有.xml文件,並且列出.xml文件中包含“status_bar_size”字符串的地方,find命令進行了嵌套使用,內部find包含在" ` "之中(數字鍵1左邊對應的那個符號)
--chmod,用於設置對文件的訪問權限
--ps,kill,ps用於列出當前運行的所有進程,kill用於殺死某個進程
--export,用於將某個變量值的作用域設爲全局範圍
croot   回到源碼根目錄下
godir   從當前路徑直接跳到某個文件所在的目錄
 basename --help
 basename [pathname]爲basename指定一個路徑,basename命令會刪掉所有的前綴包括最後一個slash(‘/’)字符,然後將字符串顯示出來 
 basename [pathname或string] [suffix]     suffix爲後綴,如果suffix被指定了,basename會將pathname或string中的suffix去掉

 readlink 獲取運行路徑的小程序 

cal 命令來查看日曆
修改密碼:輸入 password 命令
查看當前用戶信息 使用 whoami 命令
查看當前在線用戶 使用 users、who 和 w 命令
退出登錄 使用 logout 命令
重命名文件可以使用 mv 命令     rm命令可以刪除文件   cp 命令來複制文件
cat 命令來查看文件內容  cat 命令的 -b 選項來顯示行號
使用 wc 命令來統計當前文件的行數、單詞數和字符數
關閉系統(關機)
        halt 直接關閉系統
        init 0 使用預先定義的腳本關閉系統,關閉前可以清理和更新有關信息
        init 6 重新啓動系統
        poweroff 通過斷電來關閉系統
        reboot 重新啓動系統
        shutdown 安全關閉系統
    *pr 命令用來將文本文件轉換成適合打印的格式
   2.元字符是具有特殊含義的字符。* 和 ? 都是元字符
       * 可以匹配 0 個或多個任意字符;? 匹配一個字符。
   3.隱藏文件的第一個字符爲英文句號或點號(.),查看隱藏文件需要使用 ls 命令的 -a 選項  查看目錄和文件信息 ls -l
      * 匹配任意一個字符。如果你希望顯示所有以 .doc 結尾的文件,可以使用 ls *.doc
    ~ 就表示主目錄  / 代表根目錄
    返回進入當前目錄前所在的目錄可以使用下面的命令$cd -
    獲取當前所在的目錄可以使用 pwd 命令
    使用 mkdir 命令來創建目錄  mkdir 命令增加 -p 選項,可以一級一級創建所需要的目錄
    使用 rmdir 命令來刪除目錄   (注意:刪除目錄時請確保目錄爲空,不會包含其他文件或目錄)


 ---Git部分---

創建分支: $ git branch mybranch
切換分支: $ git checkout mybranch
創建並切換分支: $ git checkout -b mybranch
更新master主線上的東西到該分支上:$git rebase master
切換到master分支:$git checkout master
更新mybranch分支上的東西到master上:$git rebase mybranch
提交:git commit -a
對最近一次commit的進行修改:git commit -a –amend
commit之後,如果想撤銷最近一次提交(即退回到上一次版本)並本地保留代碼:git reset HEAD^
合併分支:(merge from) $ git checkout master
$ git merge mybranch (merge from mybranch)
刪除分支: $ git branch -d mybranch
強制刪除分支: $ git branch -D mybranch
列出所有分支: $ git branch
查看各個分支最後一次提交: $ git branch -v
查看哪些分支合併入當前分支: $ git branch –merged
查看哪些分支未合併入當前分支: $ git branch –no-merged
更新遠程庫到本地: $ git fetch origin
推送分支: $ git push origin mybranch
取遠程分支合併到本地: $ git merge origin/mybranch
取遠程分支並分化一個新分支: $ git checkout -b mybranch origin/mybranch
刪除遠程分支:                 $ git push origin :mybranch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章