linux知識

///./linux基本的命令
====================
查看防火牆是否開啓php

service iptables status html

查看ssh狀態
service sshd statusnode

開啓SSH服務
service sshd startpython

中止SSH服務/
service sshd stopmysql

檢測開啓ssh
chkconfig sshd onlinux

啓用網卡
ifconfig eth0 upweb

目錄切換:
cd change directory正則表達式

ls:命令用法
0、ls -h(人性化的設置) -l(所有的名稱) -a(全部的內容) -i(身份號)算法

建立目錄:
一、mkdir -p 這個選項呢 能在一個不存在的目錄下面 建立一個目錄sql

h刪除空目錄:
rmdir 例:rmdir /tmp/one

複製的命令:
一、cp (copy)
a、複製文件(若是複製文件不要加選項) cp /tmp/one.txt /root
b、若是複製目錄則要加選項 -r cp -r /tmp/test /root

二、copy -p (primary) 表示保持原來的屬性。如建立的時間 ,更改的時間

三、複製的時候也能對於這個文件進行重命名:如 cp -r /tmp/name /root/a

剪切,改命
mv(move) 說明:對於目錄與文件均可以執行

對於文件進行改名也是用這個命令
例:mv /tmp/one /root/two 這個意思是將one剪切到root下面且名稱改成two

刪除:rm
刪除文件:rm /tmp/one
刪除目錄:rm -r /tmp/two 表示刪除一個目錄 可是這個刪除會有確認的操做
強制刪除: rm -rf /tmp/one
文件處理
cat 打開一個文件 (若是內容過多的話則不能所有的預覽 這個是打開文件用的並不能打開目錄)
cat -n /tmp/one.list(這個表示查看一個文件 且這個文件有行號)
more 打開多個內容 (空格表示下一頁 回車表示下一行 ,可是不能向上預覽)
less 打開多行的內容 (pgup gpdn可以上下翻頁 可以搜索 直接加「/」 爲搜索的內空, 按「n」 鍵爲尋打下一個)
head 查看一個內容的前幾行 head -n(number) 7 /ect/sysconfig 若是不加選項的話 則默認的是看頭10行
tail 查看一個文件的後幾行 -n 選定行數
-f 動態的顯示頁面的內容

連接學習

ln
查看文件的內容
- 表示的是一個文件 (二進制的包)
d 表示是一個目錄
l 表示的是一個連接

有兩種的連接:
軟連接
ln -s /
權限都是Rwx (可是這個權限不是這個文件真正的運行的權限,由原來的文件進行判斷)
所佔空間不多 都是幾個字節

硬連接
特色:
一、能實時的更新數據
二、對於原來的文件進行備份
三、不能跨分區
四、不能對於目錄進行建立硬連接

在linux系統中對於一個文件進行操做其實就對找到這個I節點號進行操做
若是節點號是同樣的話 則必然會產生同步的效果

一個文件必定有一個I節點號
可是一個I節點號不必定對應一個文件 (硬連接就是這樣的一個特色)

權限管理命令:
一、哪些的人能更改權限呢 a、root b、這個文件的全部者
二、權限的更改 chmod
三、chmod -R 表示對於這個目錄以及這個目錄下面的 全部的文件或者是目錄都是同樣的權限
u g o (+-=)
若是同時給多個更改的話 則要用「,」 來更改
例: chmod g+w name 這個表示是所屬的組
rwx(讀 寫 執行)
421
750
rwxr-x---
632

目錄:
r:ls
w:mkdir touch rmdir rm cp mv vim
x:cd
文件:
r:cat more less head tail
W:vim
x:scirpt command

更改一個文件全部者
重點:若是一個普通的用戶登陸到系統 ,默認的目錄就是其家目錄/home/wangzhilei
用戶的切換與用戶的從新的登陸,則其實默認登陸的目錄是不一樣的

chown
一、在linux中只有root用戶能改變這個文件或者是目錄的全部者
chgrp
一、目錄缺省的權限 -rwxr-xr-x 755 目錄的話在新建的時候 只有建立者有寫的權限
二、文件缺省的權限 -rw-r----- 644 而一個文件在建立的時候 ,任何的用戶或者是組都沒有執行的權限

一、默認的目錄是沒有寫的權限(除了全部者)

二、默認的文件是都沒有執行的權限(全部者有寫的權限)

umask:(權限的掩碼)
表明目錄入文件缺省的權限的值。默認是022,而這個真實的權限的值爲755
咱們能經過 -S(大S) 來查看
三、改變缺省的權限的值是 umask 033 則這個說明目錄及文件的缺省的權限的值爲744及drwxr--r--


linux搜索命令:

按名稱來查找

1.find 目錄 條件 查找的內容 如:find /ect -name init (這個是精確的查找)
2.find /ect -name *init* 實/現模糊查詢 在php中用的是%%
3.find /etc -name init* 表示以init開頭的文件
4.find /etc -name init??? 表示查找一個文件以init開頭 後面是三個字母結尾
5.?通配的是一個字符
6. -iname 不區分大小寫
數據塊: 在linux系統中最小的單位是數據塊就是512bit 0.5K
100m
102400
201800
按容量來查找
find / -size +(大於) -(小於) =(等於,不多用) 204800/2/1024
按全部者來查找
find /home -user wangzhilei
按全部組來查找
find /home -group wangzhilei
按時間屬性來查找
find /ect -amin -5(這個表示5分鐘內被訪問的文件)
-amin (access) 被查看的時間
-cmin(change) 屬性被修改的時間
-mmin(modify) 內容被修改的時間

-type 類型 f:文件 d:目錄 l:軟連接

鏈接符:-a(and) -o (or) -inum (根據I節點來查找)
若是想對查找到的內容進行操做的話 能夠加一個固定的格式
例:find /tmp -type d -exec/ok rm -r {} \;

exec 直接執行後面的操做的命令
ok 這個有確認的操做

也能夠用which來查找(這個主要來搜索命令)

whereis 也是搜索命令

grep:這個是對於文件中的內容進行查找

grep -v ^# (reverse) ^表示以什麼開頭 $表示以什麼結尾

grep -i multiuser /ect/inittab

更加快速的搜索命令:

locate -i (這樣就能不區分大小寫)

注意:
一、全部的的建立的目錄和文件都會放在/var/lib/mlocate/mlocate.db
二、若是新添加一文件或者是目錄的話 則要用 updatedb 來更新下這個數據庫
三、在/tmp下面的臨時的目錄中的目錄和文件不會放在/var/lib/mlocate/mlocate.db

i(insensitive) 遲鈍的

幫助命令:

man (manual)手工

man 命令
man 配置文件(不須要加絕對的路徑)

.5.gz (man5) 通常是配置文件的幫助
.1.gz (man1) 通常是命令的幫助

若是一個單詞對應兩個文件一個是配置的文件 一個是命令的文件 則優先選擇的是命令,若是想選擇配置文件的話 則要加5
例: man 5 passwd (這個是說查看passwd的配置的文件)

一個單詞,若是你發現它便是命令 也是配置文件話話 則在用(man) 查看的時候 則要說明想要助的內容,加5

方便查看命令幫助

whatis +命令

文件查看配置文件幫助

apropos + 配置文件

