极速入门Linux

<?php  2015-6-30 by wxj
VMware关键技巧:
shift+alt 鼠标切出
Bridged:共用一块(本地连接)网卡即使用真实网卡,会冲突局域网IP的可能
Host-only: 里面的机器连接到VMware Network Adapter VMnet1网卡了,不与局域网互联,只写本机连通


图形到字符 ctrl+alt+shift+(f1|f2|f3|f4|f5|f6|f7)
字符到图形 altr+(f1|f2|f3|f4|f5|f6|f7)
工具:putty连接操作  winscp文件操作  最专业工具: SecureCRT   再安装个lrzsz


vi /etc/inittab重要文件
id:5:initdefault //把5改成3就从字符界面启动
0 关机  3 字符界面  5 图形界面   6 重启
[root@localhost home]#    [当前用户@主机名 当前目录]# ~代表家目录
i686    x86-64 


目录说明
/root          root用户的家目录
/home          普通用户的家目录
/dev           硬件设备。磁盘管理器,专门用来管理设备的
/media         测试目录,挂载光盘
/mnt           测试目录,挂载U盘
/boot          linux的内核文件和init进程启动文件
/etc           应该程序配置文件
/usr           用户自定义安装的应该程序或源代码
/bin           所有用户都可以执行的命令
/usr/bin       所有用户可以执行的命令
/sbin          root用户可以执行的程序
/sur/sbin      超级用户root才能执行的命令
/var           日志文件目录
/tmp           临时文件夹


常用命令:
ctrl+c         强制中断当前程序
clear 或 ctrl+l清屏
ctrl+u         清空当前命令行
tab键          命令补全功能
whoami         我是谁
ls   ls -lh(K为单位)   ls -lhS(排序)  查看当前目录下有哪些文件
ll看软链接
cd   cd -  快速切换到上一目录  cd ~   cd 回到自己的家目录
ls --help  ls命令的帮助
pwd  查看当前目录的位置
ifconfig    查看网卡上的IP地址
ifconfig eth0 192.168.8.100 临时设置IP地址
service network restart service sendmail stop/restart 停止/重启邮件服务
vi /etc/sysconfig/network-scripts/ifcfg-eth0
设置IP关键几行
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.105
NETMASK=255.255.255.0
GATEWAY=192.168.1.1   
vi file1.txt                  新建文件
touch file2.txt    touch {1..100}.txt   touch .a.txt
rm -rf file1.txt    rm -rf *  删除所有文件和目录
cp file1.txt /mnt             复制文件
mv file1.txt /mnt             移动文件
mv file1.txt file2.txt        重命名
head file1.txt                查看前10行
tail file2.txt                查看后10行
head -5 file3.txt
tail -5 file2.txt
find / -name file(*)            查找文件
updatedb                      查找
locate file2                  文件
ls httpd*     ls -a              
which ls                      查找命令
cat file.txt                  查看文件内容
cat /etc/passwd|grep ^root    查找所在行
cat /etc/passwd|grep -E "^user1|^root"  正则查询
mkdir dir1
rm -rf dir1
cp -R dir1 dir2
mv dir1 dir2
tree dir1
mkdir -p a/b/c/e/f/g/h
mkdir wxj wgc wxj168
mount /dev/cdroom /media      挂载光盘
umount /media 
df 查挂载表   df -Th
ls cdrom
ll cdrom
!c
zip -h
ls --help
man iptables
rpm -qa |grep httpd           查看系统安装的rpm包有没有安装httpd
rpm -ql httpd-2.2.3-43.el5.centos   查看一个rpm包安装了什么,都安装在哪里
useradd wxj
passwd wxj
userdel -r wxj   与wxj有关的文件全删除
id wxj
chkconfig --level 3 httpd on
service httpd restart
pkill -HUP httpd  重载配置文件!!!!






mount -t tmpfs -o size=16m tmpfs /tmp
t表示类型,也就是要挂载文件系统的类型,表明你要挂载的tmpfs是一个tmpfs文件系统;o表示选项,选项里的一个size=100M表示大小是100M,之后就是挂载到/opt/








usermod -l <你要修改的用户名> -d /home/<你要修改的用户名> -m 以前的用户名


压缩包==================================
gz压缩包    国际标准
tar czf wxj.tar.gz file1.txt file2.txt   制作压缩包
tar tf wxj.tar.gz  查看里面文件
tar xzf wxj.tar.gz 解压缩包
tar xzf wxj.tar.gz -C /mnt/   解压到指定目录
zip压缩包
zip file.zip file1.txt file2.txt file3.txt
zip -r /var/aa/  -r递归
unzip -l file.zip
unzip file.zip
网络设置
ifconfig
ifconfig eth0
ifconfig eth0 1962.168.1.6
vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.6
service network restart


