使用fedora23很久了, 但是感覺不是很流暢, 出現了一些不太穩定的體驗, 所以想改到centos7. 因為centos7的很多東西 跟 fedora23 很相近了. 所以應該是無縫過渡
- 是選擇32位的系統還是選擇64位的系統?
- 還是要使用 32位的 它是90%的人的選擇使用, 是普通人的通用選擇, 幾乎支持linux下的所有軟件;
- 64位的系統, 是適合 特殊職業/特殊行業使用的, 比如:建筑設計和 大型圖紙設計.
- 64位系統對內存的使用 比32位的要大些. 但是在跑服務的時候, 可能要快些. 但是生產服務器 通常內存都是比較大的, 所以, 還是安裝64位的
- 但是32位的系統識別的內存要低些, 64位的系統則能識別 (/ 并利用??) 所有的內存空間?
- 以前沒有用過64位的, 所以 這次 嘗試 試用一次.
pae是什么?
pae: 怕餓: pa'e: 是 physic address extension: 物理地址擴展. 可以支持64位的系統, 讓 大于4GB ~ 64GB的內存都支持 4kB的頁面通常只有在 迅雷/firefox等 網絡應用程序中, 描述網絡速度的時候, 才使用 bit(位) 做計量單位, 其他關于文件/內存等 都使用的是 Byte來做單位. 如內存是 4GB...32位系統, 若打開PAE,則最多可以識別出64GB內存。但是 32位系統下的進程一次最多只能尋址4GB的空間。
64位linux則沒有32位系統的限制。因此對于內存大于4GB的機器來說,最好安裝64位系統。32位的尋址空間最多4GB,其中有些硬件黑洞(rom, framebuffer, pci, i2c 等等),操作系統能訪問到的內存可能會減少到3.5GB左右,內核要占一些內存,剩下的才是用戶級可以使用的.
在centos7 和 fedora23中的 firewall和iptalbes的關系: 參考: https://www.tuicool.com/articles/qYnuMj 和 http://ju.outofmemory.cn/entry/329480
iptables: 主要是考慮 chain(鏈, 或者說, 存在幾條 "線"). INPUT, OUTPUT FORWARD. 主要配置的是 : INPUT鏈 和 OUTPUT鏈
???? firewall是centos7里面的新的防火墻命令,它底層還是使用 iptables 對內核命令動態通信包過濾的,簡單理解就是firewall是centos7下管理iptables的新命令????openjdk采用的是GPL協議, 而SunJDK采用的是: JRL協議: javaResearch License. 包括源碼的開放/插件的使用/商標--version等上有所不同. 但是絕大多數源碼是相同的.
centos7 只有 x86_64位的系統, 默認使用的 文件(存儲)系統是: xfs: xfs是由SGI: silicon graphics inc. 美國硅圖公司, 設計出的 Xfs文件系統, 原先公司使用的是 EFS: existing filesystem. xfs為 Linux 社區提供了一種健壯的、優秀的以及功能豐富的文件系統,并且這種文件系統所具有的可伸縮性能夠滿足最苛刻的存儲需求
高級日志文件系統 : ,由于文件系統開啟了日志功能,所以你磁盤上的文件不再會意外宕機而遭到破壞了。不論目前文件系統上存儲的文件與數據有多少,文件系統都可以根據所記錄的日志在很短的時間內迅速恢復磁盤文件內容。
XFS 是一個全64-bit的文件系統,它可以支持上百萬T字節的存儲空間。
XFS使用高的表結構(B+樹),保證了文件系統可以快速搜索與快速空間分配。XFS能夠持續提供高速操作,文件系統的性能不受目錄中目錄及文件數量的限制。
CentOS/RHEL的生命周期是7到10年,基本上可以覆蓋硬件的生命周期,也就意味著一個新硬件安裝以后,不用再次安裝操作系統。
CentOS(Community Enterprise Operating System,中文意思是:社區企業操作系統)是Linux發行版之一
每個版本的 CentOS都會獲得十年的支持(通過安全更新方式)。新版本的 CentOS 大約每兩年發行一次,而每個版本的 CentOS 會定期(大概每六個月)更新一次,以便支持新的硬件。這樣,建立一個安全、低維護、穩定、高預測性、高重復性的 Linux 環境。CentOS是Community Enterprise Operating System的縮寫。
cre'dential: 憑證; 證據; 證件;
vault: 金庫/保險柜; 蒼穹, 拱頂/
除了國內的 mirrors.163.com等鏡像外, 要下載各種各樣的版本的話, 還是要到 http://vault.centos.org/7.0.1406/isos/x86_64/ : 官網下載... 地址: vault.centos.org/版本號/isos/x86_64/... 這個是centos官方的原始機器.
但是下載, 還是 跳轉到 鏡像的 http://archive.kernel.org/centos-vault/: ( In order to conserve( 節約/節省/保護: con-serve: 共同服務...) the limited bandwidth available ....)
cp命令的-i選項?
這個-i --interactive, 表示的是, 在重寫/覆蓋之前提示: prompt before overwrite! 注意, 只是在 重寫之前, 才提示, 如果在拷貝的時候, 目標目錄中,沒有 已經存在的文件, 不會發生重寫的時候, 就不會 提示!在 shell中的 所有 命令, 都支持 通配符 * ? [a-b] , 注意是 所有的命令都支持 通配符! 包括我們的 mv命令 rm命令等等, 所以
讀懂 navigation中 這個 has an associated command... do you want to automatically set it to ... ?
首先, 設置這些 導航 shortcuts 的時候, 不要 設置成 其他程序中 , 常用 的 已經 經常使用的 快捷鍵, 比如: ctrl+x, ctrl+z, ctrl+c, ctrL+w等等.
其次, 上面的這個associtated command的意思是: 設置比如 switch windows of an application 的快捷鍵是 alt+x, 那么這個alt+x指的是 窗口從左到右, 從前到后進行switch的快捷鍵, 那么相反的, 相關聯的, 窗口從右到左, 從后到前的快捷鍵呢? 通常的做法是: 就是 在 原有的快捷鍵的基礎上 , 加上一個shift.. 如這里就是 alt+shift+x...
mv命令移動文件的時候, 不會改變文件的 context! 因為它不創建新文件; 而 cp命令復制文件的時候, 會"改變復制的新文件的context, 因為這里是 創建的新文件, 所以 會使得新文件的 context 跟 源文件的 context 不一樣
通常來說, /etc下的文件,(絕大多數)的 context是: system_u: object_r: etc_t:s0
chcon的時候, 如果修改context比較麻煩, 可以參考(比到起/ 比對) 其他的某個文件 進行設置, 使用參數 --reference=RFILE: chcon --reference=bar foo...
雖然/etc的目錄權限是 : 755, 但是并不一定保證 其中的文件 owner:group全都是 : root:root, 也有可能是 其他用戶, 如foo:foo的
方法就是 : su -c '使用 mv, 不要使用cp... "
因為: 文件誰創建, 包括: touch, vi/vim, cp命令都會創建, 所有者就是誰
但是 如果是使用 mv的話, 由于 mv 不會改變文件的 屬性, 包括文件的 owner:group, 還有文件的context, 所以 : 雖然 /etc的目錄權限是 755, 其他普通用戶, 是不能 直接 使用 mv/cp等命令的, 但是 我可以使用 su -c(root身份執行 ) 'mv...命令', 那么 這時候 被移動的文件, 原來如果是foo:foo的, 那么移動mv到 /etc后, 就還是 foo:foo的.
geditor的很多設置, 其實是在 dconf-editor中的 gnome->geditor->prefernce中 進行設置的. 比如行號/ 高亮當前行, 括號匹配等等.
. 關于"設置"中的 導航navigation中的 幾個操作的區別:
switch applications: 只是在應用程序之間切換,如果是 一個應用程序有多個窗口, 也只是顯示 一個應用程序圖標; 一般是用 alt+tab
switch windows: 是在所有的窗口之間 切換, 如果是 一個應用程序有多個窗口, 則將把這些窗口全部擴展, 全部顯示出來, 可以使用 super+w, 不要是喲個 ctrl_w(ctrl_w是terminal下關閉標簽的快捷鍵)
switch windows of an application: (說的是 如果一個應用程有多個窗口的時候, 用 這個來switch), 可以設置為alt+x
重要 是: 要讀懂這句話: the command "..." has an associated shortcuts "switch to previous window..." 什么的, do you want to automatically set to ...意思是說, 這個切換命令有一個相關聯的命令, 即向前向上的 快捷鍵是什么...
...
切換終端, 切換字符界面, 使用的快捷鍵是 ctrl_alt+f1/f2/f3/f4...注意不是 alt_f2/f3.. 你想, alt+f2/f3等 是當前登陸的 終端的 快捷鍵,比如alt+f2: 是 運行命令, 相當于win中的win+R
who和whoami的區別?
who是顯示的 當前登錄 用戶;
whoami 顯示的是 當前"正在操作的" 有效 用戶名稱和id: 即 euid, euname..
It is usually good practice to create a dedicated user and group for running httpd, as with|| most system services.||
如果要更換不同的用戶或組來運行apache,你必須先以root運行,然后他將會切換到所設置用戶。跟大多數的系統服務一樣,為apache 單獨建立一 個用戶和組來運行它是一個很好的做法。(注意,此項是設置在非NetWare和非win系統下才需配置,否則無需配置)
((practice: 實踐; 也可以作: "做法, 用法" 解, dedicate: 致力于..., 專注于...; 奉獻... 獻身于..., 用法是: dedicate sb./themselves to + 名詞, to 是介詞 )): i am a doctor, dedicated myself to curing the sick, at least try to. they have been dedicating themselves to a higher purpose: 更高的目標: a higher purpose.
dedicated: 引申為 " 專門的, " create a dedicated user: 創建一個 專門的用戶,... /// 單獨去創建一個用戶...
as with..., 介詞短語作狀語: 與..一樣, 正如...一樣 , 如同.. ..
設置的 alias和 自定義函數的區別?
別名用 alias來查看;
而自定義函數 要使用set來查看.
MariaDB在 5.5版本之前, 跟mysql的版本基本一致, 但是后來版本有了較快的增長, 現在的MariaDB 10.0大致相當于MySQL 5.6版本,完全兼容mysql的api和命令行. fc23的源倉庫中安裝的MariaDB 安裝的是 : 10.0.28的版本.
Navicat: navi- 是 導航的意思: navigation : 導航貓:是mysql數據庫的 前端gui 連接工具.
locale命令?
是用來設置 本地語言的:
包括: LC_CTYPE, LANG 等. 操作方法是 : export LC_CTYPE...
永久改變locale? :
可以在 ~/.bashrc 中永久修改: 包括設置: LANG, LC_CTYPE, LC_ALL了...
locale的設置格式是: xxx_xxx.xxx , 比如: zh_CN.UTF-8, 包括: zh: 表示語言, zh中文和 en英文, CN 表示 地區, 最后的那個是 字符集, 比如: zh_CN.GB2312等等...
util=utility 功用, 效用, 工具
為什么有時候httpd需要設置ServerName?
缺省情況下,并不需要指定這個ServerName參數,服務器將自動通過 名字解析 過程來獲得自己的名字,但如果服務器的名字解析有問題(通常為反向解析不正確),或者沒有正式的DNS名字,也可以在這里指定I P地址。當ServerName設置不正確的時候,服務器不能正常啟動。
# ServerName gives the name and port that the server uses to identify itself.90 # This can often be determined automatically, but we recommend you specify91 # it explicitly to prevent problems during startup. // 建議顯式地指定服務器名稱...92 #93 # If your host doesn't have a registered DNS name, enter its IP address here.94 #95 #ServerName www.example.com:80
/boot/vmlinuz-4.2.3-... 等是linux的啟動內核文件, 其中的z表示的時 壓縮, 用bz進行壓縮的文件!
要明白一個總的原則了, 那就是 在系統中, 除了 用戶自己創建的文件外, 即 /home/foo/下的文件, 其他所有 文件, (即在系統安裝后, 就有的文件和目錄) 都是 超級用戶 root創建的! 你想吧, 在系統剛剛建立的時候, 還沒有普通用戶, 所以這個時候的機器上的東西的的都應該是root所創建的. 因此這些文件和目錄都是屬于 root:root的, 所以, 對于目錄的權限, 最多就是 755, 對于文件的權限, 最多就是 644, 可執行文件最多就是 755. 也就是說 系統中 的絕大多數目錄, (除了用戶家目錄~: /home/foo 之外), 像 /root, /boot, /usr, /bin, /sbin, /var, /etc/等所有的目錄 中(由系統原先創建的東西) 都只能 由 root來 寫!! 寫權限只能是 root的!!!
比如 像 /var, /opt 想起來是 可以隨意改變的東西, 隨意寫的目錄, 但是 同樣也只能 由root來寫 操作!
普通用戶: 不但不能 touch, vi, cp等方式來創建文件, 即使是使用 mv 命令, 也是不可以 移動到 /opt, /var這些只能由root來 執行 "寫"操作的命令!
/var/www/html中的文件的selinu屬性?
- 要用 root用戶 才能 在/var/www/html中創建文件, 因為www/html目錄也是 "系統文件夾"
- 其selinux的context是: unconfinded_u: object_r: httpd_sys_content_t: s0, 而對應的httpd進程的context是 : httpd_t:s0
- 因為/var/www/html中的文件, 允許是非root用戶創建, 然后由 root用戶 cp/mv過來的, 所以 其用戶是unconfined_u非管制用戶;
- 只要是root用戶操作的(也只有root用戶)才行, 在/var/www/html中的文件 的 context_t都是 httpd_sys_content_t.
linux中的命令真的就是 一些單詞首字母的縮寫, 如scl: software collection, 所以 我們自定義的函數,srm svi, scp, smv等就是su -c 'mv...' 等, 看來正好 跟linux的 理念是吻合的!!
要注意 在自定義 smv, scp等命令的時候, 應該有兩個參數, 所以函數中要使用到 $1, 和 $2 .
要殺死進程, 有兩種方式, 一種是根據 pid, 一種是根據 進程名稱:
根據進程pid的是: kill 命令, 可以指定殺死進程 的信號, kill -9 pid
但是有時候, 不需要知道進程的id, 或者說同一個程序名稱的 多個 進程同時運行, 需要殺死 這個程序的 所有 進程, 那么就可以使用 : killall application_name. (而不必管進程的pid), 凡是同名的進程都將被殺死.
對于筆記本/鍵盤, 要保證輸入 的高效性和正確性, 首先就是要保證 : 每次 擊鍵 的 有效性和準確性. 一定要 保證每次擊鍵 都確實是生效了的, 倒位了的, 即保證擊鍵的有效性和準確性. 其次, 因為使用拼音輸入法, 選字的時候比較多, 所以, 要看準了選對了再操作 ..., 要求就是 擊鍵時, 手指要 垂直/盡量垂直擊鍵, 斜著的時候, 有時候, 就不容易擊鍵到位...沒有按到起...
指法更嚴密, 擊鍵要有彈性, 使用靜止的力"按", 就會發生不到位的情況;
查看系統當前的負荷, 用戶數目, 正在作什么?
可以用兩個命令:
- 是uptime
- 是 w(w可以看作是 who命令的加強版). 提供更多的信息. 最后的三個數字, 表示 最近的: 1, 5, 15 秒鐘 內的平均負荷. 這三個數字, 應小于 邏輯cpu的個數, 比如應低于 4. ...
w命令的顯示項目按以下順序排列:當前時間,系統啟動到現在的時間,登錄用戶的數目,系統在最近1秒、5秒和15秒的平均負載
關于selinux的開啟和關閉, 其實是不會影響/修改httpd的, 所以, 當因為selinux的問題, 而不能訪問網頁文件的時候, 你關閉selinux, 或者重新修改文件的context后, 并不需要 重啟httpd服務, 就可以生效了, 馬上就可以看到效果了. 所以 , 有時候, 不能 只是機械的, 直接的 mv到 html目錄, 那樣的話, 因為seinux的問題, 而被限制訪問. 這時, 只要修改文件的selinux type為 : httpd_sys_content_t(注意是content , 不是復數contents)就馬上可以訪問了.
另外, 不要屏蔽, 關閉, stausbar 中 ,關于selinux的 錯誤/troubleshooting reporting 錯誤/派錯 報告. 一定要 掌握 selinux的派錯 能力.
Sundry
- 在httpd訪問時, 不一定要求 被訪問的文件一定是root的, 是普通用戶的也可以, 只要對 httpd 的運行者 apache:apache有訪問權, 是可讀的就可以了.
比如 , 這個index.html是foo的, 還是可以訪問!
- php的錯誤和異常的概念上的區別? 參考: http://www.cnblogs.com/taijun/p/4234603.html
- 錯誤是程序員自己的代碼寫錯了, 主要是由語法等問題引起的, 包括warning和notice.
異常是由業務邏輯不合預期, 與正常流程不同的情況. 比如被0除. (在語法上是完全通得過的).
php對異常的操作機制是不健全的, 絕大多數情況下, php不會自動捕獲異常, 需要程序員自己主動拋出異常, 即通過if...else的判斷去手動拋出異常, 但是這種機制沒有太大的意義, 因為如果這樣做, 說明程序元自己已經充分認識到錯誤的發生可能了.....然后自己 去catch異常:php對錯誤的處理, 是提供了 set_errro_handler( function_name); 進行錯誤托管, 而使用 restore_error_handler來取消錯誤托管.
php中錯誤和異常是兩個不同的概念,這種設計根本上導致了php的異常和錯誤與其它語言相異。j
java中,異常時錯誤唯一的報告方式。說到底,兩者的區別就是對異常的認識不同產生的。php異常絕大部分是通過某種方式手動拋出,才能捕獲到。是一種半自動化的異常處理機制。無論是錯誤還是異常,都可以使用 handler 接管系統已有的處理機制。在php中通常會在以下場景中使用異常:對程序的悲觀預測 :如果認為自己的代碼無法一一處理各種可預見的情況、不可預見的情況。程序的需要和對業務的關注 : 如果對數據的一致性要求很高時,可以用try...catch把異常造成的邏輯中斷破壞將到最小(比如金融交易程序片斷) ,并且經過補救處理后,不影響業務邏輯的完整性。語言級別的健壯性要求 : 通過精確控制運行時的流程,在程序中斷時,有預見的用try...catch縮小可能出錯的范圍,及時捕獲異常并做出相應的補救。