命令 --help 這個功能與man 差很少,只不過顯示的信息比man 少點 都是顯示經常使用的內容
help cd/umask 這樣的shell腳本內置的命令。

shell 命令的解釋器


端口:
ftp:20
telnet 23
mysql 3306
http 80
ssh 22
smtp:25
pop3:110
ntp :123
傳輸協議:
ftp
ssl
tcp
UDP

用戶管理的命令:

一、建立用戶: useradd
二、建立用戶的密碼: passwd 注意:root用戶能將全部的用戶重置密碼,普通的用戶只能給本身改變密碼
三、查看當前的用戶的狀況who
兩種的狀況:
tty 表示本地登陸
pts 表示終端登陸 (也就是遠程登陸)
四、w
a、時間指的是當前的時間
b、時間後面的值 表示已經運行這個系統多長的時間
c、4users表示當前有幾個用戶在登陸
d、load average 表示平均負載
e、login@ 表示 登陸的時間
f、IDLE 表示空閒的時間 idle(空閒的意思)
g、JCPU 表示總佔用的CPU的值
h、PCPU 表示當前的操做佔用的cpu的值
i、後面的命令表示當前的用戶在執行的命令


gz
壓縮gzip
解壓縮gunzip

經常使用的英文:compress(壓縮) expand(擴漲) ignored (忽略)
一、.gz .zip是linux中 常見的壓縮的格式
二、gzip (grow)
三、gunzip 表示解壓縮
兩個特色:
一、只能壓縮文件 並不能壓縮目錄(也就是文件夾)
二、若是壓縮一個文件的話 則原文件則不存在

tar f 這個參數必須是在最後面
tar -cvf c(create) v(verbose) 冗長的 表示信息多的意思 f(file) z這個表示在打包的同時也執行壓縮的操做
tar -cf 生成後名稱 + 要打包的文件名 (這個能夠目錄)
tar -zcf (打包的同時也壓縮後綴名爲.tar.gz) -zxf tar -xzf one.tar.gz
tar -zxf x表示解壓
zip

zip -r 目錄的名稱
unzip 表示解壓縮

bz2
gzip
bzip2 要執行壓縮的文件

二者都不能對於目錄進行壓縮,只能對於文件進行壓縮 ,可是bz2格式的壓縮的效果會更好
-k是 bzip2與bunzip2中保留原來的文件與壓縮包的一個選項
若是想保留原來的文件的話 則要加一個選項 -k (keep 保留的意思)
bunzip2 one.bz2


tar中
tar -jcf one.tar.bz2
tar -jxf one.tar.bz2

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

「|」 管道符:
功能:
1.左面的輸出做爲右面的輸入或者是它的操做的對象
cat /etc/passwd | grep /bin/bash |wc -l

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

網絡命令:注:這些的命令全部的用戶都能執行 /bin 並不在 /sbin

write (ctrl+D) write + 用戶名 (這個用戶必須在線才行)
wall 發送給全部的用戶 直接加要信息的內容
mail (接收郵件) ctrl+d鍵來保存發送
last 查看全部用登陸過的用戶和重戶的信息
lastlog 查看用戶最後一次登陸的時間 等信息 能查到全部的用戶的登陸狀況
lastlog -u wangzhilei 查找wangzhiei用戶最後一次的登陸的狀況(登陸的信息)
ping ICMP是(Internet Control Message Protocol)Internet控制報文協議
ping -c 表明要ping的次數
ifconfig
traceroute
netstat 查詢網絡的狀態
-tlun 對於當前的端口進行監聽
-an (all number ) 不只能查到網絡的動態 全部的成員
-rn route number 查看路由節點
-t TCP tcp
-u UDP udp
-l 監聽 listen
-r 路由 route
-n 顯示IP地址和端口號 number
-p 進程號 progress

mount掛載 sr0默認的是光驅
第一步:在mnt的目錄下面建立一個目錄如cdrom
mkdir /mnt/cdrom
第二步:執行掛載的命令
mount /dev/sr0 /mnt/cdrom
卸載:
umount /dev/sr0

/dev/sr0

/dev/cdrom 這兩個是同樣的 ,由於cdrom 是sr0的軟連接

對於U盤的掛載
1.fdisk -l 查看這個U盤的設備的名稱
2.mkdir /mnt/usb
3.mount -t vfat(32位) /dev/sab1 /mnt/usr


關機命令:
shutdonw -h now
shutdown -r now
shutdonw -c (cancel)

系統的運行的級別

0 關機
1 單用戶 相似於window系統中安全模式
2 不徹底多用戶 不包含NFS
3 徹底多用戶 (直接的命令行)
4 未分配
5 圖形界面
6 重啓

查看運行的級別 runlevel
vim操做(這個已經學會)

rpm的安裝:
一、在安裝的時候 要全名,且要注意路徑
二、已經安裝好的話 ,搜索的時候 /var/lib/rpm

rpm -ivh
-i install 安裝
-v verbose 顯示詳細的信息
-h hash 顯示進度
--nodeps 不檢測依賴

升級
rpm -Uvh (upgrade)
卸載
rpm -e (earse)
查詢
rpm
查詢已經裝過的rpm包
rpm -q httpd
查看全部的安裝過的rpm包
rpm -qa query all
查看安裝的列表和應該安裝的列表(未安裝的)
rpm -ql(p) query list
查詢一個安裝過的rpm包詳細信息
rpm -qi(p) query information
查詢一個文件在哪一個rpm中
rpm -qf query file
用grep查詢全部安裝過的rpm中全部的包含httpd的文件包
rpm -qa | grep httpd
查詢一個包的依賴文件
rpm -qR (p)
rpm包校驗
rpm -V httpd (verify)
文件的提取與覆蓋
rpm2cpio /mnt/cdrom/Packages/ | cpio -idv ./bin/ls (目前這個問題尚未完全解決)


查詢RPM庫
www.rpmfind.net
yum
安裝
yum -y install httpd -y(yes) 過程就不要確認的操做
更新
ymp -y update httpd
刪除
yum -y remove httpd
查看列表全部的可用的包列表
yum list
查看組列表
yum search
安裝組
查看服務器上全部的和關鍵字相關的包
yum groupinstall test(test爲組別)
刪除組
yum groupremove test
命令補全的方法
yum -y install coreutils
配置DNS
vi /etc/resovl.conf
接下來研究的問題
1.ping www.baidu.com 不通 (這個已經解決)
2.yum包的安裝
ymp在線安裝 (這個是默認的安裝) /etc/yum.repos.d 鏡像地址
mirrorlist
url
容器名稱
name[base]
開啓在線的安裝的方式
enable=1 ;
校驗內容
gpgchechk=1
注意:安裝的文件都是以repo的名稱結尾的 yum光盤安裝

 

1.掛載光盤
mount /dev/cdrom /mnt/cdrom

2.將不用的安裝文件更更名稱

mv CentOS-

3.配置 CentOS-Media.repo

a.baseurl=file:///mnt/cdrom/

b.註釋相關的內容
#file:///media/cdrom/ #file:///media/cdrecorder/
4.c.enabled=1 更改爲1 則說明yum第一選擇光盤鏡像來安裝

1、源碼包與RPM包的區別

經過服務來啓動

服務的文件位置

1./etc/rc.d/init.d/httpd start/stop /restart

2.service httpd stop /restart /stop