DNS:
/etc/resolv.conf
nameserver 202.96.134.133
nameserver 202.96.128.68




防火墙
一.iptables
iptables -L
iptables -L -n  看
iptables -F     清
service iptables save保存同时显示保存路径
二.selinux
sestatus
vi /etc/selinux/config


查看时间
date
date "+%Y-%m-%d %H:%M:%S"
修改时间
date -s "2015/6/29 12:20:36"
查看主机名
hostname
临时修改主机名
hostname serWeb01
永久修改主机名
vi /etc/sysconfig/network
查看运行级别
runlevel


查看系统挂情况================================
df -Th
系统挂载表文件
vi /etc/fstab
测试挂载表文件能否通过
mount -a


查看分区
fdisk -l
从sdb上分3G分区
fdisk /dev/sdb
按n键新分区
按p键建立第一个主分区
开始柱面直接回车
结束柱面+3072M空间
按p键查看分区
按t键修改文件系统
按w键保存退出


格式化成ext3文件系统:
mkfs.ext3 /dev/sdb1


挂载/mnt下使用:
mount /dev/sdb1 /mnt


查看挂载情况
df -Th
卸载
umount /dev/sdb1


软件安装============================================
查看系统中安装的所有rpm包:
rpm -qa                      yum list 带install的
是否安装了httpd文件包
rpm -qa|grep httpd           yum list|grep httpd


统计共有多少个文件
ls |wc -l
安装rpm包
rpm -ivh httpd-2.2.3-43.el5.centos.i386.rpm          yum -y inatall httpd-2.2.3-43.el5.centos.i386.rpm
强制卸载rpm包
rpm -e httpd-2.2.3-43.el5.centos --force --nodeps    yum -y remove httpd-2.2.3-43.el5.centos.i386.rpm
查看了rpm安装了些什么
rpm -ql httpd-2.2.3-43.el5.centos.i386.rpm |more  
==================================================================
修改yum配置文件,以本地光盘为源:
cd /etc/yum.repo.d/
mv CentOS-Base.repo CentOS-Base
vi CentOS-Media.repo
baseurl=file:///media
gpgcheck=0  关闭gpg签名
enabled=1   开启本yum源
用yum安装rpm包
yum list|more
yum工具来安装rpm软件包:
yum -y install httpd* mysql* php*   一键安装lamp
yum工具来卸载rpm软件包
yum -y remove httpd*少用
rpm -e mysql-5.0.77.4.el5_4.2 --nodeps 




步二:cd /etc/yum.repos.d/
步三:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
四:mv CentOS7-Base-163.repo CentOS-Base.repo 
然后 yum clean all






rpm包分安装一般会有三个文件
/usr/sbin/httpd
/etc/httpd/conf/httpd.conf
/etc/init.d/httpd
用户与权限==========================================
useradd wxj2010       添加用户wxj2010
/home/wxj2010         用户wxj2010家目录
userdel -r wxj2010    删除用户
passwd wxj2010        为用户设置密码
id wxj2010            查看用户wxj2010相关信息
usermod -L/-U wxj2010 禁用解禁用户wxj2010
su wxj2010            切换用户


rwxr-xr-x root root rootdir
r读4 w写2 x执行1
root用户(u)  root组内其它用户(g)  root组以外的其它用户(o)
所有人群(a)  a=u+g+o
chmod o-x rootdir
chmod g+w,o-w file.mp3
chomd 755 /mnt/a.txt
查看用户和组:====================================
id wxj2010
把wxj2010加入,移出root组
gpasswd -a wxj2010 root
gpasswd -d wxj2010 root
sudo授权=============================================
visudo
带%是组,不带则是用户
wxj2010 localhost=/usr/sbin/useradd,/usr/sbin/userdel,/sbin/init 6
sudo /usr/sbin/useradd wxj2010
sudo /sbin/init 6
其它用户有权后就可以用了
sudo /usr/sbin/useradd wxj


ACL权限分配
setfacl -m u:wxj2010:rwx /wxjdir
getfacl /wxjdir
setfacl -x u:wxj2010 /wxjdir
setfacl -b /wxjdir
setfacl -m u:apache:rwx -R /www/html/
chown .www /alidata/www/cbdhome/EHome -R
服务管理============================================
查看进程
ps -ef|grep httpd
pstree
pstree -p
查看端口
netstat -tunpl|grep 80
netstat -tunpl|grep httpd
关闭进程
pkill httpd
kill -9 pid
查看服务器性能
top每3秒看一次负载
uptime查看平均负载
last查看服务器重要操作
who同进在线用户
任务计划================================
crontab -e编辑任务计划
crontab -l查看任务计划
crontab -r删除所有任务计划
00 03 * * *  /sbin/init 6  每天3点重启服务器
分时日月周
00 03 * * *      每天3点
30 23 * * *      每天23:30
*/5 * * * *      每隔5分钟
59 23 * * 1-5    周一到周五的23:59
59 23 * * 1,3,5  周一周三周五的23:59


