Linux 筆記

python3官方手冊:https://docs.python.org/3/library/urllib.html

入門:http://www.runoob.com/python3/python3-data-structure.html

 

Urllib  https://www.cnblogs.com/zhaof/p/6910871.html

 

 

-------------------------------------防火牆   iptables----------------------------------------------------

iptables是Linux上常用的防火牆軟件,下面vps偵探給大家說一下iptables的安裝、清除iptables規則、iptables只開放指定端口、iptables屏蔽指定ip、ip段及解封、刪除已添加的iptables規則、設置iptables開機啓動等iptables的基本應用

1、安裝iptables防火牆

如果沒有安裝iptables需要先安裝,CentOS執行:

yum install iptables -y
yum install iptables-services -y /*CentOS7需安裝此軟件包*/

CentOS 7上默認安裝了firewalld建議關閉並禁用:

systemctl stop firewalld
systemctl mask firewalld

Debian/Ubuntu執行:

apt-get install iptables -y

2、清除已有iptables規則

iptables -F
iptables -X
iptables -Z

3、開放指定的端口

-A和-I參數分別爲添加到規則末尾和規則最前面。

#允許本地迴環接口(即運行本機訪問本機)
iptables -A INPUT -i lo -j ACCEPT
# 允許已建立的或相關連的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允許所有本機向外的訪問
iptables -A OUTPUT -j ACCEPT
# 允許訪問22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允許訪問80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允許訪問443端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允許FTP服務的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#如果有其他端口的話,規則也類似,稍微修改上述語句就行
#允許ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#禁止其他未允許的規則訪問
iptables -A INPUT -j REJECT  #(注意:如果22端口未加入允許規則,SSH鏈接會直接斷開。)
iptables -A FORWARD -j REJECT

 

 

 

 

 

定時執行:

在linux中輸入命令

複製代碼代碼如下:
crontab -e

安裝crontab:
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs

說明:
vixie-cron軟件包是cron的主程序;
crontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
//+++++++++++++++++++++++++++++++++++
cron 是linux的內置服務,但它不自動起來,可以用以下的方法啓動、關閉這個服務:
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //重新載入配置

查看crontab服務狀態:service crond status

手動啓動crontab服務:service crond start

更多:開機啓動,crontab瞭解:https://www.cnblogs.com/Gbeniot/p/5421371.html

然後使用vim的命令編輯打開的文件,輸入

複製代碼代碼如下:
0 * * * * /usr/bin/php -f /home/userxxx/update.php

0 * * * * /usr/local/php -f /home/wwwroot/web/app/Lib/Action/home/timeAction.class.php

(這個格式我還需要了解透徹一點)

保存,退出,好了,現在系統會在每個0點自動執行update.php腳本,腳本中可以編寫數據庫執行,自動發郵件等功能。

注:直接寫成 0 * * * * php -f /home/userxxx/update.php將不會起作用。

 另外cronjob的格式爲:

MIN HOUR DOM MON DOW CMD

Field Description Allowed Value
MIN Minute field 0 to 59
HOUR Hour field 0 to 23
DOM Day of Month 1-31
MON Month field 1-12
DOW Day Of Week 0-6(0表示星期天)
CMD Command Any command to be executed.

使用(-)可以劃定範圍

 如:0 0-6 * * * command 表示每天0-6點整執行command

使用(,)可以枚舉時間

 如: 0,15,30,45 * * * * command 表示每個小時的0分,15分,45分,30分會執行command

使用(/)可以指定間隔

 如:* */4 * * * command表示每四小時執行command

組合用法

0-10/2 * * * * command表示在前10分鐘內每隔2分鐘執行command

 

添加站點:
不要使用 lnmp vhost add命令,預防創建新的數據庫,覆蓋了原來的數據庫

直接修改/usr/local/nginx/conf/vhost/裏面的文件,加一個域名即可!

 

關於目錄權限:

說明:Linux有些文件,是不可以修改的,即使是root也不能,可以使用 chattr -i去掉這權限,再更改權限

chmod 777 -R 目錄,就是更改目錄權限


服務器登陸:
root
Asd2015!@#


複製,壓縮日誌文件(日誌文件太大,壓縮下載)
cp /home/wwwlogs/www.6starshop.com.log  /home/web
tar -zcvf /home/web/6log.tar.gz /home/web/www.6starshop.com.log

 

複製目錄:

假設複製源目錄 爲 dir1 ,目標目錄爲dir2。怎樣才能將dir1下所有文件複製到dir2下了
如果dir2目錄不存在,則可以直接使用
cp -r dir1 dir2
即可。
如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2

 

 