3.二者是相同的,緣由爲:service 這個命令會主動的從rpm安裝文件中搜索這些服務

服務啓動要點:必定要是用絕對路徑來啓動

2.源碼包的安裝的過程

1.安裝的位置
/usr/local/軟件名稱

2.只能經過絕對路徑來啓動服務

RPM包安裝的位置
/etc/ 配置文件安裝的目錄
/usr/bin/ 可執行的命令安裝的目錄
/usr/lib/ 程序所使用的函數庫保存的位置
/usr/share/doc 基本的軟件的說明的文件
/usr/share/man 幫助文件保存的位置

 


源碼包的安裝
一、地址http://mirror.bit.edu.cn
二、上傳源碼包winscp這個軟件
三、解壓
四、查看這個源碼多大
du -sh

./configure --prefix =/usr/local/apache2
make
make install
/usr/local/apache2/bin/apachetul start


用rpm包與源碼包的狀況

rmp => 對內
源碼=> 對外

宿遷DNS 61.177.7.1 221.228.255.1

 

1. 下載相應的源碼包
2. 進行解壓縮
三、運行./configure --prefix=/usr/local/apache2
若是編譯出錯的話 也能夠清空編譯致使的臨時的文件 make clean
4.make
5.make install

 

腳本安裝包--主要用於硬件的驅動

下載地址
https://sourceforge.net/projects/webadmin/files/webmin/
安裝的步驟:
1.解壓縮
2.進行這個目錄
3.執行./setup.sh
4.一路的回車

1.遠程工具
putty scurecrt

 

用戶管理

1./etc/passwd
root:x:0:0:root:/root:/bin/bash
組名:密碼:UID:GID:說明信息(別名的關係) :家目錄 :shell腳本:登陸以後的shell

查看組ID UID
id wangzhilei
uid=500(wangzhilei) gid=500(wangzhilei) groups=500(wangzhilei)

shell:
linux的命令解釋器
標準shell /bin/bash
/sbin/nologin

超級用戶:
UID=0 若是將一普通的用戶改爲超級的用戶就改這個UID 改成0 便可
僞用戶UID=1-49九、 系統自帶的,不容許登陸
普通的用戶UID=500-65535

1.初始組
一個用戶在建立的時候就有一個組,且這個組的名稱和這個用戶名同樣
2.附加組
能夠給這個用戶加到另外的組中,則這個附加的組就是這個用戶的附加的組

2./etc/shadow
bin:*:15513:0:99999:7:::

一、一行一用戶
二、編譯後的密碼
只要這個密碼前加!或者是*號都是僞用戶的密碼,換句話說 這個用戶是不能登陸的
三、密碼的建立的時間
這個時間是一個時間戳如16666 就是在1970年後的第16666天

4. 兩次密碼的修改的間隔如10就要達到10天后才能更改密碼
五、密碼的有效期 這個是天數 並非時間戳
六、密碼的過時提醒的時間 若有效期是90 而該值爲7 則說明在第83天的時候 會定時的提醒
七、更改密碼的緩解的時間 如5 則說明 在90天后 你能夠延時5天修改
若是值爲0的話 則說明到期就中止用戶
若是是-1或者是其它的負數的話 則說明這個永遠不會失效

八、賬號的失效的時間 ,無論你設置的有效期是多久 到這個時間就必定失效。(這個不能寫年月日 要寫時間戳)
九、保留


也就是說它的建立的時間 和 賬號失效的時間是同樣的都是用的是時間戳


時間換算:
時間戳:格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至如今的總毫秒數
換算:
時間戳->日期
date -d "1970-01-01 16666 days"

日期->時間戳:

echo $(($(date --date="2016/04/03" +%s)/86400+1))

EDT:Eastern Daylight Time 美國東部的夏季的時間
密碼的三個原則
一、複雜性
二、易記性
三、時效性


僞用戶是不容許登陸到系統。

將一個用戶改爲僞用戶的方式

1./etc/passwd 最後一個內容 shell 改爲/sbin/nologin
2./etc/shadown 在密碼的前加上!或者是*號就能夠禁止這個用戶登陸


用戶配置文件
/etc/passwd
/etc/shadow
SHA512散列加密的算法Secure Hash Algorithm(算法)

 

/etc/gshadown
/etc/group

用戶管理相關的文件

1.家目錄
/root 權限是550
/home 權限是700

2.郵箱存儲的位置
/var/spool/mail/

3.模板文件
/etc/skel (skel骨架)

用戶的管理的命令
===============================
1.添加用戶
usradd
選項:
-u uid
-d directory
-c command 說明
-g group
-G 附加組
-s shell
查看用戶信息的配置的文件的位置

/etc/passwd
/etc/shadow

添加用戶的缺省的設置項
/etc/default/useradd

inactive = -1 密碼的寬限的時間
expired 密碼的失效的時間 /etc/shadow 中的第八個字段
shell=/bin/bash
skel =/etc/skel
create_mail_spool =yes 是否建立郵箱

/etc/login.defs

密碼的有效期
pass_max_days 99999

修改密碼的時間 (隔多久能修改密碼)
pass_min_days 0

密碼的最小的長度
pass_min_len 5

密碼的到期的警告時間
pass_warn_age 7

最小的UID
uid_min

最大的UID
uid_max 60000

encrype_method SHA512
pass_min_days pass_warn_age 7 inactive 5 expire 寬限的時間


組文件
============================
/etc/group
root:x:0:yinchao
組名:組的密碼位,組ID號;附加的用戶名

組的ID號爲0 則說明這個組是root組

/etc/gshadow

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

passwd

1.普通的更改本身的密碼不須要加用戶名 直接passwd 且這個密碼要符合複雜性的原則
2.選項:
-S(大寫)status 查看這用戶的狀態密碼的狀態
wangzhilei PS 2016-03-27 0 99999 7 -1(賬號不失效) (Password set, SHA512 crypt.)
-l (lock) 鎖定用戶 不能登陸
-U (unlock) 解鎖用戶
echo '123' |passwd --stdin one

用戶與用戶組的管理命令

1.修改已經存在的用戶的信息
usermod(modify) -d -g -G -c -u -L -U 也能臨時的鎖定用戶 可是會在密碼前加一個「!」

修改用戶的密碼
chage

-l 查看用戶的密碼的詳細的信息 passwd -S
-d 修改密碼的更新的時間
-m 兩次的密碼的修改的間隔的時間 pass_min_days
-M 密碼的有效期 pass_max_days
-W 過時前告警的天數 pass_warn_ages
-I 密碼過時後寬限的天數 /etc/default/useradd inactive
-E 賬號失效的天數 /etc/default/useradd Expe

[重點]
若是最後一次的密碼的更新的時間爲0 則系統會自動在你登陸的時候設置密碼
chage -d 0 wangzhilei


-S選項彙總
1.umask -S 查看文件目錄的缺省的權限
2.passwd -S 查看用戶的狀態


-R選項彙總

rm -qR 查看rpm的 rely

chmod -R 改變目錄及目錄下面全部文件的權限

cp -r
rm -r

cp -p 複製屬性
mkdir -p 遞歸建立目錄

刪除用戶
userdel -r wangzhilei

查看用戶ID
id wangzhilei

用戶切換
su - wangzhilei (-號不能少) 中間的空格不能少
su - root -c "useradd wangzhilei";

