linux常用命令与经验总结

LNMP1.4最新稳定版本环境安装:
wget -c http://soft3.vpser.net/lnmp/lnmp1.4-full.tar.gz && tar zxf lnmp1.4-full.tar.gz && cd lnmp1.4-full && ./install.sh lnmp
LNMP1.5最新稳定版本环境安装:
wget -c http://soft3.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

装好系统第一件事:分区磁盘,把数据库和网站目录移到 数据盘(/mnt)
改密码
改超时
#vi /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400
-----------------------------------------------------------------------------------------------


LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/        /usr/local/php/etc/php.ini
域名解析目录:/usr/local/nginx/conf/vhost
查看linux安装环境(版本信息):cat /etc/issue

重启LNMP,输入命令:/root/lnmp restart
LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机
lnmp vhost {add|list|del}  LNMP 1.2开始使用lnmp命令进行管理
lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
service mysqld restart  #重启数据库*****
----------------------------------------------------------------------------------------
常用命令:
按住Ctrl再按Backspace键删除

按住Shift+Insert键 粘贴(插入)

#cd /home/wwwroot/szjk91.com  定位的文件夹

#dir   显示目录文件

#unzip web.zip  linux下解压命令

zip -r filename.zip filename  linux下压缩命令   #安装 yum install -y unzip zip