基礎命令:
serivce httpd restart 重啓Apache
apache重新啓動命令:(進入到Apache的安裝目錄)
/home/lamp/apache/bin/apachectl restart 重啓

【防火牆】
service iptables stop
service iptables restart


【用戶】
$    在終端的命令行首代表:普通用戶。  $在腳本語言中常表示變量,也就是$var 代表一個變量。
#    代表root超級用戶。
sudo    是superuser do的簡寫,sudo是linux系統管理指令,是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具。

root
ps -u  oracle查看某個用戶oracle的所有進程
ps -u  vnish
ps -ef | grep varnish(看看varnish程序運行了沒)

1.命令:useradd -u 0 -g 0 用戶名

useradd -o -u 0 -g 0 Administrator增加一個用戶(Administrator沒想到Linux沒有這個用戶)

passwd Administrator  000000aA
【文件】
#cd /tmp  進入指定目錄/tmp(tmp是舉例,中間有空格)【注:cd後面要加/路徑的】
pwd  顯示當前所在目錄的路徑
#ls  顯示當前目錄的內容(有顏色)
#ls --help 列出 ls 命令的幫助內容

創建目錄 mkdir
mkdir dir1  在當前目錄下創建 dir 子目錄
mkdir /tmp/dir2  在指定目錄/tmp 下創建 dir2 子目錄

創建空文本文件 touch
#touch file1  在當前目錄下創建 file1 文件
#touch /tmp/file2  在指定目錄/tmp 下創建 file2 文件

複製(備份)
#cp /tmp/file2 /home  複製/tmp/file2 文件到/home 目錄下
cp -r /tmp /tmp1

剪切
#mv /home/file3 /tmp  移動/home/file3 文件到/tmp 目錄下