查看當前的環境變量

env

=================
添加組
groupadd

修改組
groupmod -n(name) 新組名 老組名

刪除組:
groupdel 組名
注意:要刪除這個組 則要作到這個組中沒有初始的用戶存在
gpasswd 添加附加用戶到組中
gpasswd -a (access) 用戶 組
gpasswd -d (delete) 用戶 組

=========================
時間戳:
time();
maketime('時:分:秒 月:日 :年');
strtotime('2016-05-06');


密碼的問題

1.不能少於8位


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

 

用戶登陸的問題
在linux系統中只有種用戶不能登陸到系統中====>僞用戶

shell不一樣 => /sbin/nologin
UID 不用 => 1-499 這個仍是能登陸的
密碼不用 => 密碼的前面用「!」 或者是「*」

ACL權限
ACL權限 (access control list)
======================

1.查看系統有多少個分區
df -h

2.查看分區是否支持acl權限
dumpe2fs -h /dev/sda1

3.臨時加載一個分區的acl權限、
mount -o remount ,acl / (逗號不能少)

4.永久生效
vim /etc/fstab

5.設定ACl權限
setfacl -m -x -b -R

-m 設定ACL權限
getfacl -m u:zhangsan:rx /tmp/test/
getfacl -m g:group2:rx /tmp/test/

6.最大的有效的權限
mask

setfacl -m m:rx /project

刪除ACL權限
1.刪除用戶的ACL
setfacl -x u:guanyu /project

2.刪除組ACL權限
setfacl -x g:guanyu1 /project

3.刪除這個目錄全部的用戶和組的ACL權限
setfcal -b /project

7.ACL遞歸權限

setfacl -m u:guanyu:rx -R /tmp/project / 注意:-R必定要放在被執行文件的前面才行

8.對於新的文件

setfacl -m d:u:guanyu:rx -R /tmp/project/

查看ACL權限
getfacl

===========================
進程查看
ps -ef | grep httpd

查看系統的性能
last
w
uptime
top

1.權限的把控
u g o a(acess接入)

2.設置權限
setfacl -m u:yinchao:rx two 針對的必定是一個目錄

3.查看權限
getfacl + 目錄

4.最大的權限
mask 相與的關係


特殊的權限 對於二進制文件進行把控
SUID
條件:
1.普通的用戶對於這個文件有執行的權限
2.全部者中有"s" 權限
3.是一個二進制的文件
加suid方法
chmod u+s vim 數字號也是「4」
chmod 4755 vim

減去的方法
chmod 755 vim
chmod u-s vim
-------------------------------
GUID
1.普通的用戶對於這個文件有執行的權限
2.所屬組長中有"s" 權限
3.也是一個二進制的文件
4.數字代號「2」
5.對於目錄的話,則要實現自己的rx的權限
(在普通的用戶下面建立的文件會將組改爲這個父目錄的組同樣)

sticky bit 粘着位

1.操做的對象是 「目錄」
2.普通的用戶要對這個目錄有「w」 "x"權限
3.針對的只是普通的用戶
4.o權限的地方有一個「t」的標識
chmod 1777 /tmp

5.整個的表達式的出來後呢 ,這個文件中不能刪除其它的用戶建立的文件

chattr 權限
=======================
1.改變文件的屬性權限
a、chattr +i /tmp/one 至關於給這個文件給鎖起來 不能改 刪除
immutable(不可改變的)

b、chattr -a /tmp/one 不能追加數據,不能修改數據 ,也不能刪除數據
若是一個目錄的話 則能實現建立與修改文件 ,可是不能刪除

就是不能刪除

2.減小這個用戶的權限
chattr -i /tmp/one

查看這個屬性
lsattr -a /tmp/test


sudo權限
將超級用戶的部分的命令分給普通的用戶

命令:visudo
配置文件:/etc/sudoers

普通用戶查看有的subo的權限
sudo -l

配置:
wangzhilei ALL=/usr/bin/vim

用戶在調用的時候必定加上命令的絕對的路徑
sudo /usr/bin/vim

 


==========================================
借root權限的辦法

1.知道root密碼
su - root -c "useradd wangzhilei"

2.對於一個命令進行操做,如vim cat 將全部者改爲suid
chmod 4755 /usr/bin/vim
chmod u+s /usr/bin/vim

對於文件與目錄進行保護

1.使用sticky bit 粘着位

chmod 1755 /tmp/one
chmod o+t /tmp/one

2.使用chattr -i -a


=================
防火牆
. iptables

一、查看防火牆
iptables -L -n

2. 清空防火牆
iptables -F

3保存防火牆策略

4.策略的位置
/etc/sysconfig/iptables

. selinux
查看selinux狀態
sestatus

關閉selinux
/etc/selinux/config

重啓服務器


=======================
1.主分區加擴展分區最多隻能有四個。擴展分區不能格式化,只有邏輯分共能格式化
2.IDE硬盤 linux最多支持59個邏輯分區
3.scsi接口的硬盤最多支持11個邏輯分區

格式化
目的:寫入文件系統
ext2 最大支持16TB分區 和2TB的文件
ext3 最大支持的分區也是16TB,最大的文件也是2TB 加入了日誌的功能,以在系統忽然中止的時候提升系統的可靠性
ext4 最大1EB的分區,最大支持16TB的文件
(無限數量的子目錄)
2.持久預分配
3.快速FSCK
4.日誌效驗
5.在線碎片整理
6.inode加強
7.默認啓用barrier
8.是centOS6.3默認的文件系統

磁盤分區

1.查看磁盤分區的狀況
df -Th
2.查看目錄的使用的狀況 或者是看一個文件的大小
du -sh statistics(統計)

3.顯示磁盤狀態
dumpe2fs /dev/sda1

4.分區的狀況
一個硬盤最多有四個分區,第五個分區是邏輯分區

fsck
磁盤修復命令 這個不多用 由於這個是自動的
5.shm (share memory) 共享的存貯器

6.proc文件

 


掛載 mount 針對都是分區
========================

1.顯示卷標
mount -l
2.自動掛載
mount -a
3.文件系統
磁盤:iso9660
32 vfat
16 fat
4.特殊選項 (重要)
mount -o (other) remount exec/noexec /home
noexec 就能將這個分區內的全部的執行的文件的權限去掉root也不行
5.掛載U盤
a.將鼠標切入虛擬機
b.查目硬盤塊數 fdisk -l
c.掛載 fat32 =vfat fat16=fat 文件系統的類型
d.執行 mount -t vfat /dev/sdb1 /mnt/usb
e.卸載 umount /dev/sdb1 或者是 umount /mnt/usb

NTFS
======================
1.linux默認不支持ntfs文件系統
2.要下載一個插件 下載地址:http://www.tuxera.com/community/open-source-ntfs-3g/
3.直接解壓
4.安裝:./configure && make && make install
5.安裝好就能夠了
6.掛載:mount -t ntfs-3g /dev/sdb1 /mnt/usb

第一步:分區
fdisk /dev/sdb
第二步:
w:保存
q:退出
t:改變一個分區的系統ID
n:新建分區
p:顯示分區
d:刪除分區
l:顯示已經分區的類型 (82swap分區 ,83linux分區)


第二步:
保存退出

第三步:
從新掛載:partprobe

格式化:
mkfs -t ext4 /dev/sdb1

