linux裏的那麼點東西(持續更新)

做爲一個程序猿的確是應該上的了windows,下的了linux的。可是因爲沒有對linux產生一些剛性的需求,因此使用的次數仍是略少,對一些基本的concept和command仍是有一些生疏。藉着最近在使用的功夫,記錄一點下來,不按期更新。html

目前環境:Kali Linux and ubuntu14.04node

我裝的軟件在哪裏?

linux的目錄結構和windows有很大的不一樣。初學者大多都根據教程使用例如apt-get install或者經過多行命令自行對源碼進行編譯等方式安裝軟件。結果也能正常使用了,可是軟件裝在哪了?是否和windows同樣存在一個C:\Program Files的目錄?python

FHS中常見的目錄

  • / (root、根目錄)與開機系統有關。
  • /usr (Unix software resource)與軟件安裝執行有關。
  • /var(variable)與系統運行有關。
  • /home 用戶的主文件夾
  • /mnt 臨時安裝目錄,系統管理員能夠掛載文件系統。
  • /opt 第三方應用程序安裝的目錄
  • /etc 包含系統的全部配置文件。
  • /bin 包含了常見的系統命令。例如:ps、ls、ping、grep、cp。
  • /boot 引導加載程序文件。
  • /dev 包含設備文件。
  • /root root用戶的主文件夾

個人軟件在哪裏,/opt or /usr or /usr/local?

首先,不管咱們經過何種方式安裝軟件,通常都在兩個地方。可是,第三方軟件到底安裝在哪一個目錄,網上仍是有不少爭議的。總結以下:mysql

  • 應用型的軟件(文本編輯器、瀏覽器、播放器等)應該安裝在/opt下。例如,
    1. kali下安裝sublime。下載.deb後,經過dpkg -i ./sublime-text_build-3083_i386.deb安裝成功後,在/opt目錄下;
    2. 安裝pycharm。下載壓縮包後,直接解壓縮到/opt下,開箱即用。
  • /usr由linux發行版的包管理工具來管理。
  • 須要本身編譯的軟件,一般放在/usr/local目錄。

PATH有啥用呢?(2017.7.14)

不管是windows仍是linux系統都有環境變量這個概念。通常咱們在安裝軟件時會須要配置它,通常是PATH變量和其餘程序須要讀取的變量。例如,曾今安裝jdk須要配置CLASSPATH。linux

1.系統級環境變量git

  • /etc/profile : 在登陸時,操做系統定製用戶環境時使用的第一個文件 ,此文件爲系統的每一個用戶設置環境信息,當用戶第一次登陸時,該文件被執行。
  • /etc /environment : 在登陸時操做系統使用的第二個文件, 系統在讀取你本身的profile前,設置環境文件的環境變量。
  • /etc/bashrc:而若是系統是 ubuntu 或者 debian 的話, 就不會有 /etc/bashrc 而會有 /etc/bash.bashrc 文件。

2.用戶級環境變量github

  • ~/.profile : 在登陸時用到的第三個文件 是.profile文件,每一個用戶均可使用該文件輸入專用於本身使用的shell信息,當用戶登陸時,該文件僅僅執行一次!默認狀況下,他設置一些環境變量,執行用戶的.bashrc文件。
  • ~/.bashrc : 該文件包含專用於你的bash。shell的bash信息,當登陸時以及每次打開新的shell時,該該文件被讀取。

爲了理清楚環境變量的執行,這裏有必要提出另外的兩個概念。前提這裏講到的shell,通常爲bash shell。shell在linux中分爲login shell和no-login shellweb

  1. login shell表明須要進行身份驗證的shell。例如用root來操做時,須要的su,經過ssl遠程鏈接到別的主機,以及經過tty1-tty6登陸到客戶機bash中等。這些都屬於login shell。
  2. no-login shell也就是不須要登陸。例如在ubuntu gonme中打開終端。

這兩種shell設置環境變量的方式是不一樣的。sql

  • login shell會去自動執行 /etc/profile 和 ~/.profile 文件, 但不會執行任何的 bashrc 文件。因此通常再 /etc/profile 或者 ~/.profile 裏咱們會手動去 source bashrc 文件.下面是 ~/.profile的部分代碼,能夠發現~/.profile會調用~/.bashrc。
  • no-login shell只會執行/etc/bash.bashrc和~/.bashrc
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

