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


  這是我在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 到當前的庫中並且自動導入公鑰

 

  歡迎評論和轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM