Windows轉Linux總結(附帶常用Linux命令-LinuxMint)

来源:https://www.cnblogs.com/1214804270hacker/archive/2018/04/26/8952698.html
-Advertisement-
Play Games

這是我在Linux系統下寫的第一篇博客,花了一周的時間從Windows系統轉到Linux並且可以完成日常操作,能在Linux系統下完成開發,運用各種開發工具,寫各種語言小程式和JavaEE。 經過這一周後,我的感覺就是,Linux太好玩了!!! 感受一下我的桌面: Linux和Windows最大的區 ...


  這是我在Linux系統下寫的第一篇博客,花了一周的時間從Windows系統轉到Linux並且可以完成日常操作,能在Linux系統下完成開發,運用各種開發工具,寫各種語言小程式和JavaEE。

  經過這一周後,我的感覺就是,Linux太好玩了!!!

  感受一下我的桌面:

  

 

 Linux和Windows最大的區別在於,你可以自己定製屬於自己的個人電腦,這是我最大的感悟——比如,我不需要微軟的各種服務進程,我需要的只是我要用我需要的服務進程。我在Windows下開機,會有226個進程,記憶體占用率達到40%;而當我在Linux下開機(現在附開Firefox瀏覽器、音樂播放器和wine QQ):

 

感受一下,這是我的電腦配置:

  Linux下的Java IDE我安裝了MyEclipse、IntelliJ IDEA,然後我發現Linux系統下的MyEclipse實在是太爛了,寫個代碼都一卡一卡的,翻頁看代碼就像翻PPT一樣,實在不能忍,然後就卸載了,專心用IntelliJ IDEA寫Java代碼。Linux下的git比在Windows下使用好多了,不存在git bash,在哪打開終端都是git bash,而且tab還有提示,maven也有提示,非常舒服。

  Linux下的不同之處總結:

  一、環境變數配置:

  在Windows中的環境變數配置還是很友好的,在系統設置直接有環境變數配置,但是在Linux下不是這樣的:在/etc/.profile中,必須以root身份打開

  

  環境變數配置方法如下:

  

  其中的PATH才是真正的環境變數根配置,其他都是變數引用,好好看就能明白了。

  不過這個環境變數的配置是全局的環境變數,就是不論以哪個身份登陸都可以使用該設置。

  不過如果經常使用一個用戶,推薦在該用戶的HOME中配置.bash_profile,這樣比較安全,不至於環境變數配置錯誤連開機都開不了。我曾經把環境變數配置錯了,開機後登陸不上去,進不去系統,最後用命令行登陸進去後,花了一天時間對著滿屏的命令,找到了原因,是環境變數配置錯誤了。因為Linux開機後,是要檢查一次環境變數的,如果環境變數出錯,是進不去系統的。

  二、劃分swap空間

  swap空間是Linux特有的一個概念,Linux系統的記憶體不僅僅需要物流記憶體條的大小,也需要硬碟中劃分出一塊區域供系統使用。Swap分區在系統的物理記憶體不夠用的時候,把物理記憶體中的一部分空間釋放出來,以供當前運行的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時保存到Swap分區中,等到那些程式要運行時,再從Swap分區中恢復保存的數據到記憶體中。這樣可以節省系統開銷,甚至越過系統瓶頸。但是這塊區域並不是越大越好,小了又不夠用,最好劃分的和物理記憶體一樣大。

  三、許可權的控制

  也許會認為,Windows下也有許可權,不過Windows的許可權控制在Linux的許可權控制面前簡直弱爆了,看一下就知道了:

    

  清晰可見,現在的我只有許可權使用opt文件夾裡面的東西,我甚至連讀取一下裡面的文本都沒有許可權:

  

  由此可見Linux系統是多麼的安全!

  四、強大的終端命令

  如果說出最大的區別,莫過於無所不能的終端命令了,強大無比,而且可通過各種編程語言做成可執行的.sh腳本,現在列出一系列常用命令(部分摘自Boblim的博客,自己又添加一些):

  1、關於用戶切換

  

su    切換到root用戶
su - user    切換至user用戶
sudo -i    切換到root用戶
sudo xxx    暫時用sudo身份執行命令
exit    退回上一身份

 

  2、關於系統信息

 