咱們在別人寫的博客中能夠看到既有把環境變量配置在~/.profile裏,也有配置在~/.bashrc中的。如今咱們就能夠理解了。shell

  1. 做爲客戶機使用時,例如ubuntu desktop。安裝軟件時,須要把環境變量配置在~/.bashrc中,由於咱們本地運行的bash shell是no-login shell,不會執行~/.profile。
  2. 做爲服務器使用時,通常會使用ssl登陸,例如阿里雲等等。能夠講環境變量配置在~/.profile中,由於做爲login shell,此文件是執行的。
  3. 綜上,配置在~/.bashrc裏面是最好的,不管是那種shell均會執行

設置方法

$ sudo subl ~/.bashrc用編輯器打開文件。在此文件末尾加入PATH的設置以下:
export PATH=」$PATH:your path1:your path2 ...
例如ubuntu下配置jdk:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:JAVAHOME/lib:{JRE_HOME}/lib
export PATH=$JAVA_HOME/bin:$PATH

孰能生巧的命令(2017.7.15)

文件操做

mkdir 新建目錄 -p 創建多層目錄 -m [umask] 添加權限
mkdir -p aa/bb/cc 
mkdir -m 711 aa
rmdir 刪除空目錄 -p 刪除多層目錄
rmdir -p aa/bb/cc
cp、mv 、rm 複製、移動、刪除
-i 交互式 -f 強制刪除 -r遞歸操做

終端查看文件內容

cat 第一行開始顯示內容

文件權限

drwxrwxr-x 9 chingyu chingyu 4096 Jul 11 20:23 yara-python
跟文件權限相關的是前幾段。

drwxrwxr-x表示文件的權限,第一位表示文件屬性,-表示文件,d表示文件夾。
第一個chingyu表示擁有者,第二個表示所在用戶組。

文件的權限分文rwx,用umask表示,r:4,w:2:,x:1。常見的777權限,也就是rwxrwxrwx

chomd [umask] [file] 修改文件的權限。
chomd 777 yara-python 等同於
chomd u=rwx,g=rwx,o=rwx yara-python
chown [group] [file] 改變用戶組 -R 遞歸調用

經常使用軟件安裝方式

軟件的安裝在linux下主要分爲兩種。一種是經過包管理器例如ubuntu的apt-get xxx,另外一種是本身手動安裝。經過包管理器安裝的,基本開箱即用,無需配置,可是存在一個問題,有時候沒法安裝最近的程序。例如,我如今用的是ubuntu14.04,在安裝nodejs的時候,就沒法安裝到v8這個版本。此時就須要使用手動安裝。

手動安裝軟件通常分爲兩種。
1. 已經編譯好的binary文件
這種通常會以tar.gz壓縮包的形式給出。下載下來後,通常的軟件,解壓後,在bin目錄會有可執行的文件或者是腳本,雙擊運行便可。若是是開發環境這類的軟件,或多或少須要配置,例如mysql、nodejs等。數據庫類的須要配置相關的服務和環境變量。其餘的通常也須要配置環境變量,才能在terminal中使用。
2. 須要本身進行編譯安裝
下載到的壓縮包通常是源碼,或是本身去github下。而後經過make、make install等命令來安裝。
下面列出經常使用的軟件安裝方法。

sublime text

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update 
sudo apt-get install sublime-text-installer

可是sublime text自己不支持中文的輸入。具體配置請看連接,或者直接使用vs code吧。
解決Ubuntu下Sublime Text 3沒法輸入中文

vs code

https://code.visualstudio.com/Download下載deb,直接安裝。

pycharm

  1. http://www.jetbrains.com/pycharm/download/下載最新版本的壓縮包。
  2. pycharm-2017.1.tar.gz放到安裝的目錄下,建議 /opt
  3. 解壓。tar -xzf pycharm-2017.1.tar.gz
  4. 運行bin目錄下的pycharm.sh

DrClient

部分學校須要用到dr.com來進行撥號上網。

  1. 從校園網上下載linux版本的DrClient客戶端,切記在linux下進行解壓。
  2. sudo sh privillege.sh
  3. 運行DrClientLinux便可。

參考文獻

相關文章
相關標籤/搜索