查看分區掛載
mount
df -h

分區的自動的掛載
修復:/etc/fstab
/etc/fstab


UUID=fce293f6-c13e-41d2-8522-fa31c4483d85 /boot ext4 defaults 1 2

UUID:硬盤分區的惟一的識別標識

/boot掛載點
ext4文件類型
defaults 默認的權限
0表示不備份,1隔一天就備份,2 不定時的備份
012 表明要不要啓用fsck來檢查分區(數字越小 就越先檢查)


若是/etc/fstab配置錯誤,系統就會崩潰,可是隻要知道root密碼就能進入系統。可是這時候/etc/fstab會變成只讀的文件

要用mount -o remount ,rw /給根只讀的權限


shell
============================
1.輸出:echo " " 若是加! 則要用 ''\
2.\\ 輸出\自己
3.\a輸出警告音
4.\b退格鍵
5.\f換頁符
6.\n換行符
7.\r回車鍵
8.\t製表符 至關於tab鍵
9.\v垂直製表符
10.\x按十六進制輸出相應的字符 例:echo "\x64\ta" 給示64對應的字母b
11.\0按照八進制來輸出相應的字符
12.echo -e "\e[1;31m abcd \e[0m"
「\e[1;」 這個是開始
「\e[0m」 這個是結束
值30-37
\e[1; \e[0m"
注意:"\e[1;32m" 分號後面不能有空格


shell腳本的格式
1.#!/bin/bash (這個是固定的格式 )
2.#後面的#號纔是註釋
3.要賦權限chmod -755 (目錄的權限)
4.運行要用相對路徑或者是絕對的路徑 或者是 bash hello.sh 這樣不用加權限也能讀取內容
5.用vim編輯器來區分顏色
6.linux中換行符是$ 而在windows中用的是 M$
7.轉格式dos2unix + 文件
8.裝yum -y install dos2unix

 


歷史命令

1.history -c 清除
2.history -w 強制寫入
3.使用上下箭頭來查看
4.使用"!n"重複執行第幾條命令 默認保存1000條命令
5.使用「!!」 重複執行上一條命令
6.使用「!字串」 重複執行最後一條以該字串開頭的命令
7.配置文件在/etc/profile(環境變量的配置文件)
8.文件保存在.bash.history文件中

補全命令:
1.tab

命令的別名
alias

1.定義別名
alias vi="vim"
2.查看別名
alias
3.命令執行的優先級
3.1命令的絕對路徑與相對的路徑第一位
3.2第二位就是這個別名
3.3第三位是bash的內部的命令
3.4執行按照$PATH環境變量定義的目錄查找的順序找到的第一個命令/
4.$PATH (環境變量)
5.配置文件在家目錄下的.bashrc
6.去掉別名:ualias vi (別名的名稱)

 

======================
快捷鍵
終止
ctrl+c
剪切或者是刪除光標前面的全部的命令
ctrl+u
清屏
ctrl+l
粘貼
ctrl+y
搜索命令
ctrl+r
退出終端
ctrl+d


================
輸入與輸出重定向

輸入設備 文件描述符
/dev/stdin 0
標準輸出設備
/dev/sdtout 1
錯誤輸出
/dev/sdterr 2


輸出重定向
> 覆蓋
>> 追加

錯誤:
2> 覆蓋
2>> 追加

但在實際的應用並不能判斷這個命令是否的正確要一直放到一個文件中

命令 > 文件名 2>&1 這個是覆蓋
命令 >> 文件名 2>&1這個是追加

標準格式:
正確與錯誤都放在一個文件中
命令 &>>文件
命令 &> 文件

linux系統中的垃圾箱
ls &>/dev/null
將正確的與錯誤的輸出到兩個不一樣的文件中
ls >>abc 2>>cdf

=================
輸入重定向
wc
多少行 多少個詞 多少個字符
-l 統計行數
-C 字節數
-W 單數
命令<文件

wc <one.long 統計這個日誌文件中的內容(注意:<符號與後面統計的文件不能有空格)
wc <<hello
<aa
<aa
<hello

<<這個是統計hello裏面的內容

=============
多命令分隔
; 先後的命令沒有相應的關係
&& 與
|| 或


複製文件
date;dd if=/dev/zero of=/root/two bs=1k count=10000;date

===================
管道符
grep -n -i --color=auto

netstat -an /tunpl

通配符
?
*
[]
[-]
[^]

特殊符號
1.單引號:
全部的符號到內都只看成普通字符
2.雙引號:
能夠解析變量 轉義字符 ‘'’引入命令
3.``將內容當命令來解釋=$()
4.

 

======================
1.變量的聲明:
直接的變量名=變量的值

2.變量的調用
echo $name

""
==========================
更改時間
date [MMDDhhmm[[CC]YY][.ss]
===========================
1.用戶自定義的變量
a.命名:不能以數字開頭
b.默認的數據類型是字符串 string
c.數字也是字符串,可是若是想讓數字參與計算的話 則要進行相應的處理
d.等號兩邊不能有空格
e.若是變量的值有空格的話 則要用雙引號或者是單引號來括起來
f.在變量的值中可使用轉義字符
g.環境變量的名稱最好是大寫的 (小寫也是能夠的)
[變量的疊加]
a = 123;
echo $a //輸出結果是123
a="$a"456
echo $a //輸出的變量的值爲123456

[變量的查看]
set
[變量的調用]
echo $one
[變量的釋放]
unset


2.環境變量
a.主要保存和系統操做環境相關的數據
b.進入一個新的bash 直接輸入 bash
c.聲明環境變量 export

path環境變量
加入環境變量的兩種方法
1.將腳本文件放到環境變量的目錄中
2.不放在環境變量的目錄中,可是將當前的目錄改成環境變理的目錄中

定義系統提示符
\d: 星期幾 格式爲: 星期 月 日
\h host
\t time HH:MM:SS (24小時制)
\T 12小時
\A 24小時 沒有秒
\u 顯示用戶名
\w 絕對路徑
\W 最後一個目錄
\# 執行的第幾個命令
\$ 提示符

PS1環境變量
PS1='[\U]'


====================
進程查看

1.ps -ef | grep httpd
2.pstree

 


3.位置參數的變量
a.主要向腳本中傳遞參數或數據,變量的名稱不能自定義,變量的做用是固定的
4.預約義的變量
a.bash中已經定義好的變量,變量的名稱也不能自定義,變量的做用也是固定好的

 

============================================
位置參數 (名稱是必定的 ,且功能也是必定的)
1.$n 0表明這個命令的自己,其它表明這個傳值 若是大於10則要用${10}
echo $(( $1 +$2))
2.$* 表明任何的參數,會將這個參數當作一個總體

3.$@ 表明任意的參數,會將參數分開來看
4.$# 表明傳參的個數
echo $#
echo $*
echo $@
for i in "$@"
do
echo $i
done
1.$#計算參數的個數
2.for in "$a" #若是執行的值是一個變量的話 則必定要加「」 括起來
do
中間是執行的內容
done


===================================================
預約義的變量
1.$? 判斷上一個命令是否執行正確 若是返回結果是0的話 則說明正確
2.$$ 查看當前的進程號
3.$! 查看當先後臺的進程號 (後臺執行的程序在進程的結尾加上&)


鍵盤輸入
read -p -n -s -t 變量
===================================================
-p (print)
-n (num)
-s (隱蔽輸入的內容)
-t (timeout 超時秒數)
=======================================================
read -t 30 -p "please input your name: " name
echo $name
========================================================
read -t 30 -s -p "enter your password :" passwd
echo $passwd
=======================================================
read -t 30 -n 1 -p "[M/F:] " sex
echo $sex
========================================================
數值的運算與運算符
linux中任何的變量的數據的類型都爲字符串 string
====================================
1.declare
-i 聲明爲整型 initer
-x 聲明爲環境變量
-p 打印變量的類型
+ 減去變量的類型
- 增長變量的類型
2.expr aa=$(expr $aa + $bb) 這個並不經常使用,用「+」 先後的空格是不能少的
3.$(($aa+$bb)) 兩個插號 這樣的話裏面的變量就能直接參與運算了 或者是用$[$aa+$bb]

運算符
經常使用的+ - * / % 遵循運算
&& 值只爲0或者是1 當兩邊有一個值爲0的時候 同 這個值爲0
|| 值只爲0或者是1 當兩個值都爲0的時候才爲爲
==============================================
變量的查詢與變量的替換
1.x=${y-new} 若是y存在的話則用y的值 若是y不存在的話 則要用「-」 後面的賦的值

=================================
環境變量的配置文件
1.配置文件更改後要從新登陸才能生效
2.用source 文件名 或者是 . 文件名 這樣的話 則不用 登出登陸就能即時的生效
3.環境變量的種類
PATH
HISTSIZE 歷史
PS1
HOSTNAME 用戶名
4.環境變量的配置文件
/etc/profile
/etc/profiled/*.sh
~/.bash_profile
~/.bashrc alias 別名
/etc/bashrc

5.只要環境變量的配置文件在/etc上面的 則對全部的登陸的用戶都是生效的

/etc/profile
user變量
loginname
mail
path
hostname
histsize
umask

退出環境變量
.bash_logout

定義系統的語言
/etc/sysconfig/i18n"

記錄系統的歷史
.bash_history

本地登陸信息
/etc/issue
\d 顯示當前的系統的日期
\n 顯示主機名
\s 系統的名稱
\o 顯示域名
\r 顯示內核版本
\t 當前系統的時間
\u 顯示當前用戶的序列號
===========================================================
遠程登陸信息(上面的轉義符沒有用)
/etc/issue.net
若是想顯示配置的信息的話
1./etc/ssh/sshd_config 中找到banner none 改爲 banner=/etc/issue.net
2.重啓動sshd service sshd restart
===========================================
/etc/motd(這個是登陸以後的歡迎信息)
================================================
shell中的正則表達式
正則與通配符號的區別

1.正則在文件中查打匹配的字符 (包含匹配)
2.通配符是查打匹配的目錄或者是文件的名稱 (徹底的匹配)

基礎正則表達式
* 前面的字符的個數0或多個 通配符中是任意的字符 與PHP同樣
. 全部的字符 除了換行符\n
^ 以什麼開頭
$ 以什麼結尾
[] 在[]中的任意的字符
[^] 取反
\ 轉義字符
\{n\}
\{n,\}
\{n,m\}
==============================================
字符的截取
提取行
0.grep
===================================================
提取列
1.cut
cut -f 5 /etc/one first
a.用是的製表符來分才行
cut -d ":" 定義分隔的方式 (deliver)
======================================================
2.printf (n表明的是幾個)
printf %ns (string)
printf %ni (int)
printf %m.nf (float)
2.1讓幾個一行,可是%s要放在單引號或者是雙引號中
printf "%s %s %s\n" 5 8 9 4 5 6
2.2printf 只能直接讀內容,並不能經過文件讀內容
例:
錯誤: printf "%s" one.txt
正確: printf "%s" $(cat one.txt)
格式調整
\b 刪除
\a alert
\f 清屏 fire
\n 換行
\r 回車
\t 製表符
\v 垂直輸出
===================================================
3.awk
截取列
1. df -h |awk '{print $5 "\t" $6}'
2.print 會自動加上"\n"
3.df -h |grep sdb5 |awk '{print $5}'|cut -d "%" -f 1 綜合運用
4.cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}'
BEGIN在操做前執行的動用
{FS=":"}定義分隔符
END{print "aaaaaaaaaaaaaaaaa"}
帶有條件來判斷
cat one.txt |grep -v name |awk '$3<90{print $1}'

======================================================
4.sed 動做要用單引號''
sed 選項 動做 文件
直接操做一個文件
sed -n "2p" one.txt
接收管道符的內容
df -h |sed -n "3p"

追加(在第二行的後面加hello)
sed '2a hello' one.txt
插入:(插入都是在前面插入的)
sed "2i hello \ onen" one.txt
刪除
sed '2d' one.txt
整行替換
sed '3c no person ' one.txt
替換字符串(中間用「/」來分隔)
sed '3s/39/78/g' one.txt
修改原文件
sed -i '3s/39/78/g' one.txt
多個條件同時進行 中間用的是分號隔開 (也在單引號內)
sed 's/si/zhi/g; s/san/hello/g' one.txt


-n 只將動做執行過的數據放到屏幕中 new
-d 刪除 delete
-i 插入 insert
-a 追加 access
-c 行替換 cover
-s 字符串替換 string
-e 容許多個條件同時進行

進程管理
ps aux
表示佔用虛擬內存的空間(默認的單位是k)
VSZ
表示佔用物理內存的空間 (默認的單位也是k)
RSS
表明的是本地控制檯終端
tty1-6
表明的圖形終端
tty-7
表明虛擬終端
pst 0-255
查看一個機器的健康的情況
l.ps aux
2.ps -le
進程的狀態
status
運行
R
休眠
S
位於後臺
+
包含子進程
s
該進程的啓動的時間
START
該進程佔用CPU運算的時間(並非系統的時間)
TIME
進程的命令名稱
COMMAND
查看系統健康情況
top`
僵局進程
zombie


st:steal time 虛擬機時間百分比
si:軟中斷服務請求佔用的CPU
hi:硬中斷請求佔用的CPU的百分比
us:用戶模式佔用的百分比
sy:系統模式佔用的CPU的百分比
id:空閒的CPU

N:安PID
P:CPU
M:內存
q:退出


====================
進程數
tree 查看目錄結構(須要安裝 yum -y install tree)
pstree= ps aux

-p顯示pid號
-u:顯示所屬的用戶

============================================
進程殺死
kill -1 重啓(PID)
kill -9 強制 (PID)
kill -15 正常(PID)

killall -1 httpd 按進程名來
pkill -9/-1/-15 -t tty1
===========================
查看全部的服務
chkconfig --list
=======================================
工做管理
1.在命令的後面加上"&"
2.在程序執行的時候用快捷鍵 「ctrl+z」
3.查看後臺工做 jobs -l
======
恢復到前臺
fg %工做號
bg %工做號 在後臺運行 至關於 &
====================================
資源查看
========================
1.vmstat 2(時間間隔) 2(次數)相似於top

查看機器的硬件信息
dmesg |grep CPU

查看內存的使用狀態
free
butters (緩衝信息)
cached (緩存信息)

查看CPU的信息

cat /proc/cpuinfo/diskstat /swap

miscellaneous 混雜的

查看內核信息
=======================================================
uname -s 查看系統
uname -a 查看內核全部的信息
uname -r 查看內核的版本

=====================================================
SMP:Symmetric(對稱的) Multi-Processing [si'metrik]
SMP(Symmetric Multi-Processing),對稱多處理結構的簡稱,是指在一個計算機上聚集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。在這種技術的支持下,一個服務器系統能夠同時運行多個處理器,並共享內存和其餘的主機資源。
Greenwich Mean Time格林尼治時間
=============================================================

查看系統的位數

file /bib/ls 只能經過查看系統中的命令來查看系統的位數 這樣彎曲的來查看

file查看文件的類型
=============================================================
查看系統的類型是centos 仍是ubuntu

lsb_release -a (linux standard base)
============================================================
列出進程打開或者是佔用文件的信息
lsof
lsof -p 進程號佔用的文件的信息
lsof -u 哪一個用戶佔用的文件的信息
lsof -c 列出以字符串開頭的打開的文件 lsof -c init
initial(初始)
=============================
系統中的定時任務
1crontab
crontab -e 編輯
crontab -l 查看
crontab -r 刪除
* * * * *
第幾分鐘 第幾個小時 第幾天 第幾個月 周幾(0-7) 0與7都表明的是 週日


重點:在定義定時任務的時候 %有必定的意義,若是用到時間的話則要加轉義字符才行
======================================================

系統日誌
=========================
1.查看日誌服務有沒有運行與自運行

ps aux| grep rsyslogd
2.查看有沒有自運行
chkconfig -- list |grep rsyslogd\
2.日誌存入的位置
/var/log
日誌分爲兩種:
a、能直接打開的
/var/log/btmp lastb 查看登陸失敗的狀況
/var/log/utmp who w
/var/log/lastlog lastlog
/var/log/wtmp last
b、用命令才能打開的

==================================
日誌格式

一、日誌產生的時間 二、主機名 三、產生日誌的服務名或者是程序名 四、事件的具體的信息

===========
日誌配置文件
/etc/rsyslog.conf

服務名 等級 存入位置

authpriv.* /var/log/secure
"." 表示鏈接符
==========
服務名稱:
0.*全部的服務的名稱
1.auth 安全認證的相關的信息
2.authpriv 安全認證相關的信息(私有的)
3.cron 定義時任和at產生的信息
4.daemon 守護進程相關的日誌
5.ftp ftp守護進程產生日誌
6.kern 內核產生的日誌
7.local0-local7 爲本地使用預留的服務
8.lpr 打印產生的日誌、
9.mail 郵件收發信息
10.new 新聞服務產生的日誌
11.syslog 有syslogd服務產生的日誌信息
12.user 用戶等級的類別的日誌
13.uucp UUCP子系統的日誌信息 uucp是早期linux系統進行數據傳遞的協議,後來經常使用在新聞服務中
===========
鏈接符
表明全部的等級
「*」
表明只記錄比後面的等級高的日誌信息
.info/bug/emerg/warning/critical
只接收某一個等級的日誌
".="
不接收一個等級的其它的等級都接收
「.!」

=======================================
報警的等級
0.none
1.debug
2.info
3.notice
4.warning
5.err
6.crit
7.alert
8.emerg
等級越高的話則記錄的內容就越少,可是危害性越大

===================
日誌的記錄的位置
1.日誌文件的絕對路徑 如/var/log/secure
2.系統的設備文件: 如/dev/1p0
3.轉發給遠程的主機: @192.168.0.210:514
4.轉發給用戶 root
5.丟棄或者是忽略 ~
=============
連起來一塊兒寫
uucp,news.crit (用逗號隔開)
=========================
日誌的輪替

輪替工具
vim /etc/logrotate.conf

daily 日誌的輪替的週期爲1天
weekly
monthly
rotate 保留日誌的個數 若是是30 則會有30份日誌來備份
compress 日誌輪替時舊的進行壓縮
create mode owner group 新建日誌的時候,同時指定新日誌的權限與全部才組
============================================

查看日誌輪替信息

logrotate -v /etc/logrotate
強制輪替
logrotate -f /etc/logrotate

輪替工具
vim /etc/logrotate

daily 日誌的輪替的週期爲1天
weekly
monthly
rotate 保留日誌的個數 若是是30 則會有30份日誌來備份
compress 日誌輪替時舊的進行壓縮
create mode owner group 新建日誌的時候,同時指定新日誌的權限與全部才組
============================================

查看日誌輪替信息

logrotate -v /etc/logrotate
強制輪替
logrotate -f /etc/logrotate
=========================
運行級別
0 關機
1 單用戶模式
2.不徹底的集合模式 不包含nfs
3.徹底命令的模式
4.系統保留
5.圖形界面
6.重啓

5.圖形界面
6.重啓

系統的啓動的過程
cpio -idv < test
===================================
啓動管理
配置文件
/boot/grub/grub.conf

==============================
備份與恢復
增量備份
dump
yum -y install dump

-l 指定備份後的文件名
-u 備份後,把備份的時間記錄在/etc/dumpdates文件中
-v 顯示備份過程當中的詳細的信息
-j 將文件備份成bz2格式
-W 顯示容許dump分區的備份等級及備份的時間

徹底備份:
dump -0uj -f /tmp/boot.bz2 /boot/

增量備份(只能針對分區,並不能針對於文件或者是目錄)
dump -1uj -f /tmp/boot.bz2 /boot/
對於文件或者是目錄進行備份,則不用寫入/etc/dumpdates 也就是說不能有-u選項
dump -0j -f /tmp/etc.bz2 /etc/
dump -W 用來查看分區的備份的狀態
====================
restore
將備份的文件與原來的文件進行比較(只要文件名相同系統會自動的比較)
restore -C -f
還原
restore -r -f /tmp/etc.bz2
查看
restore -t -f /tmp/etc.bz2
evel (0-9)
-f

------------------------------------------
apache配置

linux內置的瀏覽器
elinks http://127.0.0.1

 

 

 

--------------------------------------------------

apache
網站的根目錄
DocumentRoot "/usr/local/apache2/htdocs"

服務的權限

/

indexes
若是沒有index文件的話則會提示沒有權限須要加上相應的文件一塊兒來訪問

FollowSymlinks
可以在htdocs目錄下面建立軟連接

MultiViews

多視圖,當你輸出a會自動的尋找a.html 或者是a.php
http://192.168.255.10/mnt/a.php

定義進程的執行者
User daemon
Group daemon

正確訪問的日誌
CustomLog "logs/access_log" common

錯誤訪問的日誌
ErrorLog "logs/error_log"


解析.php的腳本
AddType appliacation/x-httpd-php.d

控制錯誤的頁面的輸出
ErrorDocument 404 missing.html

包含外部的配置的文件
Include conf/extra/httpd-vhosts.conf

-------------------------------------------------------------
配置虛擬目錄

當輸出ww.jd.com/mnt的時候會默認的找linux系統中的/mnt目錄
Alias /mnt "/mnt"

權限設置
<Directory "/mnt">
Options indexes multiviews //多視圖
Order deny,allow
Allow from all
</Directory>

----------------------------------------------------------

虛擬主機
-------------------------------------------
第一步:開啓http.conf中的引放虛擬主機模式
Include conf/extra/httpd-vhosts.conf
第二步:cd /usr/local/apache/conf/extra
編輯 httpd-vhosts.conf
第三步:建立虛擬主機
--------------------------------------
1)修改虛擬IP
NameVirtualHost 192.168.255.10:80

2)建立虛擬主機(標記爲VirtualHosts)
<VirtualHosts 192.168.255.10:80>
//指定根目錄
DocumentRoot "/web/keji"
//指定域名
ServerName www.zhilei.com
</VirtualHosts>

3)給這個虛擬目錄賦權(Directory)
<Directory "/web/keji">
//定義功能
Options indexes(默認尋index) /MultiViews(多視圖) /FollowSymlinks (軟連接)
//權限選項
Order deny,allow
//最終定義權限
Allow from all
</Directory>
-----------------------------------------------------------------------------

lamp環境搭建
----------------------------------------
0.php庫文件
1.apache
2.php
3.mysql
---------------------------------------
php依賴包安裝

--------------------------------------------------
1.autoconf與zlip不用指定安裝目錄
第一步:解壓
第二步:cd autoconf
第三步:./configure && make && make install

0安裝libxml2
tar zxf libxml2-2.7.8.tar.gz
./configure --prefix=/usr/local/libxml2
make && make install
-----------------------------------------
其它的安裝的順序
第一安裝libpng
tar zxf libpng-1.2.10.tar.bz2
./configure --prefix=/usr/local/libpng
make
make install
---------------------------------------
第二安裝jpegs
tar xzf jpegsrc.v6b.tar.gz
配置文件不全要手動創建目錄
mkdir /usr/local/jpeg6/
mkdir /usr/local/jpeg6/bin/
mkdir /usr/local/jpeg6/lib/
mkdir /usr/local/jpeg6/include/
mkdir -p /usr/local/jpeg6/man/man1/
----------------
./configure --prefix=/usr/local/jepg6
make
make install
--------------------------------------
第三安裝:freetype
tar zxf freetype-2.3.1.tar.bz2
./configure --prefix=/usr/local/freestye && make && make install
-------------------------------------
第四安裝:libmcrypt
tar zxf libmcrypt-2.5.7.tar.gz
./configure && make && make install
----------------
還要安裝它的子程序
cd libltdl
./configure --enable-ltdl-install
make && make install
-----------------------------------
第五步:安裝GD庫
tar zxf gd-2.0.32.tar.gz
cd
#.png的修復的方法
cd gd_png.c
將#include "png.h"
#include "/usr/local/libpng/include/png.h"
--------------
./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng


-------------------------------
mysql安裝
1)第一步安裝ncurses
yum -y install ncurse*

2) 添加mysql進行執行
useradd mysql
vim /etc/passwd /sbin/nologin
3)安裝
./configure --prefix=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --without-debug --enable-thread-safe-client --with-pthread --enable-assembler --enable-profiling --with-mysqld-idflats=-all-static --with-client-idflags=-all-static --with-extra=all --with-plugins=all --with-mysqld-user=mysql --without-embedded-server --with-server-suffix=-community --with-unix-socket-path=/tmp/mysql.sock
make
make install

--------------------------
4)設置配置文件
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf (必需要在/etc目錄下面)

5)設置權限
setfacl -m d:u:mysql:rwx -R /usr/local/mysql/
6)安裝數據庫
/usr/local/mysql/bin/mysql_install_db --user=mysql
7)啓動數據庫
/usr/local/mysql/bin/mysqld_safe --user=mysql &
8)設置數據登陸用戶和登陸密碼
/usr/local/mysql/bin/mysqladmin -u root password kkk
9)登陸數據庫
/usr/local/mysql/bin/mysql -u root -p 123456
---------------------------
開機自動重啓
/etc/rc.local
/usr/local/mysql/bin/mysqld_safe --user=mysql &>/dev/null &
加入環境變量
ln -s /usr/local/mysql/bin/mysql /bin

設置字符集
SET character_set_client=utf8;
SET character_set_connection=utf8;
SET character_set_results=utf8;
SET character_set_database=utf8;
SET character_set_server=utf8;

----------------------------------------------------------
php安裝與編譯
1)安裝libtool libtool-ltdl
yum -y install libtool* libXpm-devel
yum install libXpm-devel
(要開啓在線yum安裝)
2)cd php-5.6.20
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --enable-soap --enable-mbstring=all --enable-sockets --with-xpm-dir=/usr/lib
make && make install
不要加zlib
3)配置文件
原來文件中的
4)cd php-5.6.20 cp /lamp/php-5.6.20/ php.ini-development /usr/local/php/etc/php.ini
5)打開apache配置文件
添加 AddType application/x-httpd-php .php
(注意:這句話後面要加一個空格才能生效)
DirectoryIndex 後面加入 index.php


打模塊:
第一步:
切到相應的解壓的目錄執行
/usr/local/php/bin/phpize 會生成./configure文件
第二步::

  ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
  make
  make install

若是出現mysql.h目錄未找到的話則用
ln -s /usr/local/mysql/include/* /usr/local/include/

第三步:修改php.ini配置文件
extension
On windows:
; extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
加入extension=php_pdo_mysql.so

---------------------------------------------------
ftp 數據截取
1)安裝vsftp
yum -y install vsftp*
2)啓動服務
service vsftpd start
ftp -i eth0 -nnX port 21
---------------------------------
將程序放在後臺運行
&放在後臺運行
ctrl+z 放在後臺,可是再也不運行
-------------------------------------
查看後臺運行程序
jobs -l (能夠省略)
fg放在前臺運行
bg放在後臺運行
-----------------------------------------


sshd服務
----------------------------------------
配置文件
/etc/ssh/ssh下面的
ssh_config (客戶端的)
sshd_config (服務器端的)
---------------
密鑰
RSA 公鑰 republic secure Authentication (只有每一次登陸的要問下輸出公鑰)
DSA 私鑰
------------------
讓客戶端不通過dns解析來登陸
更改ssh_config客端的文件
GSSAPIAuthentication yes
改爲
GSSAPIAuthentication no
這樣就能讓客戶端的登陸不通過DNS驗證來登陸
----------------------------------------
禁止root用戶登陸
------------------------------------
在sshd_config
#PermitRootLogin yes
改爲
PermitRootLogin no
------------------------------------

sftp root@ip
輸入密碼

顯示本地文件
lls
顯示切換目錄
lcd
下載
get
上傳
put
對於運維是手動操做的 ,若是這個事情不能及時的解決的話 咱們這面生活並非那麼
---------------------------------------------
密鑰登陸
------------------
1.生成公私鑰
ssh-keygen -t rsa
2.將公鑰傳給服務器
scp id_rsa.pub root@111.202.120.14:/root
3.將公鑰放到root下面
4.打開
cat id_rsa.pub >> .ssh/authorized.keys
若要用zhilei賬戶登陸的話則要用
/home/zhilei/.ssh/authorized.keys
5.更改權限(將全部都)
6.關於SElinux
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys(名稱必定要一致)

PasswordAuthentication yes
改爲
PasswordAuthentication no 禁用密碼登陸

if


samba
-----------------------------------------

python基礎內容-----------------------------------------1.變量的聲明2.序列: 元組,列表,字典3. 4.-----------------------------

相關文章
相關標籤/搜索