mv -f /home/www/WeCenter322/* /home/www/0668  將WeCenter322文件夾下所有東西移動到0668目錄下

替換 (前提是有權限,比如root可以,替換的時候會有個?問你, y即可)
cp /usr/local/sphinx/sphinx1.conf  /usr/local/sphinx/sphinx.conf

刪除
#rm /tmp/file1  刪除指定目錄/tmp 下的文件 file1


rm -rf  /home/web/web/sitemap/w3

刪除目錄
rm -rf 目錄名

創建目錄:
mkdir /usr/local/sphinx 
chmod -R 777 /usr/local/sphinx(更改目錄權限)


查看文件內容命令 cat
#cat /etc/passwd  查看/etc/passwd 文件


查找文件命令  find
#find /etc/pass*  在/etc 目錄中查找以 pass 開頭的文件 

在進程強制關閉某個軟件(這裏searchd看作軟件名了)
pkill -9 searchd


按ESC鍵 跳到命令模式,然後:

:w   保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w!   強制保存,不推出vi
:wq  保存文件並退出vi
:wq! 強制保存文件,並退出vi
q:  不保存文件,退出vi
:q! 不保存文件,強制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯

【注:find / -name ** 要有/和-】


在文件內容中查找關鍵字 grep(grep命令是一種強大的文本搜索工具)
#grep “rpm” /etc/passwd  在/etc/passwd 文件中查找關鍵字 rpm


linux 系統下的默認目錄
/bin
/boot
/dev 
/etc
/home 
/media
/root 
/sbin 
/tmp
/usr
/var

linux 的目錄與文件的權限:
r  讀權限數值表示 4
w  寫權限數值表示 2
x  執行權限數值表示 1
1 代表執行,2 代表寫,3 代表 1+2,4 代表讀,5 代表 1+4,6 代表 2+4,7 代表 1+2+4

1執行
2寫
3執行+寫
4讀
5讀+執行
6讀+寫
7讀+寫+執行

chmod 777 file1  將文件 file1 的權限更改爲 777

【文件編輯】
文本編輯器:
#vi file  編輯 file 文件
#vi /tmp/file1  編輯指定目錄/tem 下的 file1 文件
:w  保存修改
:q  退出 vi
:wq  保存並退出
:q!  強行退出 vi,不保存修改

u  撤銷
p  粘貼
7G  快速找到第 7 行
/adm  簡單搜索,快速定位光標到光標後的第一個 adm 單詞的位置
替換內容:
:7,12 s/:/?  把第 7-12 行中每一行的第一個:改成?

查找   命令模式下輸入“/字符串”,例如“/Section 3”,按“n”查找下一個。

退出vim編輯快捷鍵   shift+Z+Z


【批量加註釋】首先按esc,然後:
:set nu 
:480,484s/^/#/g 加註釋

620-740批量加了註釋,怎麼去掉呢?


【軟件安裝】
./configure是源代碼安裝的第一步,主要的作用是對即將安裝的軟件進行配置,檢查當前的環境是否滿足要安裝軟件的依賴關係。
./configure --prefix=(configure後需要空格, --prefix 是configure的一個參數,是指定路徑的,不是命令)

安裝更新
yum -y update
yum install 


linux 下軟件介紹:
rpm 包   (Redhat Package Manager,類似於 windows 的.exe 文件)
rpm -i packagename 安裝包(在包所在的目錄下)
rpm -i /media/udisk/linux/linuxqq_v1.0-preview3_i386.rpm 安裝指定目錄下的包
rpm -ivh packagename 安裝包並顯示安裝的進度和詳細信息
rpm -e packagename 卸載已安裝的 rpm 包,可以以空格隔開同時刪除多個包


grant usage on *.* to [email protected] identified by 'root';


安裝步驟通常爲:
./configure  執行配置
make  編譯
make install  安裝
make clean  清理臨時文件

=========
rpm包可能不能直接做編譯,rpm -ivh rpm

【yum安裝】:
基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。

安裝軟件(以foo-x.x.x.rpm爲例):yum install foo-x.x.x.rpm
yum常用命令
yum常用命令
刪除軟件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升級軟件:yum upgrade foo或者yum update foo
查詢信息:yum info foo
搜索軟件(以包含foo字段爲例):yum search foo
顯示軟件包依賴關係:yum deplist foo


【重啓軟件】在root權限下
service apache restart
service varnish restart

apache重新啓動命令:(進入到Apache的安裝目錄)


【添加壓縮包】(文件夾打包)
tar -zcvf 打包後生成的文件名全路徑 要打包的目錄
tar -zcvf /home/xahot.tar.gz /xahot

tar -zcvf /home/bakup/web.tar.gz   /home/web/web

【解壓壓縮包】
在 linux 下安裝方式爲:
1、先解壓縮,各種文件類型的解壓縮方式不同
tar -zxvf ./text.tar.gz -C /home/app/test/(將text.tar.gz 解壓到 /home/app/test/ (絕對路徑)下)
tar -xvzf softname.tgz  (-x  解壓縮文件 -v  顯示詳細過程 -z  支持 gzip 壓縮文件  -f  指定壓縮文件  -d 指定解壓縮目錄)
make uninstall  tar 包的卸載


【zip解壓】
unzip /home/web/w3.zip -d /home/web/web/sitemap


tar -zxvf /home/web/sitemapw3.tar -C /home/web/web/sitemap

【配置網站目錄】
httpd的配置文件爲/etc/httpd/conf/httpd.conf
1. Web站點的主目錄
DocumentRoot:設置Web站點的主目錄,如:
DocumentRoot "/wu" //該目錄必須已經存在
注:如果更改主目錄後,在瀏覽器中訪問是出現如下錯誤提示:
<Directory "......"> 
Options Indexes FollowSymLinks //刪除Indexes即表示不允許目錄列表
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory>【其他網上查吧】

cd /usr/local/mysql/bin

【mysql數據庫】

cd /home/lamp/mysql/bin 進入mysql目錄
mysql -uroot -proot wedding 登陸mysql(cn數據庫的用戶爲cn 密碼爲:aw4y1iahVotMpf)aw4y1iahVotMpf
use wedding 選擇進入哪一個庫
show tables;顯示所有的表

show databases;顯示所有的數據庫。。。。

 

describe table_name; 顯示你要找的那個表的表結構
weixin_article

【權限】
grant all privileges on *.* to wedding@'%' identified by '000000aA' ;【任何主機都可訪問】
語法:【授予所有權限  用戶@ip地址 BY 密碼】
grant all privileges on *.* to [email protected] identified by 'root' ;

grant all privileges on *.* to 37junshi@'%' identified by '000000aA' ;

移除賬戶root,這樣,主機192.168.0.1就不再可以使用root用戶操作服務器A上的數據庫
mysql> drop user [email protected]
[email protected]
[email protected]

【記得移除這2個賬號!】

連接MySQL格式: mysql -h主機地址 -u用戶名 -p用戶密碼


找到數據庫目錄:
[root@localhost]# find / -name mysql

運用mysql:
mysql>; USE mysql; 
mysql>; UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root'; 
mysql>; FLUSH PRIVILEGES;


查看文件名
mysql建立數據庫使用create命令:
新建數據庫例:  

# mysql -uhjh -p123456 登陸
use   庫名;使用哪個庫【這個是選擇庫,不是選擇表,表是select* from】
mysql> show databases;顯示所有數據庫的名稱。
alter table t1 rename t2; 重命名錶名
mysql> create database XXXXX;   創建數據庫
mysql> create table abc;創建表:
mysql>      databases; 顯示所有數據庫列表
mysql> show tables;顯示數據庫中的表
mysql> describe 表名顯示數據表的結構;
mysql> drop table MyClass;刪除表
mysql> drop database mydatabase; 刪除數據庫
mysql> desc customers;顯示錶的結構
mysql> insert into customers(userid, username) values(1, 'hujiahui');插入數據
mysql> commit;讓操作及時生效;
mysql> select * from customers;查詢
mysql> update customers set username='DennisHu' where userid=1;更新
mysql> delete from customers;刪除表記錄


添加數據庫用戶:
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
給用戶添加所有權限:
mysql> GRANT ALL ON *.* TO 'myuser'@'localhost';

mysql> FLUSH PRIVILEGES;(刷新權限使之生效)

【修改mysql數據庫密碼】
# mysql
mysql> use superbtent2014_cn;
mysql> UPDATE user SET password=password("vSVas5wbi0B8cv") WHERE user='superbtent2014';   
mysql> flush privileges;//這個命令是希望不重啓mysql也能生效。
mysql> exit; 

ignoring query to other database

【編輯mysql數據庫】
create table table1(id int auto_increment primary key,...)創建表時設置自增id
alter table table1 add id int auto_increment primary key 自增字段,
alter table users AUTO_INCREMENT=10000;設置自增id從1000開始
mysql> create table t5 (id int auto_increment,name varchar(20) primary key,key(id)); 
mysql> insert into t5 (id,name) values ('','test');

【導出mysql表】
mysql> describe name;顯示錶結構
select * from 表名; 顯示錶中所有的記錄

導出整個數據庫:
mysqldump -u username -p test > /home/data/test.sql
說明:username是數據庫用戶名,test源數據庫,回車,輸入數據庫密碼,就進行導入操作了!目標文件路徑爲/home/data/
 
2.2、導出數據庫中某張表:
mysqldump -u username -p test documents > /home/data/test.sql
說明:導出數據庫test中的documents表到目標目錄。

【數據類型(dateType)】  【字符 char,varchar,nvarchar數字 int,decimal,float日期 datetime 二進制 image等】


顯示錶格列的屬性:show columns from tableName;

alter table tabelName add column fieldName dateType;增加一個字段
alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;增加多個字段

插入新記錄
insert into name values('','張三','男','1971-10-01'); 更新記錄
delete from name where xm='張三';刪除紀錄

更新記錄
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

刪除
DELETE FROM 表名稱 WHERE 列名稱 = 值

MySQL ALTER TABLE table_name DROP field_name;刪除字段

查看數據庫
select * from 表名;


授權:
grant select, insert, update, delete on *.* to hjh@localhost indentified by "123456";
grant all on husidb.* to john@localhost identified by ’201314’;  
GRANT 許可權 ON 數據庫名.表名 TO 新用戶名@主機名 IDENTIFIED BY '密碼';  


導出數據庫(數據庫和表結構):
【★】【★】【★】【★】
【mysqldump -uroot -p abc > abc.sql; 】 【(mysqldump -u用戶名 -p密碼 數據庫名 > 數據庫名.sql)】【★】
【★】【★】【★】【★】
導入數據庫
mysql>create database abc;創建數據庫
mysql>use abc;選擇數據庫
mysql>set names utf8;選擇編碼
mysql>source /home/bakup/backup/weixin_taobaocat.sql;選擇路徑 

如果已經有數據庫了,只是導入單表,只要這樣就ok了:(先登陸,選擇wedding表,source一下搞定)
mysql> use test;
mysql>source /www/web/test/test.sql
不過這樣速度好慢,mysql -u root -p test < test.sql試試
【把innodb_flush_log_at_trx_commit這個參數改爲0    然後重啓數據庫  應該比你原來速度快100倍】


也可以直接導入:
#mysql -uabc_f -p abc < abc.sql;(mysql -u用戶名 -p密碼 數據庫名 < 數據庫名.sql)
#[路徑]mysql -uroot -p***  < /usr/local/sphinx/etc/example.sql

試試這個:
#mysql -uroot -p***  cai001< /usr/local/sphinx/etc/example.sql

mysql -usuperbtent2014 -pvSVas5wbi0B8cv superbtent2014_cn< /home/bakup/backup/superbtent2014_cn.sql;

退出:quit


【注:最詳細的Mysql命令在w3school,直接查即可:http://www.w3school.com.cn/sql/sql_insert.asp】

【mysql開始,停止,重啓】
1、查看mysql版本
方法一:status;
方法二:select version();

2、Mysql啓動、停止、重啓常用命令
a、啓動方式
1、使用 service 啓動:
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)

2、使用 mysqld 腳本啓動:
/etc/inint.d/mysqld start

3、使用 safe_mysqld 啓動:
safe_mysqld&

b、停止
1、使用 service 啓動:
service mysqld stop

2、使用 mysqld 腳本啓動:
/etc/inint.d/mysqld stop

3、mysqladmin shutdown

c、重啓
1、使用 service 啓動:
service mysqld restart 
service mysql restart (5.5.7版本命令)

2、使用 mysqld 腳本啓動:
/etc/init.d/mysqld restart


【Apache 服務器】
配置文件:/etc/httpd/conf/httpd.conf
服務器的根目錄:/etc/httpd
根文檔目錄:/var/www/html
訪問日至文件:/var/log/httpd/access_log
錯誤日至文件:/var/log/httpd/error_log

apache 的啓動 service httpd start
apache 的停止 service httpd stop
apache 的重新啓動 service httpd restart


apache重新啓動命令:(進入到Apache的安裝目錄)

11.3.1 主配置文件介紹
各字段介紹:
ServerRoot:設定 Apache 安裝的絕對路徑
TimeOut:設定服務器接收至完成的最長等待時間
KeepAlive:設定服務器是否開啓連續請求功能
MaxKeepAliveRequests:設定服務器所能接受的最大連續請求量
KeepAliveTimeout:使用者 ‘連續’ 請求的等待時間上限

一般主要配置字段
1、AccessFileName 
默認值:AccessFileName .htaccess 
此命令是針對目錄的訪問控制文件的名稱; 
2、BindAddress 
默認值:BindAddress *
設置服務器監聽的 IP 地址; 
3、DefaultType 
默認值:DefaultType text/html 
服務器不知道文件類型時,用缺省值通知客戶端; 
4、DocumentRoot 
默認值:DocumentRoot “/var/www/html/”
設置 Apache 提供文件服務的目錄; 
5、ErrorDocument 
設置當有問題發生時,Apache 所做的反應; 
6、<IfModule>
使用不包含在 Apache 安裝中的模塊的命令 
7、Include 
包含其它的配置文件 
8、Listen 
默認值:所有能夠連接到服務器的 IP 地址
指定如何響應除去 Port 指定的端口地址外的地址請求; 
9、Options 
控制某個特定目錄所能使用的服務器功能; 


【FTP】
配置本地用戶的 ftp 服務器
需要使用用戶和密碼來訪問的 ftp 服務器
1、編輯主配置文件/etc/vsftpd/vsftpd.conf,第 97 行,鎖定所有用戶的主目錄
chroot_local_user=YES
2、重新啓動服務
對用戶限制下載速度
1、編輯主配置文件
anon_max_rate=50000
local_max_rate=200000
單位爲 byte/s
2、重新啓動服務即可
40 / 45
18. Iptables 防火牆

【瀏覽器】
[root@bogon?lib]#?curl?-I?http://192.168.0.71/


【進程】
pkill 軟件進程名,如:pkill varnishd
lsof -i:9312這是查看某端口號開了沒有
lsof [options] filename查看某軟件運行了沒有
netstat -an這個是查看網咯端口
netstat -ntlp

ps -ef |grep searchd 這個是查看進程的,最少2個纔有此進程

netstat -nlp | grep 9312開通端口
netstat -antulp | grep searchd啓動某程序

防火牆開啓端口:
iptables -A INPUT -p tcp --dport 9312 -j ACCEP
iptables -A INPUT -p udp --dport 9312 -j ACCEP

lsof輸出各列信息的意義如下:

COMMAND:進程的名稱 PID:進程標識符
USER:進程所有者
FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等 TYPE:文件類型,如DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:文件的大小
NODE:索引節點(文件在磁盤上的標識)
NAME:打開文件的確切名稱

【lynx瀏覽器使用】

find一下lynx的目錄,進入
./lynx  http://www.alibaba.com  //這樣就進入了你想要進入的網址了

 Lynx的簡要使用說明:

移動命令:
下方向鍵:頁面上的下一個鏈接(用高亮度顯示)。
上方向鍵:頁面上的前一個鏈接(用高亮度顯示)。
回車和右方向鍵:
跳轉到鏈接指向的地址。
左方向鍵:回到上一個頁面。

滾動命令:
+,Page-Down,Space,Ctrl+f:
向下翻頁。
-,Page-Up,b,Ctrl+b:
向上翻頁。
Ctrl+a: 移動到當前頁的最前面。
Ctrl+e: 移動到當前頁的最後面。
Ctrl+n: 向下翻兩行。
Ctrl+p: 往回翻兩行。
): 向下翻半頁。
(: 往回翻半頁。
#: 回到當前頁的 Toolbar 或 Banner。

文件操作命令:

c: 建立一個新文件。
d: 下載選中的文件。
E: 編輯選中的文件。
f: 爲當前文件顯示一個選項菜單。
m: 修改選中文件的名字或位置。
r: 刪除選中的文件。
t: Tag highlighted file。
u: 上載一個文件到當前目錄。

其他命令:

?,h: 幫助。
a: 把當前鏈接加入到一個書籤文件裏。
c: 向頁面的擁有者發送意見或建議。
d: 下載當前鏈接。
e: 編輯當前文件。
g: 跳轉到一個用戶指定的URL或文件。
G: 編輯當前頁的URL,並跳轉到這個URL。
i: 顯示文檔索引。
j: 執行預先定義的“短”命令。
k: 顯示鍵盤命令列表。
l: 列出當前頁上所有鏈接的地址。
m: 回到首頁。
o: 設置選項。
p: 把當前頁輸出到文件,e-mail,打印機或其他地方。
q: 退出。
/: 在當前頁內查找字符串。
s: 在外部搜索輸入的字符串。
n: 搜索下一個。
v: 查看一個書籤文件。
V: 跳轉到訪問過的地址。
x: 不使用緩存。
z: 停止當前傳輸。
[backspace]:
跳轉到歷史頁(同 V 命令)。
=: 顯示當前頁的信息。
: 查看當前頁的源代碼。
!: 回到shell提示符下。
_: 清除當前任務的所有授權信息。
*: 圖形鏈接模式的切換開關。
@: 8位傳輸模式或CJK模式的切換開關。
[: pseudo_inlines 模式的切換開關。
]: 爲當前頁或當前鏈接發送一個“HEAD”請求。
Ctrl+r: 重新裝如當前頁並且刷新屏幕。
Ctrl+w: 刷新屏幕。
Ctrl+u: 刪除輸入的行。
Ctrl+g: 取消輸入或者傳送。
Ctrl+t: 跟蹤模式的切換開關。
;: 看 Lynx 對當前任務的跟蹤記錄。
Ctrl+k: 調用 Cookie Jar 頁。
數字鍵: 到後面的第 n 個鏈接。


【防火牆】
================【以下是Linux所有程序記錄】==========================

/home/lamp/apache
/home/lamp/mysql
/home/lamp/php
/home/lamp/sphinx直接解壓在這個目錄了,版本是sphinx-2.2.9-release


/usr/local/sphinx安裝在這個目錄,以後這個就是sphinx默認的目錄了

/lamp/mysql/data/mysql.sock這個文件要有,但是它是這樣寫的:
sql_sock    =  /tmp/mysql.sock(tmp就是目錄的意思,應該是代表相對目錄了)

================【找到mysql目錄】============
[root@localhost sphinx]# find / -name mysql
/home/lamp/mysql
/home/lamp/mysql/data/mysql
/home/lamp/mysql/lib/mysql
/home/lamp/mysql/bin/mysql
/home/lamp/mysql/share/mysql
/home/lamp/mysql/include/mysql
/bin/mysql
/var/lock/subsys/mysql
/var/lib/mysql
/var/spool/mail/mysql
/usr/share/mysql
/usr/lib64/mysql
/usr/bin/mysql
/usr/EZHTTP-master/soft/mysql-5.1.73/include/mysql
/usr/EZHTTP-master/soft/mysql-5.1.73/client/.libs/mysql
/usr/EZHTTP-master/soft/mysql-5.1.73/client/mysql
/usr/EZHTTP-master/soft/mysql-5.1.73/win/data/mysql
/usr/EZHTTP-master/soft/php-5.2.17/ext/mysql

================【找到sphinx目錄】============
[root@localhost ~]# find / -name sphinx
/etc/sphinx
/etc/logrotate.d/sphinx
/var/log/sphinx
/var/lib/sphinx
/var/run/sphinx
/usr/share/sphinx
/usr/share/sphinx/api/ruby/lib/sphinx
/usr/share/sphinx/api/ruby/spec/sphinx
/usr/local/sphinx


現在遇到的問題是
1、sphinx的 mysql 頭文件沒有配置
2、yum安裝,mysql測試表 tent1不知道在哪裏了


================【配置sphinx.conf文件】============
sphinx.conf文件路徑是在/usr/local/sphinx/etc/sphinx.conf中

---1、sphinx.conf的內容組成------------
source 源名稱1{

}
index 索引名稱1{
source=源名稱1

}
source 源名稱2{

}
index 索引名稱2{
source = 源名稱2

}
indexer{

}
searchd{

}

---2、sphinx.conf配置說明------------

a.Source部分配置項說明

#type 數據庫類型,目前支持mysql與pgsql
#strip_html 是否去掉html標籤
#sql_host 數據庫主機地址
#sql_user 數據庫用戶名
#sql_pass 數據庫密碼
#sql_db   數據庫名稱
#sql_port 數據庫採用的端口
#sql_query_pre 執行sql前要設置的字符集,用utf8必須SET NAMES utf8
#sql_query  全文檢索要顯示的內容,在這裏儘可能不使用where或group by,將where與
 groupby的內容交給sphinx,由sphinx進行條件過濾與groupby效率會更高
#注意:select 出來的字段必須至少包括一個唯一主鍵(ARTICLESID)以及要全文檢索的
       字段,你計劃原本在where中要用到的字段也要select出來
#這裏不用使用orderby
#sql_attr_開頭的表示一些屬性字段,你原計劃要用在where,orderby,groupby中的字段要
 在這裏定義
#根據我們原先的SQL:
#select * from eht_articles where title like ? and catalogid=? And edituserid=? \
And addtime between ? and ? order by hits desc
#我們需要對catalogid,edituserid,addtime,hits進行屬性定義(這四個字段也要在select的
字段列表中),定義時不同的字段類型有不同的屬性名稱,具體可以見sphinx.conf.in中的說明


b.index部分配置項說明

#source 數據源名
#path   索引記錄存放目錄,如d:/sphinx/data/cgfinal,實際存放時會存放在d:/sphinx/data目
錄,然後創建多個cgfinal名稱,不同擴展名的索引文件。
#其他的配置如min_word_len,charset_type,charset_table,ngrams_chars,ngram_len這些則是支
持中文檢索需要設置的內容。
#如果檢索的不是中文,則charset_table,ngrams_chars,min_word_len就要設置不同的內容,具
體官方網站的論壇中有很多,大家可以去搜索看看。

---2、sphinx.conf配置實操------------

安裝包
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
[root@localhost src]# tar zxvf sphinx-0.9.9.tar.gz
[root@localhost local]# cd sphinx-0.9.9
[root@localhost sphinx-0.9.9]# ./configure –prefix=/usr/local/sphinx #注意:這裏sphinx已經默認支持了mysql
[root@localhost sphinx-0.9.9]# make && make install # 其中的“警告”可以忽略


3.2、進入配置文件,準備編輯:
[root@localhost ~]#cd /usr/local/sphinx/etc #進入sphinx的配置文件目錄
[root@localhost etc]# cp sphinx.conf.dist sphinx.conf #新建Sphinx配置文件
[root@localhost etc]# vim sphinx.conf #編輯sphinx.conf


##### 索引源 ###########

我們準備的數據庫是:
Mysql db :test
Mysql 表:test.sphinx_article
mysql> desc sphinx_article;
-----------------------------

source article_src
{
type = mysql    #####數據源類型
sql_host = 192.168.1.10    ######mysql主機
sql_user = root   ########mysql用戶名
sql_pass = pwd############mysql密碼
sql_db = test #########mysql數據庫名
sql_port= 3306 ###########mysql端口
sql_query_pre = SET NAMES UTF8 ###mysql檢索編碼,特別要注意這點,很多人中文檢索不到是數據庫的編碼是GBK或其他非UTF8
sql_query = SELECT id,title,cat_id,member_id,content,created FROM sphinx_article ####### 獲取數據的sql


#####以下是用來過濾或條件查詢的屬性############

sql_attr_uint = cat_id ######## 無符號整數屬性
sql_attr_uint = member_id
sql_attr_timestamp = created ############ UNIX時間戳屬性

sql_query_info = select * from sphinx_article where id=$id ######### 用於命令界面端(CLI)調用的測試

}


### 索引 ###

index article
{
source = article_src ####聲明索引源
path = /usr/local/sphinx/var/data/article #######索引文件存放路徑及索引的文件名
docinfo = extern ##### 文檔信息存儲方式
mlock = 0 ###緩存數據內存鎖定
morphology = none #### 形態學(對中文無效)
min_word_len = 1 #### 索引的詞最小長度
charset_type = utf-8 #####數據編碼


######### 索引器配置 #####
indexer
{
mem_limit = 256M ####### 內存限制
}

############ sphinx 服務進程 ########
searchd
{
#listen = 9312 ### 監聽端口,在此版本開始,官方已在IANA獲得正式授權的9312端口,以前版本默認的是3312

log = /usr/local/sphinx/var/log/searchd.log 
#### 服務進程日誌 ,一旦sphinx出現異常,基本上可以從這裏查詢有效信息,輪換(rotate)出的問題一般可在此尋到答案
query_log = /usr/local/sphinx/var/log/query.log 
### 客戶端查詢日誌,筆者注:若欲對一些關鍵詞進行統計,可以分析此日誌文件
read_timeout = 5 ## 請求超時
max_children = 30 ### 同時可執行的最大searchd 進程數
pid_file = /usr/local/sphinx/var/log/searchd.pid #######進程ID文件
max_matches = 1000 ### 查詢結果的最大返回數
seamless_rotate = 1 ### 是否支持無縫切換,做增量索引時通常需要
}

3.3、建立索引文件
[root@localhost sphinx]# bin/indexer -c etc/sphinx.conf article ### 建立索引文件的命令
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file ‘etc/sphinx.conf’…
indexing index ‘article’…
collected 1000 docs, 0.2 MB
sorted 0.4 Mhits, 99.6% done
total 1000 docs, 210559 bytes
total 3.585 sec, 58723 bytes/sec, 278.89 docs/sec
total 2 reads, 0.031 sec, 1428.8 kb/call avg, 15.6 msec/call avg
total 11 writes, 0.032 sec, 671.6 kb/call avg, 2.9 msec/call avg
[root@localhost sphinx]#
出現以上代表已經索引成功,若不成功的話請根據提示的錯誤修改配置文件,或到這裏提問,我看到後會儘快解決


----------------------------------------------
sphinx配置文件參數說明:


http://sphinxsearch.com/files/sphinx-2.1.3-release.tar.gz
http://sphinxsearch.com/fies/sphinx-2.2.6-release.tar.gz


in-2.2.6版本會遇到一個問題

#minimal sphinx configuration sample(clean,simple,fuction)

#################全局sphinx配置 start#############################

indexer
{
 men_limit   = 32M #索引使用內存的最大限制,根據機器情況而定,太小會影響索引性能,一般256m~1024M即可,太大的值可能會造成數據庫超時
 write_buffer  =4M #寫緩存區的大小,單位是字節。可選選項,默認值1MB。寫緩衝區越大則所需的磁盤寫入次數越少(能少量提升索引建立速度),緩衝區使用的內存不計入
 men_limit    選項的值,注意對於不同的文件,會分配多個緩衝區(目前最多4個),這回引起內容佔用增加

}

searchd
{
  listen    =9312
  listen    =9306:mysql141
  log       =
  query_log =

  read_timeout =5
  max_children  =30 子進程最大的數值(或者說並行執行的搜索數目),可選項,默認爲0,不限制。用來控制服務器負載,當達到限制時,新的輸入客戶端會被臨時失敗狀態碼,,,,服務器已到最大連接限制消息。


http://coreseek.cn/docs/coreseek_4.1-sphinx_2.0.1-beta.html#conf-morphlogy


常用screen參數:
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 重新會話,回到yourname這個session
screen -d yourname -> 遠程detach某個session
screen -d -r yourname -> 結束當前session並回到yourname這個session


--------------------------------------------------
nginx啓動、重啓、關閉

一、啓動  

 View Code
二、重啓

  更改配置重啓nginx  

kill -HUP 主進程號或進程號文件路徑
或者使用
cd /usr/local/nginx/sbin
./nginx -s reload
    判斷配置文件是否正確 

nginx -t -c /usr/local/nginx/conf/nginx.conf
或者
cd  /usr/local/nginx/sbin
./nginx -t
三、關閉

  查詢nginx主進程號

  ps -ef | grep nginx

  從容停止   kill -QUIT 主進程號

  快速停止   kill -TERM 主進程號

  強制停止   kill -9 nginx

  若nginx.conf配置了pid文件路徑,如果沒有,則在logs目錄下

  kill -信號類型 '/usr/local/nginx/logs/nginx.pid'

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

lnmp restart重啓lnmp


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章