arch     顯示機器的處理器架構(1) 
uname -m     顯示機器的處理器架構(2) 
uname -r     顯示正在使用的內核版本 
dmidecode -q     顯示硬體系統部件 - (SMBIOS / DMI) 
hdparm -i /dev/hda     羅列一個磁碟的架構特性 
hdparm -tT /dev/sda     在磁碟上執行測試性讀取操作 
cat /proc/cpuinfo     顯示CPU info的信息 
cat /proc/interrupts     顯示中斷 
cat /proc/meminfo     校驗記憶體使用 
cat /proc/swaps     顯示哪些swap被使用 
cat /proc/version     顯示內核的版本 
cat /proc/net/dev     顯示網路適配器及統計 
cat /proc/mounts     顯示已載入的文件系統 
lspci -tv     羅列 PCI設備 
lsusb -tv     顯示 USB 設備 
date     顯示系統日期 
cal 2007     顯示2007年的日曆表 
date 041217002007.00     設置日期和時間 - 月日時分年.秒 
clock -w     將時間修改保存到 BIOS 

 

  3、關機 (系統的關機、重啟以及登出 )

shutdown -h now     關閉系統(1) 
init 0     關閉系統(2) 
telinit 0     關閉系統(3) 
shutdown -h hours:minutes &     按預定時間關閉系統 
shutdown -c     取消按預定時間關閉系統 
shutdown -r now     重啟(1) 
reboot     重啟(2) 
logout     註銷 

 

  4、文件和目錄的操作