查看任务计划执行日志
tail -f /var/log/cron


ulimit -SHn 65535可以打开的文件个数




ln -s /media/ media


#!/bin/bash
#webbak.sh
date='date "+%Y-%m-%d"'
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/


/bin/bash /root/webbak.sh






重要目录或文件!!
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/resolv.conf
vi /etc/sysconfig/network
vi /etc/inittab
cd /etc/init.d/启动脚本  nginx|mysqld|php-fpm|tomcat7|vsftpd restart/stop
cd /etc/yum.repos.d/
cat /etc/fstab
cat /etc/passwd
cat /etc/shadow
vi /etc/selinux/config
vi /etc/fstab
/bin/mv CentOS-Base.repo CentOS-Base.repo.ori
cat /etc/group|grep wxj
vi /etc/sudoers
/etc/rc.d/init.d/httpd
service httpd restart
cat /var/log/messages
wxj2010:x:500:500::/home/wxj2010:/bin/bash
/etc/group
wxj2010:x:500
wxj2011:!$1$DcTMJDzt$.Nis97MX1gT3epqTWuHUY/:16133:0:99999:7:::
!!说明没有密码
!说明被禁用


http://blog.chinaunix.net/uid-24709751-id-3535308.html
查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
cat /proc/cpuinfo | grep physical | uniq -c 


当前CPU运行在32bit模式下, 但不代表CPU不支持64bit
getconf LONG_BIT








ls 目录 | wc -l
find   ./   -type   d   |   wc   -l     (目录个数)
find   ./   -type   f   |   wc   -l     (文件个数)


chmod  改变文件访问权限 -R递归
chown  改变文件拥有者及用户组  -R递归


chown root a.sh  改变用户拥有者为rot用户
chown oldboy.oldboy a.sh 改变用户拥有者为oldboy(前面那个)和所属组oldboy(后面那个)
chown .root a.sh 改变所属组为root
chown -R oldboy.oldboy oldboy    -R  递归作用




find . -type d -exec chmod 755 {} +  这个是把当前目录下及子目录的属性改成755
find . -type f -exec chmod 644 {} + 这个是把当前目录及子目录中的文件属性改成644




groupadd incahome
adduser oldboy -g incahome
chown oldboy -R /home/oldboy
su - oldboy


./test.sh


















rpm -qa |grep httpd*


tar xzf php-5.2.


./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs






make && make install


AddType application/x-httpd-php


Directory Index


 /usr/local/php/bin/phpize  制作模块


less INSTALL
less README


ErrorLog "logs/error_log";
CustomLog "logs/accuss_log";
AddType application/x=httpd-php.php










apache配置


ServerName www.cbd.com:80  没解析就用IP 则用域名,告诉apache你的主机名,可有可无
DocumentRoot "/user/local/apache2/htmdoc"  网站根目录


Order allow,deny  允许,再拒绝
Allow from all    允许所有人访问
Deny from all     拒绝所有人访问
FollowSymLinks 网站目录允许存在快捷方式   
Indexs  先检查默认首页,不存在就以列表显示
DirectoryIndex












SVN
mkdir -p /var/svn/wxj
svnadmin create /var/svn/wxj
vi authz
[/]
user1=rw


vi passwd
user1=123


vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=/var/svn/wxj


svnserve -dr /var/svn/wxj --listen-pront 3691  启动服务




svn co svn://192.168.28.100 ./




cd /var/svn/wxj/hooks/
cp post-commit.tmpl post-commit
chmod a+x post-commit
vi post-commit
ecport LANG=en_US.UTF-8
svn up --non-interactive --username user1 --passwd 123 '/html/www'






















nginx.conf配置文件,nginx负载均衡配置:
worker_processes  2;
events
{
  use epoll;
  worker_connections 65535;
}


http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile on;
        keepalive_timeout 60;
        include extra/wxj.conf;
}




ream01.conf配置文件内容:
upstream wxj{
        server 192.168.28.101 weight=5;
        server 183.62.214.220 weight=5;
        server 192.168.28.57  weight=5;
}
server{
        listen 80;
        server_name www.wxj.com;
        location / {
                proxy_pass http://wxj;
        }
}






