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

  這是我在Linux系統下寫的第一篇博客,花了一週的時間從Windows系統轉到Linux而且能夠完成平常操做,能在Linux系統下完成開發,運用各類開發工具,寫各類語言小程序和JavaEE。git

  通過這一週後,個人感受就是,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下的不一樣之處總結:

  1、環境變量配置:

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

  

  環境變量配置方法以下:網絡

  

  其中的PATH纔是真正的環境變量根配置,其餘都是變量引用,好好看就能明白了。架構

  不過這個環境變量的配置是全局的環境變量,就是不論以哪一個身份登錄均可以使用該設置。maven

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

  2、劃分swap空間

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

  3、權限的控制

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

    

  清晰可見,如今的我只有權限使用opt文件夾裏面的東西,我甚至連讀取一下里面的文本都沒有權限:

  

  因而可知Linux系統是多麼的安全!

  四、強大的終端命令

  若是說出最大的區別,莫過於無所不能的終端命令了,強大無比,並且可經過各類編程語言作成可執行的.sh腳本,如今列出一系列經常使用命令(部分摘自Boblim的博客,本身又添加一些):

  一、關於用戶切換

  

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

 

  二、關於系統信息

 

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 

 

  三、關機 (系統的關機、重啓以及登出 )

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

 

  四、文件和目錄的操做

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     列出已知的編碼 

 

  五、文件搜索

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     顯示一個二進制文件或可執行文件的完整路徑 

 

  六、磁盤空間

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

  

  七、用戶和羣組

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     登錄進一個新的羣組以改變新建立文件的預設羣組 

  

  八、文件的權限 - 使用 "+" 設置權限,使用 "-" 用於取消

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 位 

 

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

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

 

  十、打包和壓縮文件

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格式壓縮包 

  

  十一、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包提供 

 

  十二、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 到當前的庫中而且自動導入公鑰

 

  歡迎評論和轉載。

相關文章
相關標籤/搜索