繼 這篇文章 ,這篇將接續對於elf檔案的認識。ELF(Executable Linkable Format)檔的結構由多個區段組成,包括file header, .text section, .data section 以及 .bss section等區段。其中 .text存放程式碼區段,.data存放已初始化的全域變數以及靜態變數,而.bss存放已初始化的全域變數以及靜態變數。這篇的小實驗同樣是藉由main.cpp這支簡單的小程式來進行。 main.cpp #define N 81 int main(){ return 0;//this is the end } size size這個指令可以用來查看ELF檔各個區段的長度,在main.cpp檔中,我們並未宣告任何的變數,於是可以看到以下在於.text以及.data區段的長度皆為0。 $ size main.o text data bss dec hex filename 103 0 0 103 67 main.o
這一篇將用「Linux下啟動MATLAB」來認識.bashrc以及設定環境變數。 .bashrc "bash"是Bourne Again SHell的簡稱,是Linux預設使用的shell。使用者,termial,shell這三個元素的相關性可以藉由「使用者,透過terminal,與shell進行溝通」來描述。在開啟terminal時,bash就會被啟動,同時載入.bashrc裡的資訊。以下用一個小實驗來呈現這一點,實驗中在.bashrc裡頭加入: echo 'BASHRC' 然後開啟terminal,即可看見terminal在開啟時,載入了.bashrc並且執行我們在裡頭寫的,希望它印出BASHRC字樣的指令: BASHRC :~$ 我們也可以在裡面設定一些功能,比如說terminal的個人化設置或是環境變數的設定。在 python importation 中有提過「python importation 的機制在於編輯 sys.path」,與在.bashrc中設定環境變數PATH要做的事情是相似的:編輯搜索的目錄,讓系統在一或多個工作目錄底下能夠找的到特定的檔案。 加入環境變數,讓MATLAB能夠在任何目錄下被執行 在Linux下安裝好MATLAB後,只能藉由CLI啟動,且需先進到"matlab"的目錄底下: ~$ cd /usr/local/MATLAB/R2022a/bin/ /usr/local/MATLAB/R2022a/bin$ ./matlab 需進到目錄底下才能夠啟動MATLAB有損方便性,若是我們希望能在所有目錄底下啟動matlab,則可以在.bashrc中加入環境變數: PATH=$PATH:/usr/local/MATLAB/R2022a/bin 接著藉由source重新整理(重新開啟一個terminal也會去讀取更新後的.bashr進而達到同樣的目的): /$ source .bashrc 重新載入.bashrc後即可在任一目錄底下啟動matlab: ~$ matlab