隐藏nginx版本号
1、在http {—}里加上server_tokens off; 如:
2、编辑php-fpm配置文件,如fastcgi.conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改):


找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx;


nginx优化要点
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。


pm 如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量


本服务器配置
1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8




system()
disable_functions=system,phpinfo,shell_exec










LAMP/LNMP编译安装笔记
mkdir
env
mysql
nginx/apache
php
php_extension
说明:phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块

yum install tree nmap sysstat lrzsz dos2unix -y  安装好后 执行一下这个,这装这几条命令,方便以后 你工作用
yum upgrade openssl  bash -y

redis 技术
wget http://download.redis.io/releases/redis-2.8.12.tar.gz


src/redis-server启动
src/redis-cli shutdown  关闭

crontab
分时日月周
00 03 * * *   每天3点  
30 23 * * *   每天23:30
*/5 * * * *   每隔5分钟
59 23 * * 1-5 周一到周五每天23:59
59 23 * * 1,3,5  周一,周三,周5的23:59

crontab
#!/bin/bash
#webbak.sh
date=`date "+%Y-%m-%d"`
zip -r /var/www/web-${date}.zip /var/www/html
mv /var/www/web-${date}.zip /mnt/


创建
crontab -e
查看
crontab -l    crontab -u  -l
*/1 * * * * /alidata/shell/payok_task.sh
删除
crontab -r


0 0 * * 0 /bin/bash  /root/webbak.sh


*/1 * * * *   /bin/chown www.www -R /alidata/www


cat /etc/sudoers
visudo
userwxj loclahost=/usr/sbin/useradd,/usr/sbin/userdel


sudo /usr/useradd wxj03


updatedb
locate httpd



iptables -A INPUT -i lo -j ACCEPT;
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT;
iptables -A INPUT -p tcp --dport 22 -j ACCEPT;
iptables -A INPUT -p tcp --dport 80 -j ACCEPT;
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT;
iptables -P INPUT DROP;
iptables -P OUTPUT ACCEPT;




iptables -t nat -A PREROUTING -d 192.168.8.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.28.57:80


yum upgrade openssl  bash -y






禁ROOT远程登录:

/etc/sudoers
wxj2010   ALL=(ALL)       ALL
visudo -c  检查 语法 






chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/sudoers




chattr -i /etc/passwd
chattr -i /etc/inittab
chattr -i /etc/group
chattr -i /etc/shadow
chattr -i /etc/gshadow
chattr -i /etc/sudoers


备份 sshd配置文件 /etc/ssh/sshd_config
步五: vim /etc/ssh/sshd_config  在文件最后添加如下几行,然后退出保存
Port 52116   ##这个端口主是以后你自已的ssh连接端口,默认是22
UseDNS no
AddressFamily inet
PermitRootLogin no
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication yes


sudo su - 
KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它允许用户在一台物理服务器上创建和管理多个虚拟机。KVM是基于Linux内核的,可以利用Linux提供的功能来创建和管理虚拟机。 首先,你需要确保你的服务器具备虚拟化支持,包括CPU虚拟化扩展(如Intel的VT-x或AMD的AMD-V)和开启了相关的BIOS选项。在确认支持后,你需要安装KVM包及相关工具。 在Linux系统上,你可以通过包管理器安装KVM。一般来说,你需要安装的主要软件包包括qemu-kvm,libvirt,以及一些额外的管理工具(如virt-manager和virt-install)。 安装完成后,你可以创建一个虚拟机的配置文件,并指定虚拟机的硬件资源配置(如CPU和内存),以及虚拟机所使用的镜像文件。虚拟机的镜像文件可以是一个已存在的磁盘镜像,或者你可以创建一个新的镜像。你可以使用qemu-img命令来创建和管理虚拟机的镜像文件。 在创建好虚拟机配置文件后,你可以启动虚拟机。你可以使用virsh命令或virt-manager图形界面工具来管理虚拟机。通过命令行工具,你可以执行一些基本的操作,如启动、停止、暂停、恢复虚拟机等。而通过图形界面工具,你可以更方便地进行虚拟机的操作和管理。 KVM还提供了网络虚拟化功能,它可以让你在虚拟机之间建立虚拟网络,并提供网络连接和通信的能力。你可以通过配置虚拟网络来实现虚拟机之间的互相访问和通信,以及虚拟机与外部网络的连接。 总结来说,KVM是一种基于Linux内核的虚拟化技术,它可以帮助你在一台服务器上创建和管理多个虚拟机。通过安装相关软件包和工具,你可以轻松地创建、启动、停止和管理虚拟机,并实现虚拟机之间的网络连接和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值