從新使用linux的一些事情

workstatin版基本上已經有了經常使用的那些功能了, 代碼開發徹底足夠了, 不須要再去加什麼東東了
httpd已經有了, 結構:php

  • /usr/lib: 庫,放置的是 (操做)系統的靜態庫, 大多數是直接放置的, 還有一部分按目錄分類放置的
  • /usr/lib/systemd 是: system daemon[dim2n]: ae: i, 是放置的一些 系統的守護進程
  • /usr/lib/systemd/system 是放置的 系統的 內置服務進程(即系統自帶/預先就給你安裝好了的服務), 就包括 httpd.service, httpd.service.d , socket.service socket.service.d 這些服務和目錄

系統安裝的服務是放在: /usr/lib/systemd/system中的, 好比/httpd.service, 而要開機啓動 systemctl enable httpd.service 則要將他們放到 etc(的相應目錄)下去, enable就是去建立這個symbol連接:
/etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service
而 要檢測 httpd這些服務 是不是 開機啓動, 須要用命令: ` sytemctl is-enable serviceName.service html

在用root 身份修改的/var/www/html目錄的權限爲 -rwxrwxrwx 後, 以普通用戶建立的文件, 其全部權 仍是屬於 該 普通用戶, 而不是屬於root的, 模式也是默認的 664 java


感受此次安裝後, ff特別容易卡, 假死, 因此考慮禁用一些服務和進程, 使用到兩個命令: 一個是 ps -aux 和 netstat, 查看, 殺死和禁用進程/服務: kill -9... 和 systemctl disable...node

通常狀況下能夠關閉的服務:
chkconfig --level 2345 autofs off
chkconfig --level 2345 acpid off
#chkconfig --level 2345 sendmail off
chkconfig --level 2345 cups-config-daemon off
chkconfig --level 2345 cups off
chkconfig --level 2345 xfs off
chkconfig --level 2345 lm_sensors off
chkconfig gpm off
chkconfig openibd off
chkconfig iiim off
chkconfig pcmcia off
chkconfig cpuspeed off
chkconfig nfslock off
chkconfig ip6tables off
chkconfig rpcidmapd off
chkconfig apmd off
chkconfig arptables_jf off
chkconifg microcode_ctl off
chkconfig rpcgssd off
chkconfig NetworkManager off

===============================================
關於 systemd和target: 參考: https://www.cnblogs.com/lxjshuju/p/7183689.htmlpython

pem是: privacy enhanced mail: 隱私加強的郵件
是一種協議, 是opensll和nss使用的一種加密協議, 裏面包括證書+祕鑰 (能夠在java中讀取.pem格式文件中的 PrivateKey)mysql

OpenSSL 使用 PEM 文件格式存儲證書和密鑰。PEM 實質上是 Base64 編碼的二進制內容,再加上開始和結束行,如證書文件的----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----
在這些標記外面能夠有額外的信息,如編碼內容的文字表示。文件是 ASCII 的,能夠用任何文本編輯程序打開它們。

=======================================linux


安裝的mariadb數據庫,除了名字和服務名稱是mariadb以外,其餘操做基本上仍是使用的 mysqlweb

使用MySQL -uroot -p登陸出現找不到 /var/lib/mysql/mysql.sock問題。

  • 固然首先是要 看 mysqld或 mariadb這個服務是否起來了
  • 緣由是: 用rpm安裝的,默認的socket是安裝在 /tmp/mysql.sock, 可是mysql啓動的時候, 是要到/var/lib/mysql目錄下去找 mysql.sock這個套接字的。
    因此: 能夠用以下命令登陸:mysql -p --socket=/tmp/mysql.sock 或者 爲mysql.sock增長軟鏈接 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
    SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

kill killall pkill 的區別
用kill來殺死某一個進程, kill,加選項-9,加PID,表示殺死進程編號爲PID的這個進程
用 killall 殺死一類進程,即某個服務的全部進程
killall,加選項-9,加服務名, 表示殺死該服務的全部進程 (至關於殺死進程樹) [root@localhost ~]# killall -9 httpd
用pkill踢出某個終端:
pkill,加選項-9,加終端號,表示踢出該終端 [root@localhost ~]# pkill -9 pts/0sql

實際上,如今的登陸終端,都是虛擬終端了:即pt: pts/0: pseudo terminals /0: (其中,pts是複數形式的) 數據庫

mysql和mysqld的區別?

  • mysql -- mysql is a command-line client for executing SQL statements interactively or in batch mode.

  • mysqld -- mysqld is the MySQL server.

daemon: ae===ea i:

==================

關於軟硬連接?
= 硬連接是對同一個 inode的文件在不一樣的地方建立連接. 文件名能夠不一樣, 可是文件內容是同樣的, 由於kernel是經過 inode 來讀取文件內容的, 而不是經過文件名來讀取的. 硬連接是使用的 "連接計數" 來管理的, 刪除一個硬連接, 只是使連接計數減1, 只有當文件的連接計數等於0, 纔會真的刪除該文件
= 硬連接不能針對目錄, 不能跨 分區(不能跨文件系統) 好比: ln /home/foo /opt/foo-hardlnk 因爲/home是/dev/sda2分區中的, 而 /opt?foo-hardlnk是 /dev/sda4分區中的, 跨分區不能建立硬連接, 因此會提示: invalid cross-device link.
= 不論是硬連接仍是 軟連接 , 都 不會另外建立一份 文件的 副本, 不會複製. 當copy 複製的時候 那個不叫連接, 那是兩個徹底不相關的文件.

fedora高版本都只提供了 64位的系統,雖然ff57後只提供了 quantum, 只容許 webextensions的架構擴展, 之前的擴展不少不能使用了, 可是能夠保持使用低版本的ff好比ff 50.0的版本

還好的是, 使用低版本的fedora, 其對應低版本的、原始的軟件倉庫仍是保持可用的,在everything中,還能保持一些軟件、組件的更新


通常在函數中使用 下劃線, 如get_attr(), 而如下劃線開頭的函數 通常是 系統內部的函數,如 __construct等等, 而應用程序中使用 的函數則在中間用下劃線, 命令中通常使用橫線
命令的選項使用橫線的是 Sys V 風格 而不使用橫線的是BSD 的風格
單個橫線後面的選項用 字符, 而兩個橫線後面的選項用 單詞,好比:

不能安裝 vim? 是由於conflict? 是vi的版本太低形成的,解決方法是更新vi:

Downloading Packages:
[SKIPPED] vim-enhanced-7.4.1868-1.fc23.i686.rpm: Already downloaded                                                                                  
[SKIPPED] gpm-libs-1.20.7-7.fc23.i686.rpm: Already downloaded                                                                                        
[SKIPPED] vim-common-7.4.1868-1.fc23.i686.rpm: Already downloaded                                                                                    
[SKIPPED] vim-filesystem-7.4.1868-1.fc23.i686.rpm: Already downloaded                                                                                
[SKIPPED] perl-libs-5.22.2-355.fc23.i686.rpm: Already downloaded                                                                                     
[SKIPPED] perl-5.22.2-355.fc23.i686.rpm: Already downloaded

先前dnf安裝軟件出錯的時候, 下載下來的包packages 並不會被刪除, 而是保持在dnf的 cache(緩存中), 因此, dnf clean cache(清除緩存, 就是 刪除dnf先前下載來的 安裝包)
因此再次安裝的時候, 這些已經下載的包就會被 skipped. 由於已經被下載: already downloaded.

可是要注意, 一旦 進行了其餘dnf的操做, 並且成功了的話, 原來的緩存(的packages) 將被 刪除, 或者說被覆蓋, 從而換成了新的緩存, 而要安裝以前的包的話, 又得從新下載.

2:7.4.1868-1.fc23 
Running transaction
  Upgrading   : vim-minimal-2:7.4.1868-1.fc23.i686                                                                                                1/2 
  Cleanup     : vim-minimal-2:7.4.827-1.fc23.i686                                                                                                 2/2 
  Verifying   : vim-minimal-2:7.4.1868-1.fc23.i686

/etc/vimrc其中的bs 是: backspace "退格刪除鍵"的縮寫: https://blog.csdn.net/u013595419/article/details/50443530

參考: bashrc和 profile的區別 ?
https://blog.csdn.net/linuxnews/article/details/52579186

目錄的硬連接是 包含的子目錄數+2, 這個2是指(.和..) 由於 .點號是指這個目錄自己, 而.. 是指它包含的子目錄 的父目錄將指向它, 因此即便目錄爲空, 他的硬連接數也是2, 可是包含的普通文件 數目不會 加在 這個 硬連接數目上.

  • 建立硬連接的目的, 是 爲了 給 重要文件備份, 防止重要文件丟失.
  • 通常系統的配置 放在 /etc下, 而用戶級 的配置 放在 ~ 目錄下, 並且 以點文件命名, 好比 .vim, .virc, .vimrc, .bashrc, .bash_profile等

vim第一配置和第二配置好像要放在一塊兒才能生效? 若是將vimrc的常規配置 和 第二配置的 vundle配置 分開寫, 好像 vundle配置的插件就不能使用了?

[lee@localhost .vim]$ mv ~/.vim/vimrc ~/.vim/vimrc-這裏的配置好像要跟家目錄中的.vimrc合併纔有效

=================

什麼是 s類型的文件? 要注意和 setuid特權相區別, s文件類型的s符號是在 第一個符號, 特權的s是在 r, w的後面,是在 原來的x位置上.

ll /var/lib/mysql/mysql.sock 看到的屬性是:
srwxrwxrwx 1 mysql mysql 0 11-21 14:39 /var/lib/mysql/mysql.sock
檔案類型標誌是s, 這個是資料接口檔, 是套接字文件(sockets),這種文件通常用在網絡上的資料套接,mysqld守護進程生成了這個文件,其餘與mysql相關的程序想使用mysql服務器,估計就是經過這個文件了。 這種特殊文件即便是最高權限的root用戶,也是不能查看不能編輯的,有點像檔案標誌是p的管道文件。

lpk.dll是什麼文件?
自己是在 c:\windows\system32\下的dll文件, 不少應用程序都須要應用它, 因此是一種常見的病毒文件, 主要是感染 包含有 exe可執行文件的目錄, 在這個目錄下生成這個目錄的快捷方式

  • 在windows下的病毒, 一般不能在linux下運行, 由於這些病毒須要 windows下的函數/頭文件/接口/動態庫等等運行環境, 而linux下是沒有這些接口interface和動態庫的,因此是不能運行的,不能對linux形成損害.相反, 在linux下能夠查看/刪除這些win下的病毒.

三種時間atime, mtime, ctime如何區別?
查看 ls --help的幫助文檔, 能夠很清楚 : ls 默認顯示的時間 是 modifying time 修改時間.
--time=atime/access/use(或者直接使用 -u參數)表示 顯示 文件的 訪問時間.
--time=ctime/status(或直接使用-c)表示的是 顯示文件的 改變時間(主要是狀態/屬性的改變) : 好比用 chmod, chown等命令 就會 改變 ctime.

-time=atime是指最後 "訪問"的時間, 是指 確實 讀取 了文件內容的. 包括: cat命令, 可是像: vi , head, tail, stat 可是 用 vi 若是沒有修改文件, 則atime和ctime 和mtim等都不會變化, 可是 若是用vi修改了文件的內容, 則 atime, ctim, mtime等 都將發生改變.

ls 能夠排序, 用 --sort=none, time, size, extension, version (或者用簡寫), 要注意 ls的排序都是 倒序: 即 largest first, newest first./...

[lee@localhost ~]$ ls --sort=atime
ls: invalid argument ‘atime’ for ‘--sort’
Valid arguments are:
  - ‘none’
  - ‘time’
  - ‘size’
  - ‘extension’
  - ‘version’

用 stat命令, 能夠 很是清楚的 看到 文件的 三個 時間 和 各類 狀態!

============================

it was quite a lucrative sideline:
sideline: 兼職, 業餘, lucrative: 收益大的, 有錢賺的

sign: [sain] resign: [ri'sain'] 辭職, resignation [rezig'neis2n] 是名詞, resignation letter 是 辭職信.
he was under pressure to resign and was about to be sidelined
it now seems only a matter of time before they resign.

bad password : 並非 錯誤密碼, 他是指 密碼的 "質量不高", 可是在命令行 仍是 能夠設置和接受的.

authentication & authorization的區別?

  • authentication是認證的意思, 表示 "某人確實是某人"的意思, 好比登機的 張三的 passport護照, 證實你確實是張三;
    又好比: 在 su -c '....' 執行某個命令的時候, 須要root 權限, 就要證實你確實是 root 用戶, 輸入密碼, 那麼這個也是 authentication.
  • authorize是受權, 是指某個用戶 具備那些權力, 好比登機時你的機票 就讓你 有 登機的 authorize了

修改密碼成功後, 會提示: all authentication tokens updated successfully. 認證令牌/認證牌牌.

  • 用戶的真實權限實際上是由 uid來決定的: uid=0就是 root權限; uid=1~499 就是 僞用戶(是bin/halt, daemon, apache, mail等用戶, 這些是用來 管理啓動系統和進程/服務等的僞用戶, 僞用戶是不能/不須要登錄系統的, 是沒有宿主目錄的)

systmctl list-units的內容有哪些?

  • 映射點 *.mount, 包括 -.mount 這個是 掛載 根目錄/, home.mount 是掛載 /home目錄的.
  • 服務service, 目標target, 設備device等等.
  • 這個命令,就至關於 win 的 服務控制檯: services.msc

給命令文件增長 set_uid屬性?

  • setuid是一種unix函數, set_uid是一種屬性, 就是 將命令的 "全部者執行位x"權限, 變成 "s"權限.
  • 因此 set_uid屬性的設置就是 使用 chmod u+s /usr/bin/some_command 當 文件的屬性被 設置成 set_uid後, 文件名 就變成 "紅底白字"
  • 三個id: 命令文件的全部者的uid, 啓動這個命令的用戶的id, 這個叫 真實的用戶id : ruid , 這個命令運行時的有效用戶id: euid
  • 而linux內核 決定某個進程的權限時, 是以這個進程的 有效用戶id 來決定的, 因此, 若是具備 set_uid屬性的命令以普通用戶運行時, 它將具備 這個命令的全部者 具備的權限(就是 以命令的全部者的身份 來運行的)
  • 可是要注意, set_uid的權限 只是 影響 建立文件的全部者, 並不影響 被建立文件的 所屬組.

如何禁用 linux上的沒必要要的服務

bluetooth服務?

[lee@localhost ~]$ su -c 'systemctl disable bluetooth.service'
Password: 
Removed symlink /etc/systemd/system/bluetooth.target.wants/bluetooth.service.
Removed symlink /etc/systemd/system/dbus-org.bluez.service.
[lee@localhost ~]$

crond: 是linux的 調用計劃任務 的daemon, 它經過 crontab 來實現. 系統會自動安裝 crond服務, 並且 會 "每隔 1分鐘" 就會去檢查 是否有任務計劃要執行, 這個 真的很傷資源的, 因此必須禁用這個服務!

[root@localhost lee]# systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.
[root@localhost lee]#

cups服務是 打印服務

[lee@localhost ~]$ systemctl disable cups.service
Removed symlink /etc/systemd/system/printer.target.wants/cups.service.
Removed symlink /etc/systemd/system/sockets.target.wants/cups.socket.
Removed symlink /etc/systemd/system/multi-user.target.wants/cups.path.
[lee@localhost ~]$

atd服務是 定時任務的服務

[root@localhost lee]# systemctl disable atd
Removed symlink /etc/systemd/system/multi-user.target.wants/atd.service.
[root@localhost lee]#

libvirtd.service loaded active running Virtualization daemon 這個是 提供 虛擬化技術的daemon

[root@localhost lee]# systemctl disable libvirtd
Removed symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service.
[root@localhost lee]#

ModemManager.service loaded active running Modem Manager modem調制解調器的daemon

[root@localhost lee]# systemctl disable ModemManager
Removed symlink /etc/systemd/system/dbus-org.freedesktop.ModemManager1.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/ModemManager.service.
[root@localhost lee]#

nfs-config.service loaded active exited Preprocess NFS configuration
[root@localhost lee]# systemctl disable nfs-config.service
[root@localhost lee]#

=========================================

df和du : df: disk free(查看磁盤剩餘空間), du(disk usage[ju:sid3]) 是查看文件//目錄的佔用空間.

df是查看磁盤空間使用狀況, 看全部 已掛載/mount的 文件系統 還有多少空間可使用? df -h主要是用來查看 大文件的; df -i是以inode(index node索引結點)的角度來看的(主要是看 過多的 小文件) . 這二者 都 不能 使用 過多. 都不能 佔用百分比過大
du disk usage
: df 能夠看到 被刪除的文件可是尚未被釋放的空間, 因此 有時候df和du的結果有出入
: inode 的總數, 是 在 分割磁盤扇區的時候, 就分配了的大量的 inode. 這些inode就等着從此分配給文件/目錄供掛載使用. 使用 一樣的磁盤空間, 若是小文件越多, 就須要越多的 inode 來掛載.

top 也是用來 查看進程的, test of process進程查看/進程檢查. 至關於 win的進程管理器

同時也能夠看到 linux的命令 都是 簡單的單詞, 或者單詞縮寫, 能夠 跟 win下的相關對應命令相比較.

注意表單中 使用 col-sm-...跟純粹 使用柵格系統中使用 col-sm-xxx的區別?

柵格系統中使用 col-sm 要 用 div.container > div.row > 才能 使用 col--
而 表單中 使用 col-sm-xx 則不須要這樣 完整的 結構了:
能夠認爲:

  • form 就是 .container
  • 而 其中的 .control-group 就至關於 .row
  • 因此 form表單中使用 的時候, 就再也不須要.container 和 .row 了. 按照表單中的 結構 寫就行了

==================================

對一些有強大生態系統的現代語言. 好比php, python等, 裏面的不少軟件都再也不是孤立的了, 而是作成庫, 作成dll/so/連接庫等, 進行相互借鑑/引用, 而不重複開發相同單元.

爲了便於管理這些單元 , 解決各個軟件/單元之間的相互包含/引用/依賴關係, 都開發了各類"包管理工具", 好比: linux的yum/dnf, php的包管理工具composer, python的包管理工具: pip 只須要在項目中, 寫上你須要的包/庫名稱, 其餘 依賴單元的 查找, 下載, 安裝/卸載等工做, 就所有由 包管理工具去負責.

  • 安裝好包管理工具後, 再安裝其餘相關的包/庫, 就直接用包管理工具來 安裝了, 好比; pip install foo-pakg, pip search foo-pkg , composer install bar-pkg等等.
相關文章
相關標籤/搜索