這是我在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也有提示,很是舒服。安全
在Windows中的環境變量配置仍是很友好的,在系統設置直接有環境變量配置,可是在Linux下不是這樣的:在/etc/.profile中,必須以root身份打開bash
環境變量配置方法以下:網絡
其中的PATH纔是真正的環境變量根配置,其餘都是變量引用,好好看就能明白了。架構
不過這個環境變量的配置是全局的環境變量,就是不論以哪一個身份登錄均可以使用該設置。maven
不過若是常用一個用戶,推薦在該用戶的HOME中配置.bash_profile,這樣比較安全,不至於環境變量配置錯誤連開機都開不了。我曾經把環境變量配置錯了,開機後登錄不上去,進不去系統,最後用命令行登錄進去後,花了一天時間對着滿屏的命令,找到了緣由,是環境變量配置錯誤了。由於Linux開機後,是要檢查一次環境變量的,若是環境變量出錯,是進不去系統的。
swap空間是Linux特有的一個概念,Linux系統的內存不只僅須要物流內存條的大小,也須要硬盤中劃分出一塊區域供系統使用。Swap分區在系統的物理內存不夠用的時候,把物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什麼操做的程序,這些被釋放的空間被臨時保存到Swap分區中,等到那些程序要運行時,再從Swap分區中恢復保存的數據到內存中。這樣能夠節省系統開銷,甚至越過系統瓶頸。可是這塊區域並非越大越好,小了又不夠用,最好劃分的和物理內存同樣大。
也許會認爲,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格式壓縮包
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-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 到當前的庫中而且自動導入公鑰
歡迎評論和轉載。