Linux學習(1)-常用快捷鍵、文件管理和查詢

来源:http://www.cnblogs.com/zhaopei/archive/2017/08/21/7397402.html
-Advertisement-
Play Games

有話要說 為什麼要用Linux?要用Linux的原因太多,想說說不完啊。 如果你說用Linux只是為了裝逼,那證明你真的還很菜。不排除有裝逼了因素,那也只占非常少的比例,可以忽略不計。 我們反問一下,為什麼不用Linux呢?回答無非就是:沒有圖像界面、操作太複雜、和我以前的使用習慣不一樣、學習新的系 ...


有話要說

為什麼要用Linux?要用Linux的原因太多,想說說不完啊。
如果你說用Linux只是為了裝逼,那證明你真的還很菜。不排除有裝逼了因素,那也只占非常少的比例,可以忽略不計。
我們反問一下,為什麼不用Linux呢?回答無非就是:沒有圖像界面、操作太複雜、和我以前的使用習慣不一樣、學習新的系統需要學習成本。
其實只是我們排斥未知的恐懼,從心底裡面抵觸,而找的各種理由。要想做好一件事,我們會去找各種方法。不想做一件事,我們會去找各種理由。
.net core的推出絕對不是讓我們在Windows上玩玩的。特別是多年經驗的.net er,需要快速適應這種變化,不然這是個危險的信號啊。
我們正在進行一場革命,革的不好就沒命了。微軟都已經擁抱Linux了,你還有在堅持什麼呢?(當然,如果你只是想玩.net framework的話,當我沒說。

image

進入Linux你將進入另一個世界,下麵開始我們Linux的學習吧~

Shell應用技巧,常用快捷鍵

Shift + insert             #粘貼
Ctrl + insert              #複製
Tab【按鍵】或者 Ctrl + i   #命令補齊 【這個快捷鍵太有用了,這不就是linux下的智能提示麽】
Ctrl + w                   #刪除前一個單詞
Ctrl + u                   #刪除游標前全部字元
Ctrl + k                   #刪除游標後全部字元
Ctrl + d                   #刪除游標所在字元
Ctrl + y                   #將刪除的字元粘出來
Ctrl + a                   #將游標移動到行首
Ctrl + e                   #將游標移動到行尾
← 或者 ctrl + b            #游標左移動
→ 或者 Ctrl + f            #游標右移動
↑ 或者 Ctrl + p            #顯示上一條命令
↓ 或者 ctrl + n            #顯示下一條命令
ctrl + s                   #暫時凍結輸入
ctrl + q                   #解凍(解凍後會自動輸入之前的輸入)
Ctrl + l                   #清屏  
Ctrl + c                   #退出正在的執行命令或另起一行
Ctrl + d                   #退出登錄
Ctrl + z

幫助命令

man (幫助命令)

原意:manual
語法:man [命令或配置文件]  
首先我們學習linux命令太多,不可能記住所有命令。那麼這個man命令就是個很好的幫助命令。  
示例:
man 1 passwd  # 1查看命令幫助 ,1預設可以省略
man 5 passwd  # 5查看配置文件幫助
#只要按下/,游標就會跑到這個地方來,你就可以開始輸入搜尋字串(n繼續往下查詢,N方向查詢)
#q退出、空格向下翻頁、pgup向上翻頁

info (和man差不多)

原意:information
語法:info [任何關鍵字]

whatis (查詢基本信息,等效於man -f)

#mandb 更新whatis資料庫

help (幫助)

可以查詢一些shell內置命令幫助,如 cd、pwd

--help (獲取選項信息【常用】)

示例: 
[root@localhost ~]# cat --help
用法:cat [選項]... [文件]...
將[文件]或標準輸入組合輸出到標準輸出。
  -A, --show-all           等於-vET
  -b, --number-nonblank    對非空輸出行編號
  -e                       等於-vE
  -E, --show-ends          在每行結束處顯示"$"
  -n, --number             對輸出的所有行編號
  -s, --squeeze-blank      不輸出多行空行
  -t                       與-vT 等價
  -T, --show-tabs          將跳格字元顯示為^I
  -u                       (被忽略)
  ...
有了這個命令,我們學習起來就有了訣竅。  

alias (別名)

查看別名:alias
命令別名:alias mycp='cp'
這樣起的別名只在當前視窗有效,如果要是命令長期有效則要修改配置文件.bashrc,在/root目錄下。  
這樣就很方便我們定製自己的個性命令了。比如重啟supervisorctl reload這個命令記不住,太長了。我們可以別名alias reloadsupervisorctl='supervisorctl reload'。這樣我們只要記住reload然後按tab鍵就可以自動補全了。

文件管理、文件搜索命令

cd (切換目錄)

原意:change directo
語法:cd [目錄]

pwd (顯示當前目錄)

原意:print working directory
語法:pwd

特殊目錄

. 代表此層目錄(cd ./dotnet 和 cd dotnet等效)
.. 代表上一層目錄
- 代表前一個工作目錄(上次執行cd前的目錄)
~ 代表“目前使用者身份”所在的主文件夾(和直接執行cd等效)
~account 代表 account 這個使用者的主文件夾( account是個帳號名稱)
示例:
cd ~   #和直接cd 等效
cd ..  #返回上層目錄
cd -   #回到上次執行cd執行前的目錄

ls (顯示目錄文件)

- 原意:list
- 語法:ls [-ald] [文件或目錄]

touch (創建空文件)

語法:touch [文件名]
查看文件的時間信息:
modification time ( mtime):內容數據變更時
status time ( ctime):狀態改變時
access time ( atime) :該文件的內容被取用時
示例:
[root@localhost dotnet]# ls -l dotnet              #查看dotnet文件的創建時間(預設就是mtime)
-rwxr-xr-x. 1 1002 27 105664 7月  21 07:16 dotnet
[root@localhost dotnet]# ls -l --time=atime dotnet #查看dotnet文件的讀取時間
-rwxr-xr-x. 1 1002 27 105664 8月  19 17:31 dotnet
[root@localhost dotnet]# ls -l --time=ctime dotnet #查看dotnet文件的狀態更新時間
-rwxr-xr-x. 1 1002 27 105664 8月  15 20:23 dotnet

mkdir (創建新目錄)

語法:mkdir [目錄名]

cp (複製文件或目錄)

語法:cp -r [原文件或目錄][目的目錄]
示例:
[root@localhost ~]# cp mytest.txt mytest2.txt #複製mytest.txt 到 mytest2.txt
[root@localhost ~]# cp project project2       #複製文件夾(如果文件夾裡面有內容賦值失敗) 
cp: 略過目錄"project"
[root@localhost ~]# cp -r project project2    #複製文件夾 (需要帶上 -r參數,遞迴持續複製)

mv (移動文件或重命名)

原意:move
語法:mv [源文件或目錄 ][目的目錄]

rm (刪除文件)

原意:remove
語法:rm -rf [文件或目錄]   #r是刪除目錄 f是不需要確認
示例:
[root@localhost ~]# rm mytest2.txt     #刪除文件mytext2.txt(會預設給出提示)
rm:是否刪除普通文件 "mytest2.txt"?y
[root@localhost ~]# rm -f mytest.txt   #刪除文件不需要提示(帶上 -f參數)
[root@localhost ~]# rm project2        #不能刪除目錄
rm: 無法刪除"project2": 是一個目錄
[root@localhost ~]# rm -rf project2    #刪除目錄需要帶上-r(-r遞迴刪除、帶上f是不需要確認提示,如果一百個文件,提示一百次會瘋的)
[root@localhost project2]# rm System.Xml*                #刪除System.Xml開頭的文件
rm:是否刪除普通文件 "System.Xml.ReaderWriter.dll"?y
rm:是否刪除普通文件 "System.Xml.XDocument.dll"?y

cat (顯示文件內容)

原意:Concatenate
語法:cat [文件名]
示例:
[root@localhost ~]# cat mytest.test     #查看文件mytest.test
[root@localhost ~]# cat -n mytest.test  #-n顯示行號 (類似nl命令)
這個命令有個缺點,就是顯示全部信息,如果內容過多,瀏覽就不方便了。

more (分頁顯示文件內容)

語法:more [文件名] 
 空格或f顯示下一頁
 回車顯示下一行
 q退出
示例:
[root@localhost ~]# more 三體.txt 
輸入/  然後輸入關鍵字比如“三”
/三
...跳過
相關文章
 
《三體3》未獲雨果獎 ...
《三體》電影確定上映日程,...
#把帶“三”的行都搜索出來了。

less (分頁查詢,比more更加強大)

more 只能翻下一頁,less可以上下翻頁。
參數:
[pagedown]:向下翻動一頁;
[pageup] :向上翻動一頁;
/字串 :向下搜尋“字串”的功能;
?字串 :向上搜尋“字串”的功能;
n :重覆前一個搜尋 ( 與 / 或 ? 有關!)
N :反向的重覆前一個搜尋 ( 與 / 或 ? 有關!)
g :前進到這個數據的第一行去;
G :前進到這個數據的最後一行去 ( 註意大小寫) ;
q :離開 less 這個程式;
示例:
[root@localhost ~]# less  三體.txt 
輸入/  然後輸入關鍵字比如“三” 可以高亮關鍵字。

head (查看文件的前幾行)

語法:head -num [文件名]
示例:
[root@localhost ~]# head -n 5 三體.txt   #顯示前五行
[root@localhost ~]# head -n 5 三體.txt   #不顯示後五行

tail (查看文件的後幾行)

語法:tail -num [文件名]

ln (產生鏈接文件)

原意:link
語法:ln -s [源文件] [目標文件]
示例:  
ln -s /home/testfile /home/testfile.soft  #創建文件的軟鏈接testfile.soft  
ls -s /home.testfile /home/testifle.hard  #創建文件的硬鏈接testfile.hard

which (顯示系統命令所在目錄)

語法:which [命令名稱]
示例:
[root@localhost dotnet]# which ifconfig
/usr/sbin/ifconfig

find (查找文件或目錄)

語法:find [搜索路徑][搜索關鍵字]
-a 邏輯與 -o 邏輯或  -name文件名 -size文件大小 -cteime文件修改時間
示例:
find /etc -name init    #查找目錄下名字是inti的文件   
find /etc -size +204800 #查找目錄下大於100M的文件   
find /etc -ctime -1     #查找24小時內被修改過屬性的文件和目錄  
find mytest -exec ls -l {} \; #查看當前目錄mytest文件夾下的文件執行 ls -l 命令。 -exec {}\; 是固定格式。
find mytest -name F* #查找mytest文件夾下以F開頭的文件
find mytest -name F??? #查找mytest文件夾下以F開頭的並且文件名只有四個字母

locate (尋找文件或目錄)

用法:locate [搜索關鍵字]
示例:
[root@localhost dotnet]# locate dotnet    #查詢所有包含dotnet的文件和目錄  
[root@localhost dotnet]# locate Dotnet    #查詢不到,因為區分大小寫
[root@localhost dotnet]# locate -i Dotnet #查找所有路徑或文件名包含dotnet關鍵字文件路徑,且不區分大小寫
[root@localhost dotnet]# locate -ic Dotnet#查詢搜索結果的數量 
3661
說明:
查詢緩存資料庫里查詢(可以使用updatedb命令 [建立目錄文件的資料庫],預設每天更新一次)

grep (在文件內容中搜索匹配的行並輸出)

用法:grep [指定字元串][源文件]
示例:
grep 我 testfile #搜索當前目錄下的文件testfile中包含“我”的行

其他

輸入/輸出重定向

- > 輸出重定向
示例: ls -l > mytest.txt #將當前目錄的所以文件信息寫入mytest.txt文件下。
- < 輸入重定向
示例:wall <  mytest.txt  #將mytest.txt文件裡面的內容廣播(wall廣播命令)  
- 2> 錯誤重定向
示例:ggg 2> err.txt      # err.txt將記錄錯誤信息 (ggg是個錯誤命令)

history (顯示歷史命令)

| (管道)

ls查詢到的文件可能很多,如果我們想要分頁瀏覽,我們可以使用管道命令  
ls -l /etc | more              #分頁查看etc目錄下的文件  
ls -l /etc | grep init         #查看etc目錄下文件名包含init的文件  
ls -l /etc | grep init | wc -l #查看etc目錄下文件名包含init的文件的個數

命令連接符

 ; 
示例:cd /home ; ls #跳轉到home目錄並且查看裡面的文件(就算是錯誤的命令也會繼續執行後面的命令。)
 &&
示例:ggg && ls #不會查看目錄下的文件(中間有錯誤的命令存在就不會執行後面的命令)
 ||
示例:ggg || ls #會執行查看目錄下的文件(遇到可以執行成功的命令就會停止執行後面的命令)

命令替換符

用法:命令1 `命令2`
示例:
ls -l `which cd` #查看cd命令的文件信息(which定位命令的位置)

netstat

netstat -lntp  #查看監聽(Listen)的埠
netstat -antp  #查看所有建立的TCP連接
netstat -tunlp #查看埠使用情況 (如  netstat -tunlp | grep 3306 查看3306埠是否被使用)
netstat -n | grep tcp | grep 80 | wc -l #監控網路客戶連接數

負載信息

ps -eLf | grep dotnet | wc -l           #監控dotnet線程數
mpstat       #不但能查看所有CPU的平均信息,還能查看指定CPU的信息。
top -u mysql #查看使用情況 按鍵盤數字“1”,可監控每個邏輯CPU的狀況 (http://blog.csdn.net/dxl342/article/details/53507673)
df -lh            #顯示所有硬碟的使用狀況

firewall防火牆

firewall-cmd --zone=public --add-port=80/tcp --permanent     #開放80埠
firewall-cmd --zone=public --remove-port=80/tcp --permanent  #關閉80埠
firewall-cmd --reload                                        #重新載入,使其生效
systemctl restart firewalld                                  #重啟防火牆
firewall-cmd --zone=public --list-ports                      #查看防火牆開啟的埠
http://www.cnblogs.com/moxiaoan/p/5683743.html

其他

- su #用戶切換
[root@localhost dotnet]# su BennyZhao
[BennyZhao@localhost dotnet]$ su root
- 圖形界面與字元界面切換
init 5 #切換到圖形界面
init 3 #切換到命令行界面
- 安裝rz
yum install lrzsz #安裝rz和sz命令
- curl訪問
curl              #訪問
註意:除了 / 之外,所有的符號都可以為文件或文件夾命名。命名大小寫敏感。

推薦

我的博客只是個人學習總結,並不適合園友用來學習。
這裡推薦《鳥哥的Linux 私房菜》:http://linux.vbird.org/linux_basic/0220filemanager.php 這是網頁版(預設是繁體字,可以使用chrome瀏覽器自動翻譯成簡體。可以用pocket插件在手機端看)網上也有PDF、mobi版。
然後喜歡看視頻的可以:http://study.163.com/course/introduction.htm?courseId=266032#/courseDetail?tab=1 李明老師的視頻也很不錯,你也可以下載網易雲課堂手機版在公交車或地鐵上看。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.安裝文件列表 2.安裝文件複製以下目錄 3.安裝gcc 4.安裝pcre依賴包 5.安裝libstdc++-devel(gcc-c++依賴) 6.安裝gcc-c++ 7.安裝zlib-devel 8.安裝nginx 9.開放80埠 10.查看埠開啟狀態 11.查看安裝路徑與nginx版本 1 ...
  • 繼上一篇文章:http://www.cnblogs.com/linhaostudy/p/7397024.html 3. 文件系統的註冊 這裡的文件系統是指可能會被掛載到目錄樹中的各個實際文件系統,所謂實際文件系統,即是指VFS 中的實際操作最終要通過它們來完成而已,並不意味著它們一定要存在於某種特定 ...
  • xargs 地下管道 促使我去思考,管道 的具象含義是什麼。 用管道符號可以組合出更實用的內容:優先順序為 任務數量為 2。 其中 命令接收一個參數,並將其內容列印到標準輸出:當前屏幕。 本例中 "sample.txt" 內容並沒有輸出到屏幕上,內容被重定向到管道命令 緩存中了。 而 命令需要兩個參數 ...
  • 最近掛載了N多的文件系統,大致了不同文件系統的相應特性及掛載方式,卻還是對Linux的文件系統沒有從源碼方面去瞭解。不求甚解確實不好不好。 於是借鑒一些大牛的博客及自己的理解,總結了博客系列: 一、VFS是什麼: VFS是Linux中的一個虛擬文件文件系統,也稱為虛擬文件系統交換層(Virtual ...
  • Vista 和 Windows7 系統都很註重系統的安全性,在提高安全性的同時,也給我們某些應用帶來不便,例如需要安裝插件或證書,可能會彈出“由於無法驗證發行者,所以WINDOWS已經阻止此軟體”的相關提示,而致使無法正常使用該軟體,下麵分享解決此類提示的方法: 按下麵兩步操作,一般情況都可以解決此 ...
  • 為什麼降呢?就從看到朋友的win10是盜版說起。正好手頭上有辦法激活win7旗艦,還有個小心思,看著10特不舒服,估計又加了一些小白完全用不上的東西,想到就動手,以下是倒騰了幾天的小總結。 首先,win是不支持降級的很明顯,不管怎麼試都失敗,u盤安裝,硬碟安裝還是cd裝,統統無用,在磨夠了耐性以後, ...
  • 一、Oracle VirtualBox安裝Linux7.0全屏設置 1. 點擊菜單欄 設備 –> 分配光碟機 –> 選擇一個虛擬光碟,找到VirtualBox安裝目錄下的VBoxGuestAdditions.iso,載入此鏡像。2. 啟動Linux系統並用root身份登入系統3. 執行掛載命令,將虛擬 ...
  • 參考了兩種方法: 1. 解決fatal: unable to connect to github.com問題 http://blog.csdn.net/greenqingqingws/article/details/11808745原因:需要用https才能讀到數據解決方法:輸入命令git conf ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...