rm -rf 路径/*   删除某目录下所有文件

cp -r file1 file2  复制一个文件夹到另外一个目录

chmod -R 777 /www    修改文件夹权限 

wget -c url dirname   #远程文件下载

ctrl+z回到root根目录

shutdown -r now  #重启系统 reboot

chkconfig mysql on  #设置mysql开机自启动

chkconfig nginx on  #设置nginx开机自启动

chattr -i /目录/.user.ini #无法删除“.user.ini”文件解决方法,运行后删除即可

grep -r oldstring /usr/local/nginx/conf/vhost  #查找/usr/src目录下的文件(包含子目录)包含magic的行

grep -rl oldstring dirname/ | xargs sed -i 's/oldstring/newstring/g'  ##linux批量查找替换文件内容

iftop -i eth1 #查看公网网络带宽使用情况****

top  #查看所有进程命令*****
-----------------------------------------------------------------------------------------
iftop安装教程
1,CentOS上安装所需依赖包:
yum install flex byacc  libpcap ncurses ncurses-devel libpcap-devel
2,下载iftop
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
3,运行iftop
iftop -i eth1 
-----------------------------------------------------------------------------------------
nginx配置404错误页面(必须删除原网站配置文件conf)
1、更改/usr/local/nginx/conf/nginx.conf在http定义区域加入: fastcgi_intercept_errors on; 
2、在单独网站配置文件server 区域加入: error_page 404  /404.html 
3、测试nginx.conf正确性:/usr/local/nginx/sbin/nginx -t
4、重启nginx:/usr/local/nginx/sbin/nginx -s reload
------------------------------------------------------------------------
403 forbidden nginx 站点目录权限问题,给权限就可以
chmod -R 777 目录


--------------------------------------------------------------------
常用 VI文本编辑器 命令
打开/创建文件: vi 文件名
进入编辑状态:i  (左下角显示--INSERT--)

退出编辑状态:按Esc或Ctrl+enter,(左下角显示文件名或为空)
保存并退出 :wq
-------------------
:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

查找:
1、命令模式下输入“/字符串”,例如“/Section 3”。
2、如果查找下一个,按“n”即可
------------------------------------------------------------------------------------------
关于磁盘分区常用命令:
df -hl #查看各盘空间大小命令

ls -lht  #将会一一列出当前目录下所有文件的大小

du -sh *  #查看各个目录大小命令*****

fdisk -l   #查看新的分区命令

mtr ip  #指令进行跟踪测试服务器丢包方法

No input file specified  #删除域名,重新绑定
---------------------------------------------------------------------------------------------
如何在Linux下清除、删除系统日志

不要使用rm命令直接删除!!!
一般系统日志在/var/log/ 下,可以ls -lh /var/log/ 看一下占用的大小

可以使用cat /dev/null > logfile 进行日志删除

cat /dev/null > /var/log/syslog
cat /dev/null > /var/adm/sylog
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/mail.info

------------------------------------------------------------------------------------------
window数据库导出到linux数据库导入操作命令
window下先进cmd->E:
E:->cd E:\vhost\mysql\bin> 
E:\vhost\mysql\bin>mysqldump -uroot -p test > test.sql
导出sql文件到bin目录下,然后通过linux命令wget远程下载到指定目录

在linux下进mysql导入
mysql> drop database test;  (删除test这个数据库,只是测试用,所以先删除这个数据库)
mysql>create database test; (建立一个空数据库,用来做导入用)
mysql>use test; (进入test数据库)
mysql>source /usr/local/mysql/var/test.sql    (使用source命令将源数据库test.sql导入到test)

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

SSH-centos 中文 乱码问题解决
方法一:
export LC_ALL=zh_CN      # for linux: zh_CN         
export LANG=zh_CN        # for linux: zh_CN
方法二:
修改/etc/sysconfig/i18n文件
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
修改 /etc/profile增加
export LC_ALL=zh_CN      # for linux: zh_CN         
export LANG=zh_CN        # for linux: zh_CN
即可解决 

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

Linux如何更改root用户密码
进入命令提示界面..键入passwd,就会提示你键入新的密码

--------------------------------------------------------------------------------------------
修改dede后台密码:
Update `dede_admin` set pwd='f297a57a5a743894a0e4' where userid='admin'    //修改后密码为admin

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

Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题的解决
这种问题需要强行重新修改密码,方法如下:
/etc/init.d/mysql stop   (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接
[root@localhost ~]# 
mysql>use mysql
mysql>update user set password=password("mmawqq1199") where user="root";
mysql>flush privileges;
mysql>exit
pkill -KILL -t pts/0 可将pts为0的**用户(之前运行mysqld_safe的用户窗口)强制踢出
正常启动 MySQL:/etc/init.d/mysql start   (service mysqld start)


update sys_admin set pass=password("mima123101") where name="admin";

------添加新用户-----------
1.登录mysql
#mysql -u root -p
2.新增用户   insert into mysql.user(Host,User,Password) values("localhost","xxx",password("***"));
注释:xxx为新建用户名,***为用户密码
3.刷新权限表  flush privileges;

4.赋予用户权限   grant all on *.* to xxx@localhost identified by "***";

5.flush privileges;

6.select user,host,password from mysql.user;
-------------------------------------------------------------------------------------------
mysql 远程连接配置:mysql -h 123.206.88.245 -uwebadm -pwebadm1199

登录被授权服务器mysql,#mysql -u root -p,然后如下:
1,mysql>GRANT ALL PRIVILEGES ON *.* TO 'webadm'@'139.199.16.155' IDENTIFIED BY 'webadm1199' WITH GRANT OPTION;

2,重载授权表:
FLUSH PRIVILEGES;

3,进行删除授权操作:
REVOKE all on TEST-DB from user;
****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
4,最后从用户表内清除用户:
>use mysql;
>DELETE FROM user WHERE user="webadm";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit

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

Linux关闭防火墙命令
重启后永久性生效
开启 chkconfig iptables on
关闭 chkconfig iptables off
即时生效,重启后失效
开启 service iptables start
关闭 service iptables stop

-------------------------------------------------------------------------------------------
(PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP') in php.ini 错误

由于在PHP最新的版本中增加了一个配置项目“request_order”,默认值为“GP”,这个存在一定的安全风险。这里我们建议用户将配置更改为“CGP”

可以在phpinfo中查看对应的php.ini配置目录,找到下面选项:
request_order = "GP"
更改为
request_order = "CGP"
重启服务器后即可。

------------------------------------------------------------------------------------------
设置服务器向SSH客户端连接会话超时
#vim /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400

----------------------------------------------------------------------------------
解决apache服务添加多个域名,指向同一个路径的问题
查找文件:/etc/httpd/conf/httpd.conf 
找到#ServerName www.example.com:80   把#去掉
找到#NameVirtualHost *:80把#去掉
httpd -k restart  重启OK

----------------------------------------------------------------------------------------
首次配置网站无法访问,配置防火墙,开启80端口、3306端口,关闭selinux
1、
/etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
2、
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器


-------------------------------------------------------------------------------------
Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

1、通过SSH,给数据库文件777权限,admin是我的数据库文件夹
chmod -R 0777 /usr/local/mysql/var/admin/
2、给数据库目录的所属用户和组改为MySQL
chown -R mysql:mysql admin
3、找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 里面,还需要运行以下命令:
./mysqladmin -u root -p flush-tables
之后输入root账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完成。

**************************************************************************

重启服务器,/tmp/mysql.sock 文件丢失,可能是磁盘满了。(查看磁盘:df -lh)
mysql无法启动,可能是磁盘满了。
试试:service mysql start

删除数据库目录下(/usr/local/mysql/var)  mysql-bin.*,所有文件,*.centos.err文件

解决这个错误很简单,因为/tmp/mysql.sock不存在,用这样的方法:
 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

订单后台登录不了,mysql登录不了,系统盘满了,清理磁盘
(注:运行重装系统可清理磁盘:cd lnmp1.3-full && ./install.sh lnmp)

******mysql无法启动 解决办法:*********

1,# service mysqld stop
MySQL manager or server PID file could not be found!       [FAILED]

2,查看进程:ps aux |grep mysq*

3,关闭进程:# kill 10274

4,# service mysql start

如果杀掉进程之后还是不行。
具体要看报错信息 如果没有指定日志路径 一般在是 /data/mysql 中的*.centos.err文件中可以看到信息。
如果线程中无死进程 可以先看 service mysql status 看下状态 根据提示删掉多余的东西 
进入/data/mysql 也就是你的数据库目录 把多余的删除,包括*.centos.err 和其他 mysql-bin.index等东西
如果 多重启几次  一直执行 service mysql start 就可以重启成功了

**************************************************************************
MySQL提示:The server quit without updating PID file问题的解决办法
ERROR! The server quit without updating PID file (/usr/local/mysql/var/MyServer.pid).

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

---------linux系统重装mysql数据库:----------------

首先备份数据库:
1.停掉mysql服务器:
service mysqld stop   #lnmp1.4使用:lnmp mysql stop
2.下面新目录以/mnt/data 为例,然后复制旧目录的数据库到新目录:
cp -R /usr/local/mysql/var/* /mnt/data
3.将新目录赋权为mysql用户组:
chown mysql:mysql -R /mnt/data
4.再修改配置文件:
vi /etc/my.cnf
查找[mysqld] ,在下面加入datadir = /mnt/data 保存
5.启动mysql:
service mysqld start   #lnmp1.4使用:lnmp mysql start

其次,卸载数据库:
service mysqld stop
yum remove mysql  
killall mysqld
rm -rf /usr/local/mysql
rm /etc/init.d/mysql


最后安装数据库:
yum install mysql mysql-server mysql-libs

再输入service mysqld restart

成功解决问题。

(注:lnmp自带数据库重新安装:cd lnmp1.3-full && ./install.sh lnmp)

************************************************************************************

-----------Linux 系统挂载数据盘----https://bbs.aliyun.com/read/118289.html?pos=1--------------------------
适用系统:非IO优化+SSD云盘Linux(Redhat , CentOS,Debian,Ubuntu)实例,IO优化实例+SSD云盘数据盘分区挂载建议使用脚本:工具:auto_fdisk_ssd.sh

*  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。

下面的操作将会把数据盘划分为一个分区来使用。
1、查看数据盘  fdisk -l   (若您执行fdisk -l命令,发现没有 /dev/vdb 表明您的云服务无数据盘,那么您无需进行挂载)

2、对数据盘进行分区
执行“fdisk  /dev/vdb”命令,对数据盘进行分区;
根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。

3、 查看新的分区
使用“fdisk -l”命令可以看到,新的分区vdb1已经建立完成了。

4、格式化新分区
以ext3为例:使用“mkfs.ext3 /dev/vdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。

5、添加分区信息
使用echo '/dev/vdb1  /mnt ext3    defaults    0  0' >> /etc/fstab  #命令写入新分区信息。
然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。

6、挂载新分区
使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了。

-----------------------------------------------------------------------------------------------------------------
提供服务器负载情况截图:top
提供服务器的并发情况:执行命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
截图

-------------------------------------------------------------------------------------------
拒绝了我们的连接请求,nginx: [error] invalid PID number "" in "/usr/local/webserver/nginx/logs/nginx.pid"
nginx -c /usr/local/nginx/conf/nginx.conf
nginx -s reload
----------------------------------------------------------------------------------
安全狗使用介绍:
直接运行命令:sdui
即可进入软件操作界面,进入软件后,请详细阅读每个界面最底部的操作提示,按操作提示进行操作。
使用:sdstart
可以重启安全狗服务。
1、wget http://down.safedog.cn/safedog_linux64.tar.gz

2、tar xzvf safedog_linux64.tar.gz

3、ls

4、cd safedog_an_linux64_2.8.19002

5、chmod +x *.py

6、./install.py

----------------------------------------------------------
服务器禁ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
恢复ping可以执行命令
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
--------------------------------------------------------
服务器禁止对外发包
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


iptables -A OUTPUT -j DROP
-----------------------------
linux上用iptables禁止指定IP访问服务器
iptables -I INPUT -s 61.146.178.35 -j DROP    ##禁止单个IP
iptables -I INPUT -s 223.85.37.0/24 -j DROP  ##禁止IP段访问

iptables -I INPUT -s 222.186.45.73 -p tcp --dport 80 -j ACCEPT  #允许单个IP

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

访问网站,提示No input file specified错误,删除网站根目录下.user.ini文件,
重新绑定域名即可!

-----------------------------------------------------------------------------
linux下载创建ftp服务器(rpm -qa | grep ftp #查看是否安装vsftp)服务器要开启21端口
1.yum -y install vsftpd 
 
2.然后启动ftp:service vsftpd restart  ###或者 /etc/rc.d/init.d/vsftpd restart

3.a、useradd -d /mnt/seoftp seouser  
  b、usermod -s /sbin/nologin seouser //限定用户test不能telnet,只能ftp
###usermod -s /sbin/bash test //用户test恢复正常
###usermod -d /test test //更改用户test的主目录为/test


4.设置密码  passwd seouser

5.chown seouser:seouser /mnt/seoftp(给予权限或者chmod -R 777 /mnt/wwwroot)


6. vi /etc/vsftpd/vsftpd.conf    #配置vsftp.conf文件(查看默认配置:cat /etc/vsftpd/vsftpd.conf |grep -v '^#';)

anonymous_enable=NO        #开启禁止匿名用户登录

chroot_local_user=NO      #删除前面的那个#号,开启是否被限制其主目录下

chroot_list_enable=YES       #删除前面的那个#号,表示开启此限制功能

chroot_list_file=/etc/vsftpd/chroot_list  #删除前面的那个#号,表示开启此限制功能

allow_writeable_chroot=YES

#在末尾加入如下2行
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

7.修改 vim /etc/vsftpd/user_list  和 vim /etc/vsftpd/chroot_list

分别添加ftp用户:seouser

8:/bin/systemctl restart vsftpd.service  #重启ftp

使用如下命令查看是否设置成功: 
cat /etc/vsftpd/vsftpd.conf | grep ^[^#] 

ok。。。

参考:http://www.cnblogs.com/shenxiaolin/p/5723962.html
--------------------------------------------------------
#vim /etc/vsftpd/user_conf/xdpf

12.每个FTP虚拟用户都可以独立设置其权限
anon_world_readable_only=NO
anon_upload_enable=YES
download_enable=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/mnt/xinjiang


-----------------攻击篇---------------------------------------
1、netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n #执行后,将会显示服务器上所有的每个IP多少个连接数。

2、wget http://www.inetbase.com/scripts/ddos/install.sh   #下载DDoS deflate
   chmod 0700 install.sh    #添加权限
   ./install.sh             #执行

3、下面是DDoS deflate的默认配置位于/usr/local/ddos/ddos.conf 
    BAN_PERIOD=360000    //禁用IP时间,默认600秒,可根据情况调整

4、查看/usr/local/ddos/ddos.sh文件的第117行

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST

修改为以下代码即可!

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sed -n ‘/[0-9]/p’ | sort | uniq -c | sort -nr > $BAD_IP_LIST

-----------------------------------------------------------------------------------------------------------------------------------------
安装suhosin扩展
[root@lxk ~]# wget https://github.com/sektioneins/suhosin/archive/master.zip
[root@lxk ~]# unzip master.zip 
[root@lxk ~]# cd suhosin-master/
[root@lxk ~]# /usr/local/php/bin/phpize  #用phpize生成configure配置文件
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@lxk suhosin-master]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@lxk suhosin-master]# make && make install
安装完成之后,出现下面的界面,记住以下路径,后面会用到。
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/  #suhosin模块路径

vi /usr/local/php/etc/php.ini #编辑配置文件,在最后一行添加以下内容
extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/suhosin.so
suhosin.executor.disable_eval = on   #注意:suhosin.executor.disable_eval = on 的作用就是禁用eval函数

[root@lxk suhosin-master]# service php-fpm restart     #重启php-fpm
[root@lxk suhosin-master]# service nginx restart  #重启nginx
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值