cd /home     進入 '/ home' 目錄' 
cd ..     返回上一級目錄 
cd ../..     返回上兩級目錄 
cd     進入個人的主目錄 
cd ~user1     進入個人的主目錄 
cd -     返回上次所在的目錄 
pwd     顯示工作路徑 
ls     查看目錄中的文件 
ls -F     查看目錄中的文件 
ls -l     顯示文件和目錄的詳細資料 
ls -a     顯示隱藏文件 
ls *[0-9]*     顯示包含數字的文件名和目錄名 
tree     顯示文件和目錄由根目錄開始的樹形結構(1) 
lstree     顯示文件和目錄由根目錄開始的樹形結構(2) 
mkdir dir1     創建一個叫做 'dir1' 的目錄' 
mkdir dir1 dir2     同時創建兩個目錄 
mkdir -p /tmp/dir1/dir2     創建一個目錄樹 
rm -f file1     刪除一個叫做 'file1' 的文件' 
rmdir dir1     刪除一個叫做 'dir1' 的目錄' 
rm -rf dir1     刪除一個叫做 'dir1' 的目錄並同時刪除其內容 
rm -rf dir1 dir2     同時刪除兩個目錄及它們的內容 
mv dir1 new_dir     重命名/移動 一個目錄 
cp file1 file2     複製一個文件 
cp dir/* .     複製一個目錄下的所有文件到當前工作目錄 
cp -a /tmp/dir1 .     複製一個目錄到當前工作目錄 
cp -a dir1 dir2     複製一個目錄 
ln -s file1 lnk1     創建一個指向文件或目錄的軟鏈接 
ln file1 lnk1     創建一個指向文件或目錄的物理鏈接 
touch -t 0712250000 file1     修改一個文件或目錄的時間戳 - (YYMMDDhhmm) 
iconv -l     列出已知的編碼 

 

  5、文件搜索

find / -name file1     從 '/' 開始進入根文件系統搜索文件和目錄 
find / -user user1     搜索屬於用戶 'user1' 的文件和目錄 
find /home/user1 -name \*.bin     在目錄 '/ home/user1' 中搜索帶有'.bin' 結尾的文件 
find /usr/bin -type f -atime +100     搜索在過去100天內未被使用過的執行文件 
find /usr/bin -type f -mtime -10     搜索在10天內被創建或者修改過的文件 
find / -name \*.rpm -exec chmod 755 '{}' \;     搜索以 '.rpm' 結尾的文件並定義其許可權 
find / -xdev -name \*.rpm     搜索以 '.rpm' 結尾的文件,忽略光碟機、捷盤等可移動設備 
locate \*.ps     尋找以 '.ps' 結尾的文件 - 先運行 'updatedb' 命令 
whereis halt     顯示一個二進位文件、源碼或man的位置 
which halt     顯示一個二進位文件或可執行文件的完整路徑 

 

  6、磁碟空間

df -h     顯示已經掛載的分區列表 
ls -lSr |more     以尺寸大小排列文件和目錄 
du -sh dir1     估算目錄 'dir1' 已經使用的磁碟空間' 
du -sk * | sort -rn     以容量大小為依據依次顯示文件和目錄的大小 

  

  7、用戶和群組

groupadd group_name     創建一個新用戶組 
groupdel group_name     刪除一個用戶組 
groupmod -n new_group_name old_group_name     重命名一個用戶組 
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1     創建一個屬於 "admin" 用戶組的用戶 
useradd user1     創建一個新用戶 
userdel -r user1     刪除一個用戶 ( '-r' 排除主目錄) 
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1     修改用戶屬性 
passwd     修改口令 
passwd user1     修改一個用戶的口令 (只允許root執行) 
chage -E 2005-12-31 user1     設置用戶口令的失效期限 
pwck     檢查 '/etc/passwd' 的文件格式和語法修正以及存在的用戶 
grpck     檢查 '/etc/passwd' 的文件格式和語法修正以及存在的群組 
newgrp group_name     登陸進一個新的群組以改變新創建文件的預設群組 

  

  8、文件的許可權 - 使用 "+" 設置許可權,使用 "-" 用於取消

ls -lh     顯示許可權 
ls /tmp | pr -T5 -W$COLUMNS     將終端劃分成5欄顯示 
chmod ugo+rwx directory1     設置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r )、寫(w)和執行(x)的許可權 
chmod go-rwx directory1     刪除群組(g)與其他人(o)對目錄的讀寫執行許可權 
chown user1 file1     改變一個文件的所有人屬性 
chown -R user1 directory1     改變一個目錄的所有人屬性並同時改變改目錄下所有文件的屬性 
chgrp group1 file1     改變文件的群組 
chown user1:group1 file1     改變一個文件的所有人和群組屬性 
find / -perm -u+s     羅列一個系統中所有使用了SUID控制的文件 
chmod u+s /bin/file1     設置一個二進位文件的 SUID 位 - 運行該文件的用戶也被賦予和所有者同樣的許可權 
chmod u-s /bin/file1     禁用一個二進位文件的 SUID位 
chmod g+s /home/public     設置一個目錄的SGID 位 - 類似SUID ,不過這是針對目錄的 
chmod g-s /home/public     禁用一個目錄的 SGID 位 
chmod o+t /home/public     設置一個文件的 STIKY 位 - 只允許合法所有人刪除文件 
chmod o-t /home/public     禁用一個目錄的 STIKY 位 

 

  9、文件的特殊屬性 - 使用 "+" 設置許可權,使用 "-" 用於取消

chattr +a file1     只允許以追加方式讀寫文件 
chattr +c file1     允許這個文件能被內核自動壓縮/解壓 
chattr +d file1     在進行文件系統備份時,dump程式將忽略這個文件 
chattr +i file1     設置成不可變的文件,不能被刪除、修改、重命名或者鏈接 
chattr +s file1     允許一個文件被安全地刪除 
chattr +S file1     一旦應用程式對這個文件執行了寫操作,使系統立刻把修改的結果寫到磁碟 
chattr +u file1     若文件被刪除,系統會允許你在以後恢復這個被刪除的文件 
lsattr     顯示特殊的屬性 

 

  10、打包和壓縮文件

bunzip2 file1.bz2     解壓一個叫做 'file1.bz2'的文件 
bzip2 file1     壓縮一個叫做 'file1' 的文件 
gunzip file1.gz     解壓一個叫做 'file1.gz'的文件 
gzip file1     壓縮一個叫做 'file1'的文件 
gzip -9 file1     最大程度壓縮 
rar a file1.rar test_file     創建一個叫做 'file1.rar' 的包 
rar a file1.rar file1 file2 dir1     同時壓縮 'file1', 'file2' 以及目錄 'dir1' 
rar x file1.rar     解壓rar包 
unrar x file1.rar     解壓rar包 
tar -cvf archive.tar file1     創建一個非壓縮的 tarball 
tar -cvf archive.tar file1 file2 dir1     創建一個包含了 'file1', 'file2' 以及 'dir1'的檔案文件 
tar -tf archive.tar     顯示一個包中的內容 
tar -xvf archive.tar     釋放一個包 
tar -xvf archive.tar -C /tmp     將壓縮包釋放到 /tmp目錄下 
tar -cvfj archive.tar.bz2 dir1     創建一個bzip2格式的壓縮包 
tar -xvfj archive.tar.bz2     解壓一個bzip2格式的壓縮包 
tar -cvfz archive.tar.gz dir1     創建一個gzip格式的壓縮包 
tar -xvfz archive.tar.gz     解壓一個gzip格式的壓縮包 
zip file1.zip file1     創建一個zip格式的壓縮包 
zip -r file1.zip file1 file2 dir1     將幾個文件和目錄同時壓縮成一個zip格式的壓縮包 
unzip file1.zip     解壓一個zip格式壓縮包 

  

  11、DEB 包

dpkg -i package.deb     安裝/更新一個 deb 包 
dpkg -r package_name     從系統刪除一個 deb 包 
dpkg -l     顯示系統中所有已經安裝的 deb 包 
dpkg -l | grep httpd     顯示所有名稱中包含 "httpd" 字樣的deb包 
dpkg -s package_name     獲得已經安裝在系統中一個特殊包的信息 
dpkg -L package_name     顯示系統中已經安裝的一個deb包所提供的文件列表 
dpkg --contents package.deb     顯示尚未安裝的一個包所提供的文件列表 
dpkg -S /bin/ping     確認所給的文件由哪個deb包提供 

 

  12、APT 軟體工具

apt-get install package_name     安裝/更新一個 deb 包 
apt-cdrom install package_name     從光碟安裝/更新一個 deb 包 
apt-get update     升級列表中的軟體包 
apt-get upgrade     升級所有已安裝的軟體 
apt-get remove package_name     從系統刪除一個deb包 
apt-get check     確認依賴的軟體倉庫正確 
apt-get clean     從下載的軟體包中清理緩存 
apt-cache search searched-package     返回包含所要搜索字元串的軟體包名稱 
add-apt-repository ppa:<ppa_name>  添加 ppa 到當前的庫中並且自動導入公鑰

 

  歡迎評論和轉載。


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

-Advertisement-
Play Games
更多相關文章
  • 在<<asp.net core上使用Redis探索(1)>>中,我介紹了一個微軟官方實現Microsoft.Extensions.Caching.Redis的類庫,這次,我們使用微軟官方的Redis客戶端。 使用Nuget引入Microsoft.Extensions.Caching.Redis庫, ...
  • 在上一篇文章《路由其實也可以很簡單》,我們解決了路由問題,這篇文章,我們來研究剩下的另一個問題,為何我們的方法返回的是一個列表,輸出到客戶端的時候,變成json呢,大家應該還記得我們上一篇文章ProductsController的代碼: 在使用預設的約定的路由時,我們輸入地址:http://loca ...
  • 實驗所需資源: 1. tiny210(cortex a8) 2. QT 版本:5.6.2 3. PC 環境:UBUNTU 4. tslib:tslib 1.4 5. 交叉工具鏈:4.5.1 6. 開發板已裝載好 Linux 編譯 tslib 可能需要安裝的庫: ~~~~ sudo apt get i ...
  • Nginx編譯安裝Lua模塊 一、安裝Lua環境及相關庫 官網網址:https://github.com/openresty/lua nginx module 1. LuaJIT ` wget http://luajit.org/download/LuaJIT 2.0.2.tar.gz make i ...
  • 因業務需求,需要把lvs備機也使用上,故! 使用雙主,相互是主的同時也相互是備機。本人用nat測試發現RS無法實現負載均衡,故採用DR模式來實現非web端的負載均衡 lvs1: DIP 10.60.196.183 VIP 10.60.196.185 lvs2:DIP 10.60.196.184 VI ...
  • "Linux kernel的中斷子系統之(一):綜述" "Linux kernel的中斷子系統之(二):IRQ Domain介紹" "linux kernel的中斷子系統之(三):IRQ number和中斷描述符" "linux kernel的中斷子系統之(四):High level irq eve ...
  • TIP:Tab鍵可以自動補全命令 首先要瞭解Linux樹形結構 1、/- 根每一個文件和目錄從根目錄開始。只有root用戶具有該目錄下的寫許可權。請註意,/root是root用戶的主目錄,這與/.不一樣 2、/bin中 - 用戶二進位文件包含二進位可執行文件。在單用戶模式下,你需要使用的常見Linux ...
  • 這裡以redis-4.0.9為例 我自己為了好方便管理自己的軟體包,就在/usr/local/目錄下創建了一個software目錄 mkdir /usr/local/software cd /usr/local/software mkdir /usr/local/software cd /usr/l ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...