Linux 之目錄 -鳥哥的Linux私房菜

因為利用 Linux 來開發產品或 distributions 的社群/公司與個人實在太多了, 如果每個人都用自己的想 法來配置檔案放置的目錄,那么將可能造成很多管理上的困擾。 你能想象,你進入一個企業之后,所 接觸到的 Linux 目錄配置方法竟然跟你以前學的完全不同嗎? 很難想象吧~所以,后來就有所謂的 Filesystem Hierarchy Standard (FHS)標準的出爐了!

?

根據 FHS(http://www.pathname.com/fhs/)的官方文件指出, 他們的主要目的是希望讓使用者可以了 解到已安裝軟件通常放置于那個目錄下, 所以他們希望獨立的軟件開發商、操作系統制作者、以及想 要維護系統的用戶,都能夠遵循 FHS 的標準。 也就是說,FHS 的重點在于規范每個特定的目錄下應該 要放置什么樣子的數據而已。 這樣做好處非常多,因為 Linux 操作系統就能夠在既有的面貌下(目錄架 構不變)發展出開發者想要的獨特風格。

事實上,FHS 是根據過去的經驗一直再持續的改版的,FHS 依據文件系統使用的頻繁與否與是否允許使 用者隨意更動, 而將目錄定義成為四種交互作用的形態,用表格來說有點像底下這樣:

上表中的目錄就是一些代表性的目錄,該目錄底下所放置的數據在底下會談到,這里先略過不談。 我 們要了解的是,什么是那四個類型?

  • ? ?可分享的:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據, 是 能夠分享給網絡上其他主機掛載用的目錄;

  • ? ?不可分享的:自己機器上面運作的裝置檔案或者是與程序有關的 socket 檔案等, 由于僅與自身 機器有關,所以當然就不適合分享給其他主機了。

  • ? ?不變的:有些數據是不會經常變動的,跟隨著 distribution 而不變動。 例如函式庫、文件說明 文件、系統管理員所管理的主機服務配置文件等等;

  • ? ?可變動的:經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。

    事實上,FHS 針對目錄樹架構僅定義出三層目錄底下應該放置什么數據而已,分別是底下這三個目錄的 定義:

可分享的(shareable)

不可分享的(unshareable)

不變的(static) /usr (軟件放置處)

/etc (配置文件)

/opt (第三方協力軟件)

/boot (開機與核心檔)

可變動的(variable) /var/mail (使用者郵件信箱)

/var/run (程序相關)

/var/spool/news (新聞組)

/var/lock (程序相關)

? ?/ (root, 根目錄):與開機系統有關;

?

  • ? ?/usr (unix software resource):與軟件安裝/執行有關;

  • ? ?/var (variable):與系統運作過程有關。

    為什么要定義出這三層目錄呢?其實是有意義的喔!每層目錄底下所應該要放置的目錄也都又特定的規 定喔! 由于我們尚未介紹完整的 Linux 系統,所以底下的介紹你可能會看不懂!沒關系,先有個概念 即可, 等到妳將基礎篇全部看完后,就重頭將基礎篇再看一遍!到時候你就會豁然開朗啦!^_^

    Tips:

    這個 root 在 Linux 里面的意義真的很多很多~多到讓人搞不懂那是啥玩意兒。 如 果以『賬號』的角度來看,所謂的 root 指的是『系統管理員!』的身份, 如果以 『目錄』的角度來看,所謂的 root 意即指的是根目錄,就是 / 啦~ 要特別留意 喔!

? 根目錄 (/) 的意義與內容:

根目錄是整個系統最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的, 同時根目錄也 與開機/還原/系統修復等動作有關。 由于系統開機時需要特定的開機軟件、核心檔案、開機所需程序、 函式庫等等檔案數據,若系統出現錯誤時,根目錄也必須要包含有能夠修復文件系統的程序才行。 因 為根目錄是這么的重要,所以在 FHS 的要求方面,他希望根目錄不要放在非常大的分割槽內, 因為越 大的分割槽妳會放入越多的數據,如此一來根目錄所在分割槽就可能會有較多發生錯誤的機會。

因此 FHS 標準建議:根目錄(/)所在分割槽應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄 放在同一個分割槽內,保持根目錄越小越好。 如此不但效能較佳,根目錄所在的文件系統也較不容易 發生問題。

有鑒于上述的說明,因此 FHS 定義出根目錄(/)底下應該要有底下這些次目錄的存在才好:

目錄 應放置檔案內容

系統有很多放置執行文件的目錄,但/bin 比較特殊。因為/bin 放置的是在單人維護模 /bin 式下還能夠被操作的指令。 在/bin 底下的指令可以被 root 與一般賬號所使用,主要

有:cat, chmod, chown, date, mv, mkdir, cp, bash 等等常用的指令。

這個目錄主要在放置開機會使用到的檔案,包括 Linux 核心檔案以及開機選單與開機 /boot 所需配置文件等等。 Linux kernel 常用的檔名為:vmlinuz,如果使用的是 grub 這

個開機管理程序, 則還會存在/boot/grub/這個目錄喔!

在 Linux 系統上,任何裝置與接口設備都是以檔案的型態存在于這個目錄當中的。 你 /dev 只要透過存取這個目錄底下的某個檔案,就等于存取某個裝置啰~ 比要重要的檔案有

/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等

/etc

系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務 的啟始檔等等。一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的, 但 是只有 root 有權力修改。FHS 建議不要放置可執行文件(binary)在這個目錄中喔。比 較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:

  • ? ?/etc/init.d/:所有服務的預設啟動 script 都是放在這里的,例如要啟動或者關 閉 iptables 的話:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』

  • ? ?/etc/xinetd.d/:這就是所謂的 super daemon 管理的各項服務的配置文件目 錄。

  • ? ?/etc/X11/:與 X Window 有關的各種配置文件都在這里,尤其是 xorg.conf 這個 X Server 的配置文件。

/home

?

/lib

這是系統默認的用戶家目錄(home directory)。在你新增一個一般使用者賬號時, 默 認的用戶家目錄都會規范到這里來。比較重要的是,家目錄有兩種代號喔: ~:代表目前這個用戶的家目錄,而
~dmtsai :則代表 dmtsai 的家目錄!

系統的函式庫非常的多,而/lib 放置的則是在開機時會用到的函式庫, 以及在/bin 或 /sbin 底下的指令會呼叫的函式庫而已。 什么是函式庫呢?妳可以將他想成是『外 掛』,某些指令必須要有這些『外掛』才能夠順利完成程序的執行之意。 尤其重要的 是/lib/modules/這個目錄, 因為該目錄會放置核心相關的模塊(驅動程序)喔!

media 是『媒體』的英文,顧名思義,這個/media 底下放置的就是可移除的裝置 /media 啦! 包括軟盤、光盤、DVD 等等裝置都暫時掛載于此。常見的檔名有:

/media/floppy, /media/cdrom 等等。

如果妳想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。 在古早時 /mnt 候,這個目錄的用途與/media 相同啦!只是有了/media 之后,這個目錄就用來暫時

掛載用了。

這個是給第三方協力軟件放置的目錄。什么是第三方協力軟件啊? 舉例來說,KDE

這個桌面管理系統是一個獨立的計劃,不過他可以安裝到 Linux 系統中,因此 KDE /opt 的軟件就建議放置到此目錄下了。 另外,如果妳想要自行安裝額外的軟件(非原本的

distribution 提供的),那么也能夠將你的軟件安裝到這里來。 不過,以前的 Linux 系 統中,我們還是習慣放置在/usr/local 目錄下呢!

系統管理員(root)的家目錄。之所以放在這里,是因為如果進入單人維護模式而僅掛 /root 載根目錄時, 該目錄就能夠擁有 root 的家目錄,所以我們會希望 root 的家目錄與根

     目錄放置在同一個分割槽中。

Linux 有非常多指令是用來設定系統環境的,這些指令只有 root 才能夠利用來『設 定』系統,其他用戶最多只能用來『查詢』而已。 放在/sbin 底下的為開機過程中所 需要的,里面包括了開機、修復、還原系統所需要的指令。 至于某些服務器軟件程 序,一般則放置到/usr/sbin/當中。至于本機自行安裝的軟件所產生的系統執行文件 (system binary), 則放置到/usr/local/sbin/當中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs 等等。

srv 可以視為『service』的縮寫,是一些網絡服務啟動之后,這些服務所需要取用的 /srv 數據目錄。 常見的服務例如 WWW, FTP 等等。舉例來說,WWW 服務器需要的網頁

資料就可以放置在/srv/www/里面。

這是讓一般用戶或者是正在執行的程序暫時放置檔案的地方。 這個目錄是任何人都能 /tmp 夠存取的,所以你需要定期的清理一下。當然,重要數據不可放置在此目錄啊! 因為

FHS 甚至建議在開機時,應該要將/tmp 下的數據都刪除唷!

事實上 FHS 針對根目錄所定義的標準就僅有上面的咚咚,不過我們的 Linux 底下還有許多目錄你也需 要了解一下的。 底下是幾個在 Linux 當中也是非常重要的目錄喔:

/sbin

目錄

應放置檔案內容

?

這個目錄是使用標準的 ext2/ext3 文件系統格式才會產生的一個目錄,目的在于當 文件系統發生錯誤時, 將一些遺失的片段放置到這個目錄下。這個目錄通常會在 分割槽的最頂層存在, 例如你加裝一顆硬盤于/disk 中,那在這個系統下就會自動 產生一個這樣的目錄『/disk/lost+found』

/lost+found

?
?

這個目錄本身是一個『虛擬文件系統(virtual filesystem)』喔!他放置的數據都是 在內存當中, 例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等 等。因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間啊!比 較重要的檔案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。

/proc

?

/sys

這個目錄其實跟/proc 非常類似,也是一個虛擬的文件系統,主要也是記錄與核心

相關的信息。 包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這 個目錄同樣不占硬盤容量喔!

除了這些目錄的內容之外,另外要注意的是,因為根目錄與開機有關,開機過程中僅有根目錄會被掛 載, 其他分割槽則是在開機完成之后才會持續的進行掛載的行為。就是因為如此,因此根目錄下與開 機過程有關的目錄, 就不能夠與根目錄放到不同的分割槽去!那哪些目錄不可與根目錄分開呢?有底 下這些:

? /etc:配置文件
? /bin:重要執行檔
? /dev:所需要的裝置檔案
? /lib:執行檔所需的函式庫與核心所需的模塊 ? /sbin:重要的系統執行文件

這五個目錄千萬不可與根目錄分開在不同的分割槽!請背下來啊! 好了,談完了根目錄,接下來我們 就來談談/usr 以及/var 啰!先看/usr 里面有些什么東西:

? /usr 的意義與內容:

依據 FHS 的基本定義,/usr 里面放置的數據屬于可分享的與不可變動的(shareable, static), 如果你知 道如何透過網絡進行分割槽的掛載(例如在服務器篇會談到的 NFS 服務器),那么/usr 確實可以分享給局 域網絡內的其他主機來使用喔!

很多讀者都會誤會/usr 為 user 的縮寫,其實 usr 是 Unix Software Resource 的縮寫, 也就是『Unix 操作系統軟件資源』所放置的目錄,而不是用戶的數據啦!這點要注意。 FHS 建議所有軟件開發者, 應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目錄。

因為是所有系統默認的軟件(distribution 發布者提供的軟件)都會放置到/usr 底下,因此這個目錄有點 類似 Windows 系統的『C:\Windows\ + C:\Program files\』這兩個目錄的綜合體,系統剛安裝完畢 時,這個目錄會占用最多的硬盤容量。 一般來說,/usr 的次目錄建議有底下這些:

目錄 應放置檔案內容

/usr/X11R6/

為 X Window System 重要數據所放置的目錄,之所以取名為 X11R6 是因為最后 的 X 版本為第 11 版,且該版的第 6 次釋出之意。

/usr/bin/

絕大部分的用戶可使用指令都放在這里!請注意到他與/bin 的不同之處。(是否與 開機過程有關)

/usr/include/ c/c++等程序語言的檔頭(header)與包含檔(include)放置處,當我們以 tarball 方 式 (*.tar.gz 的方式安裝軟件)安裝某些數據時,會使用到里頭的許多包含檔喔!

包含各應用軟件的函式庫、目標檔案(object file),以及不被一般使用者慣用的執

行檔或腳本(script)。 某些軟件會提供一些特殊的指令來進行服務器的設定,這些 /usr/lib/ 指令也不會經常被系統管理員操作, 那就會被擺放到這個目錄下啦。要注意的 是,如果你使用的是 X86_64 的 Linux 系統, 那可能會有/usr/lib64/目錄產生

喔!

系統管理員在本機自行安裝自己下載的軟件(非 distribution 默認提供者),建議安

裝到此目錄, 這樣會比較便于管理。舉例來說,你的 distribution 提供的軟件較 /usr/local/ 舊,你想安裝較新的軟件但又不想移除舊版, 此時你可以將新版軟件安裝于

/usr/local/目錄下,可與原先的舊版軟件有分別啦! 你可以自行到/usr/local 去 看看,該目錄下也是具有 bin, etc, include, lib...的次目錄喔!

/usr/sbin/

非系統正常運作所需要的系統指令。最常見的就是某些網絡服務器軟件的服務指 令(daemon)啰!

放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的 數據, 因為幾乎都是文本文件嘛!在此目錄下常見的還有這些次目錄:

? /usr/share/man:聯機幫助文件
? /usr/share/doc:軟件雜項的文件說明
? /usr/share/zoneinfo:與時區有關的時區檔案

/usr/share/

一般原始碼建議放置到這里,src 有 source 的意思。至于核心原始碼則建議放置 到/usr/src/linux/目錄下。

/usr/src/

? /var 的意義與內容:

如果/usr 是安裝時會占用較大硬盤容量的目錄,那么/var 就是在系統運作后才會漸漸占用硬盤容量的目 錄。 因為/var 目錄主要針對常態性變動的檔案,包括快取(cache)、登錄檔(log file)以及某些軟件運作 所產生的檔案, 包括程序檔案(lock file, run file),或者例如 MySQL 數據庫的檔案等等。常見的次目 錄有:

目錄 應放置檔案內容 /var/cache/ 應用程序本身運作過程中會產生的一些暫存檔;

程序本身執行的過程中,需要使用到的數據文件放置的目錄。在此目錄下各自的軟 /var/lib/ 件應該要有各自的目錄。 舉例來說,MySQL 的數據庫放置到/var/lib/mysql/而

rpm 的數據庫則放到/var/lib/rpm 去!

某些裝置或者是檔案資源一次只能被一個應用程序所使用,如果同時有兩個程序使 用該裝置時, 就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖(lock),以確 保該裝置只會給單一軟件所使用。 舉例來說,刻錄機正在刻錄一塊光盤,你想一 下,會不會有兩個人同時在使用一個刻錄機燒片? 如果兩個人同時刻錄,那片子寫 入的是誰的資料?所以當第一個人在刻錄時該刻錄機就會被上鎖, 第二個人就得要 該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使用啰。

重要到不行!這是登錄文件放置的目錄!里面比較重要的檔案如 /var/log/messages, /var/log/wtmp(記錄登入者的信息)等。

放置個人電子郵件信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄 中! 通常這兩個目錄是互為鏈接文件啦!

某些程序或者是服務啟動后,會將他們的 PID 放置在這個目錄下喔! 至于 PID 的 意義我們會在后續章節提到的。

      這個目錄通常放置一些隊列數據,所謂的『隊列』就是排隊等待其他程序使用的數

據啦! 這些數據被使用后通常都會被刪除。舉例來說,系統收到新信會放置到 /var/spool/ /var/spool/mail/中, 但使用者收下該信件后該封信原則上就會被刪除。信件如果 暫時寄不出去會被放到/var/spool/mqueue/中, 等到被送出后就被刪除。如果是

工作排程數據(crontab),就會被放置到/var/spool/cron/目錄中!

建議在你讀完整個基礎篇之后,可以挑戰 FHS 官方英文文件(參考本章參考數據),相信會讓你對于 Linux 操作系統的目錄有更深入的了解喔!

? 針對 FHS,各家 distributions 的異同

由于 FHS 僅是定義出最上層(/)及次層(/usr, /var)的目錄內容應該要放置的檔案或目錄數據, 因此,在 其他次目錄層級內,就可以隨開發者自行來配置了。舉例來說,CentOS 的網絡設定數據放在 /etc/sysconfig/network-scripts/ 目錄下,但是 SuSE 則是將網絡放置在 /etc/sysconfig/network/ 目

/var/lock/

/var/log/ /var/mail/ /var/run/

錄下,目錄名稱可是不同的呢!不過只要記住大致的 FHS 標準,差異性其實有限啦!

?

目錄樹(directory tree)

另外,在 Linux 底下,所有的檔案與目錄都是由根目錄開始的!那是所有目錄與檔案的源頭~ 然后再 一個一個的分支下來,有點像是樹枝狀啊~因此,我們也稱這種目錄配置方式為:『目錄樹(directory tree)』 這個目錄樹有什么特性呢?他主要的特性有:

  • ? ?目錄樹的啟始點為根目錄 (/, root);

  • ? ?每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的 filesystem 。舉例

    來說, 可以利用 Network File System (NFS) 服務器掛載某特定目錄等。 ? 每一個檔案在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。?

轉載于:https://www.cnblogs.com/itech168/p/4006175.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376612.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376612.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376612.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python腳本:向表中插入新數據,刪除表中最舊的數據

一張表存儲歷史數據,最多存儲HISTORY_TABLE_MAX_ROWS條數據,當表中數據未達到HISTORY_TABLE_MAX_ROWS,直接插入;如果達到的話需要保證插入新數據的時候將最舊的數據刪除 這里使用先update最新數據,然后再重新update全表…

精通 VC++ 實效編程280例 - 02 菜單和光標

菜單和關閉時重要的 Windows 資源之一。SDK 中,用 HCURSOR 和 HMENU 分別表示菜單和光標的句柄。MFC 中,CMenu 類封裝了菜單的功能。 23 動態添加和刪除菜單項 添加菜單項可以調用 CMenu::AppendMenu 或 CMenu::InserMenu 函數,刪除菜單項可以…

POJ 1860: Currency Exchange 【SPFA】

套匯問題,從源點做SPFA,如果有一個點入隊次數大于v次(v表示點的個數)則圖中存在負權回路,能夠套匯,如果不存在負權回路,則判斷下源點到自身的最長路是否大于自身,使用SPFA時松弛操作…

python腳本:判斷字符是否為中文

# 判斷字符是否為中文 def is_chinese(ch):if u\u4e00 < ch < u\u9fff:return Trueelse:return False

Android 廣播 Broadcast學習

Android Broadcast 廣播 進程內本地廣播 如果你是在你的應用之內使用廣播&#xff0c;即不需要跨進程&#xff0c;考慮使用LocalBroadcastManager &#xff0c;這樣更有效率&#xff08;因為不需要跨進程通信&#xff09;&#xff0c;并且你不用考慮一些其他應用可以發送或接收…

python:將時間戳轉換成格式化日期

import time # 將時間戳轉換成格式化日期 def timestamp_to_str(timestampNone, format%Y-%m-%d %H:%M:%S):if timestamp:time_tuple time.localtime(timestamp) # 把時間戳轉換成時間元祖result time.strftime(format, time_tuple) # 把時間元祖轉換成格式化好的時間retur…

WebApp 里Meta標簽大全

1.先說說mate標簽里的viewport&#xff1a; viewport即可視區域&#xff0c;對于桌面瀏覽器而言&#xff0c;viewport指的就是除去所有工具欄、狀態欄、滾動條等等之后用于看網頁的區域。對于傳統WEB頁面來說&#xff0c;980的寬度在iphone上顯示是很正常的&#xff0c;也是滿屏…

python:封裝CRUD操作

# 封裝數據庫操作 def SELECT(db, cursor, sql):try:# 執行SQL語句db.ping(reconnectTrue)cursor.execute(sql)# 獲取所有記錄列表results cursor.fetchall()logging.debug("select commit")except:logging.error(sql)logging.error("select 語句執行出錯"…

我的osu游戲程序設計(oo)

osu是一款社區元素為主旨的音樂游戲,由澳大利亞人Dean Herbert (peppy)獨立制作并運行. 游戲的方法簡單,就是 1. 圈圈(Circle)&#xff1a;圈圈(Circle) 50。沒打中顯示X,并減少生命值。圈中序號的最后一個的300、100會顯示為激300、喝100。2.滑條(Slider) : 在開始端點擊按住不…

影像數據庫調研

參考Paul Graham比較各種編程語言的方法&#xff0c;我們比較各種數據庫的特點如下&#xff1a; Oracle: 我們需要企業級數據庫。 MySQL: Oracle不開源。 PostgreSQL: MySQL的功能不夠多。 SQLite: 你可以把我嵌入到任何地方。這樣&#xff0c;4種數據庫夠大家用了。 MongoDB: …

linux進程間通信快速入門【三】:信號量(XSI、POSIX以及PV原語)

文章目錄XSIsemgetsemop、semtimedopsemctl基于共享內存demo修改XSI信號量的限制PV原語PV控制并發進程數POSIX信號量使用posix命名信號量使用posix匿名信號量參考在前兩篇文章中我們使用的racingdemo都沒有對臨界區代碼進行加鎖&#xff0c;這里我們介紹以下信號量的使用。Linu…

QTableWidget的使用詳細介紹和美工總結(轉)

基本外觀設置 FriendTable->setFrameShape(QFrame::NoFrame); //設置邊框 FriendTable->setHorizontalHeaderLabels(HeadList); 設置表頭 FriendTable->setSelectionMode(QAbstractItemView::SingleSelection); 設置選擇的模式為單選擇 FriendTable->setSelect…

Android programming on Mac 之安裝Eclipse

1.安裝包在此鏈接下載&#xff1a; http://developer.android.com/sdk/index.html google GoAgent翻墻不好用&#xff0c;更新了host文件也不行&#xff0c;整了半天&#xff0c;還是一怒之下續簽了vpn賬號。早知如此&#xff0c;何必折騰。~~~~(>_<)~~~~ 更新文件時…

c++關于虛表的一些筆記

文章目錄1、虛函數表指針2、多態構成的條件3、重載、重寫、重定義 三者區別4、繼承與虛函數5、單繼承中的虛函數表無虛函數覆蓋有虛函數覆蓋6、單繼承中的虛函數表無虛函數覆蓋有虛函數覆蓋參考看《深度探索c對象模型》的時候對虛表有了點疑惑&#xff0c;正好網上有些文章解除…

4、在Shell程序中的使用變量

學習目標變量的賦值變量的訪問變量的輸入 12-4-1 變量的賦值在Shell編程中&#xff0c;所有的變量名都由字符串組成&#xff0c;并且不需要對變量進行聲明。要賦值給一個變量&#xff0c;其格式如下&#xff1a;變量名值。注意&#xff1a;等號()前后沒有空格例如&#xff1a; …

C語言技巧:把單一元素的數組放在末尾,struct可以擁有可變大小的數組

《C 對象模型》第19頁有這樣一句話 C程序員的巧計有時候卻成為c程序員的陷阱。例如把單一元素的數組放在一個struct的末尾&#xff0c;于是每個struct objects可以擁有可變數組的數組&#xff1a; struct mumble {/* stuff */char pc[1]; };//從文件或標準輸入裝置中取得一個…

探討C++ 變量生命周期、棧分配方式、類內存布局、Debug和Release程序的區別(二)...

看此文&#xff0c;務必需要先了解本文討論的背景&#xff0c;不多說&#xff0c;給出鏈接&#xff1a; 探討C 變量生命周期、棧分配方式、類內存布局、Debug和Release程序的區別&#xff08;一&#xff09; 本文會以此問題作為討論的實例&#xff0c;來具體討論以下四個問題&a…

后臺系統可擴展性學習筆記(一)概要

文章目錄系統大致架構可擴展性負載均衡器與會話保持引入冗余增強系統可用性緩存減輕數據庫壓力異步處理參考系統大致架構 當一個用戶請求從客戶端出發&#xff0c;經過網絡傳輸&#xff0c;達到 Web 服務層&#xff0c;接著進入應用層&#xff0c;最后抵達數據層&#xff0c;它…

poj 3728(LCA + dp)

題目鏈接&#xff1a;http://poj.org/problem?id3728 思路&#xff1a;題目的意思是求樹上a -> b的路徑上的最大收益&#xff08;在最小值買入&#xff0c;在最大值賣出&#xff09;。 我們假設路徑a - > b 之間的LCA(a, b) f, 并且另up[a]表示a - > f之間的最大收益…

成功之路

1、每天都要有進步&#xff0c;都要有新知識的收獲。 2、工作認真負責&#xff0c;高效的完成&#xff0c;多總結。 3、自己多練習一些感興趣的東西&#xff0c;實踐&#xff01;&#xff01;&#xff01; 4、寫博客。 5、百度、騰訊、阿里是目標&#xff0c;差距還很大&#x…