1.linux常用命令
Uname -n 和 hostname 查看主机名;
uname -m 查看版本
Uname -r 查看内核版本
rm -rf 非空目录 可以删除非空目录
配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0 配置网络
ONBOOT=yes , dhcp动态网络默认,static就要手动设置IP等;
常用命令:
Mkdir -p 创建嵌套命令;
Man 命令 查看命令的用法用man;
echo “内容” > a.txt 把双引号里面的内容输入a.txt中,再次操作就是把里面的内容覆盖掉,如果不想原来的内容被覆盖掉用两个大于号“>>”,>覆盖 >>不覆盖
eg: echo “内容” >> a.txt 好处不用vim繁琐;
echo 333 >a.txt 111>b.txt 正确的就输入到a.txt, 错误就输入到b.txt;
Cat > a.txt << n (n可以是任意字母) enter后可以输入内容,直到输入n 按下enter后才结束输入。>覆盖 >>不覆盖
Cat 文件 查看文件;
cat -n 文件 查看文件并且显示行号;
Cp 复制命令;
find 绝对路径 类型 。。。
Eg: Find . -name man 在当前目录下查找名称为man的文件
find / -type f ! -name a.txt 在根目录下查找 名称不是 a.txt的文件;
绝对路径:从根目录写起的路径 eg:/etc/sysconfig/network
相对路径:相对于当前的路径 eg : ../...
. 当前目录 .. 当前目录的上层目录 - 前一个目录 ~用户家目录
Cd ../.. ;
Pwd 查看当前路径目录
headfile 默认显示前10行
Head-n file 显示前n行
tail -n file 显示尾部n行 默认显示后10行
这两个一般用来查看log文件
Tab 自动补全
Cat > a.txt << a
<`seq 100`
<a
创建了100行
Seq 1 10 创建从某个数到另一个数之间的所有整数
Linux 三剑客
1、Sed (行)
Sed -n ‘20,30p’ file 查看文件里面20到30行的内容
Head -30 file | tail -11 | 管道符过滤
2、awk (列)
awk ‘{}’
awk '{if(NR<31 && NR >19)printf$1"\n"}' a.txt
3、grep (过滤)
grep “文件”路径 在某个路径下过滤出文件
查找替换功能可以在Vim 编辑器中进行,也可以用sed
sed -i 's#1#haha#g' a.txt (-i永久修改,没有参数-i临时修改)
Sed -i ‘s/原字符/新字符/g’文件名
Sed –e ‘3d’ /liyue/man.txt 临时直接删除/liyue/man.txt 中第3行
Sed –e ‘3,12d’ /liyue/man.txt 临时直接删除/liyue/man.txt中3到12行
Sed -e ’10,$d’ /liyue/man.txt 临时直接删除/liyue/man.txt中10到最后
-i参数永久删除
d就是删除的意思,
sed后面接的动作,请务必以 ” 两个单引号括住喔!
linux常用命令
yum install rpm包或者解压的安装包
Alias 起别名
Unalias 取消别名
rpm -qa httpd 安装软件之前先用这个命令检查查看Linux是否安装默认的这个软件
Yum list 软件包检查是否安装了该软件
Useradd 用户名添加用户名
tail /etc/passwd 查看所有用户名
/etc/shadow
Passwd 用户名添加密码
Passwd -d 用户名删除密码也能登陆
Whoami
Su - 用户名 切换用户
2.Linux服务器前,改下这个文件:
# vim /etc/selinux/config中的 SELINUX=enforcing 改为 disabled
sed -i's#SELINUX=enforcing#SELINUX=disable#g' /etc/selinux/config
setenforce 0 这个命令不用重启就能生效;
Getenforce 查看selinux是什么等级
3.nlevel 查看当前的运行级别
cat /etc/inittab 查看所有的运行级别,如下:
# Default runlevel. The runlevels usedare:
# 0 - halt (Do NOT set initdefault to this)A
# 1 - Single user mode 单用户模式
# 2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11 桌面
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
Init 3 切换到第3个级别
4.chkconfig自启动
Man chkconfig
chkconfig --list mysqld -- 列出这个服务在0~6运行级别开机自启动的情况
chkconfig --list sshd
chkconfig --level 5 mysqld on 设置某个服务在某个运行级别开机自启动
chkconfig mysqld on 设置开机自启动
5.iptables 防火墙
iptables -L -n
service iptables stop 关闭防火墙
service iptables start 开启防火墙
ss -lnt 查看端口
netstat -lnt
diff 比较命令 结果是列出比较的几个文件不同之处
6.配置文件先备份,cp man.config man.config.bat
Which cp
Whereis -b cp man whereis
1> /dev/null 2>/dev/null (销毁文件)
1> /dev/null 2>&1 &1表示2中的和1一样,这两个命令是一样的
export TMOUT=10 设置10s关闭终端TTY
Cat /etc/profile 中查看设置的时间
History -c 删除所有历史记录
History -d 号码 删除对应的历史命令
Ulimit -n 查看文件描述符,进程文件需要一定的文件描述符,如果不够的这个进程就起不来。
ulimit -SHn 65535 修改大小,但没有生效。
vim /etc/sysctl.conf 内核参数的文件
Tree -L 1 /
/etc 放配置文件的目录,/tmp 放置临时文件,/usr 用户文件,/proc 显示内核信息的虚拟文件系统, /mnt 挂载目录,/dev设备文件,/sbin和/bin 存命令的目录
7.Linux服务器:(rpm安装、yum安装、源码安装)
一种是直接用官方打好的rpm或者deb包安装:
优点:方便快捷。安装速度快
缺点:不可定制。
| 1 2 |
|
下面用源码安装,方便可以自定义参数。
1.先创建一个目录;
2.先装Apache,www.apache.org 这个官方网站,选版本最好选一年前的。
3.安装前用rpm -qa http* 检查是否有默认的安装;
4.Wget http://apache.fayea.com/httpd/httpd-2.2.31.tar.gz 下载下来
5.解压这个包,tar -zxvf 包名 解压到当前目录
6.查看 README 和 install文件(用来了解安装)
7.yum install zlib-devel –y
yum install gcc -y 安装C语言编译器
8.安装Apach
cd httpd-2.2.31 一定要切换到这个目录再执行下面的
./configure \
--prefix=/application/apache-2.2.31 \
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-modules=most \
--enable-so \
--with-mpm=worker \
--enable-rewrite
以下是解释:
./configure \ ./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包,楼主可以ls看看有没有configure这个文件,也许你下的是二进制的包,如果是二进制的包,解压后直接就能使用;
(configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在/usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定–sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。)
--prefix= /application/apache2.2.31\ 安装路径
--enable-deflate \ 压缩(提高性能),客户端请求服务器资源压缩包,优点快,宽带小,缺点消耗CPU基本对文本压缩效率更高,但不是什么都压缩,图片可以但是视频就不要压缩。
--enable-expires \ 过期(缓存),作用:当浏览器访问网站时浏览器有缓存时,浏览器打开页面之后,内容在浏览器里缓存着,服务器设置的参数,再次打开就不用下载这部分内容了,但是若网站更新后还是这个内容。
--enable-headers \ 激活headers,http的头部
--enable-modules=most \ 激活大多数常用模块
--enable-so \
--with-mpm=worker \ 工作模式worker,一个主进程生成子进程接收用户请求,prefork进程工作,进程相对安全、稳定、进程的缺点是消耗资源较多,优点稳定,一般worker模式并发会大一些
--enable-rewrite 伪静态功能
9.echo $? 装好软件后用这个命令检查,如果是0 代表没有错误;(装任何软件都行)
10.make && make install (make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。)
(make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。make insatll,这条命令来进行安装(当然有些软件需要先运行 makecheck 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件))
没有错误用这命令编译;
11.echo $?
12.创建软连接
ln -s /application/apache-2.2.31 /application/apache
13.启动Apache
检查语法:/application/apache/bin/apachectl -t
没问题启动Apache :/application/apache/bin/apachectl start
14.查看端口:80
ss -lnt 或者netstat -lnt
查看进程: ps -ef | grep httpd 或者 ps -Af | grephttpd
httpd-mpm.conf 性能调优文件;
httpd-vhosts.conf 配置虚拟主机相关内容;
Httpd.conf 主配置文件;
了解发一个请求服务是怎么相应的php;
lsof -i :80 查看80端口是否起来
8.服务器框架:
1.Lamp+lnmp (必须先安装MySQL再安装php)
Linux、Apache、MySQL、php
2.Lnmp
Linux、nginx、MySQL、php
3.Lanmp
Linux、Apache(当作服务器)、nginx(反向代理)、MySQL、php
Yslow (前端页面工具,做前端性能时要安装这个)百度
9.MySQL:
用yum安装,参考文档。
启动MySQL:输入 mysql -uroot -p 再输入密码就行;
chkconfig --list mysqld -- 列出这个服务在0~6运行级别开机自启动的情况
chkconfig --list sshd
chkconfig --level 5 mysqld on 设置某个服务在某个运行级别开机自启动
10.nginx
1.wget http://nginx.org
2. ls nginx-1.8.1.tar.gz -sh 查看压缩包大小
3.tar -xf nginx-1.8.1.tar.gz 解压到当前目录
4.安装nginx:----》编译
cd nginx-1.8.1
(执行下面的内容后echo &?是否为0,OK的就用make &make install 安装;如果提示不行 就用vim 写个日志,如下然后cat 日志 | bash 后,再安装。)
Vim a.log
./configure \
--user=nginx \
--group=nginx \
--prefix=/application/nginx1.8.1 \
--with-http_stub_status_module \
--with-http_ssl_module
Cat a.log | bash
(./configure: error: the HTTP rewrite module requires the PCRElibrary.
You can either disable the module byusing --without-http_rewrite_module
option, or install the PCRE library intothe system, or build the PCRE library
statically from the source with nginx byusing --with-pcre=<path> option.)这个怎么解决???方法如下:(参考http://blog.youkuaiyun.com/hfsu0419/article/details/7190152)
yum -y install pcre-devel openssl openssl-devel
./configure --prefix=/usr/local/nginx
5.make & make install --->安装
(nginx优点:配置简单、灵活,高并发(静态小文件,静态并发1-2w),同时处理的连接数比较多,占用资源少,功能种类多,支持epoll模型,)
6.创建软连接(相当于Windows下的快捷方式)
ln -s /application/nginx1.8.1/ /application/nginx
ln -s 原文件 软连接名
7.启动nginx,执行以下命令
/application/nginx/sbin/nginx
启动时出现“nginx: [emerg]getpwnam("nginx") failed”怎么办?
先创建用户:useradd nginx -s /sbin/nologin -M
在执行启动命令即可。
创建用户后启动提示80端口被使用时“Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address alreadyin use)”,sudo fuser -k 80/tcp 再kill ,再次启动即可。
8.启动测试:在浏览器输入IP地址如果能够打开就是启动成功了。
就是显示这个目录/application/nginx/html的index.html里面的内容。
ss - lnt (tcp) ss - lntu (udp) 80是服务器的端口,22是终端的端口;
ps -Af | grep nginx 查看这个进程,kill 15 进程号 可以把这个杀掉;
Nginx使用epoll模型 --相当于一个索引 (所以运行快,效率高)
Apache使用select ;
Apache处理的是静态请求(如打开页面),如果有动态请求(例如搜索),动态请求会给php,有php脚本去跟MySQL交互。(这也是基本的架构处理方式);
Cdm 加速器,请百度;
Memcached 缓存服务器
了解apache和nginx和用户请求模型;
Nginx.conf
Httpd.conf
11.进程命令
top
Load average(平均负载):在1min ,5min ,15min时,过去1分钟之内的CPU的平均队列,一般这个值都要小于1,如果大于1就代表CPU忙不过来,可能CPU就是系统瓶颈,代表每一分钟在CPU上等待运行的进程有很多个。
%us/%sy=7/3,这是合理的比例;%sy过大的话,则系统调用多;
%wa过大的说明IO 存在问题,需要换固态硬盘;
按键盘的m,出现men、swap相关的数据;
按键盘的P(大写),就按%CPU占用大小排序;
按键盘的T,就按时间TIME+排序;
htop命令;
Vmstat命令(Linux/Unix监控工具);----》百度
Eg: vmstat 2 1
2表示每个两秒采集一次服务器状态,1表示只采集一次。
[root@localhost/]# vmstat 2 3
procs -----------memory-------------swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 255896 119840 357728 0 0 75 12 54 84 0 197 2 0
0 0 0 255896 119840 357728 0 0 0 0 34 60 0 199 0 0
0 0 0 255756 119840 357728 0 0 0 0 48 70 0 199 0 0
注意:第一行产生的报告是自上次重启之后的平均值,因此应该考虑排除它,
dstat (百度) 可以看占用CPU的最大进程、占用内存空间比较大的进程,在性能调优时用这个命令查看占用CPU最大的进程,然后查看这个进程进行优化。
通过yum install dstat 安装
dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。
dstat可以让你实时地看到所有系统资源,
Ps
Ps axu 查看所有进程
ps axo pid,ni, command 可以指定特定的内容。
Ps -Af 查看所有进程
Ctrl +z 把程序调到后台运行,输入jobs 就把后台运行的程序列出来,按优先级分为“+ 、-、无符号”,输入(fg 序列号)命令就把优先级最高的调到前台运行,后台的各进一个等级。也就是- 变+ ,无符号变-;(bg 序列号)命令就是在后台直接运行某个程序。
Kill 15 进程号 kill 9 进程号 (15 等这个程序运行后kill,较为人性化;9强制杀掉)
Pstree
pgrep
Nice 设置优先级的,linux支持的nice级别可从19(最低优先级)到-20(最高优先级)。默认值为0,把一个程序的nice级别改为一个负数(使它有较高的优先级),则需要使用root权限。
pidof
dstat
renice
fg Ctrl+z 就把进程或线程调到后台,jobs查看所有在后台的进程或线程,+表示优先级高,先执行,fg 进程号,把对应的进程调到前台执行,fg不加进程号则执行优先级最高的进程或线程,bg在后台直接执行进程。
bg
pkill
pgrep
Pstree
tty
dstat这个命令可以看占用CPU最大的进程
2.占用内存空间比较大的进程
ps axo,,o可以指定查看的列比如pid,ni,command
325 echo $?
326 yum install libncursesw -y
327 yum install --disable-unicode -y
328 ./configure
329 yum install ncurses-devel
330 ./configure
331 echo $?
332 make & make install
333 htop
334 make
335 make install
336 ls
337 htop
338 top
339 data
340 date
341 cd ~
342 ls
343 clear
344 uname -n 查看主机名;
345 cat /etc/sysconfig/network-scripts/ifcfg-eth0
346 vim /etc/sysconfig/network-scripts/ifcfg-eth0
347 cat /etc linux/config
348 vim /etc linux/config
349 cat /etc linux/config
350 sed -i 's#SELINUX=enforcing#SELINUX= disabled#g' /etc linux/config
351 cat /etc linux/config
352 setenforce
353 getenforce
354 runlevel 查看当前运行级别
355 cat /etc/inittab
358 man chkconfig
359 chkconfig --list|grep 3:on
360 chkconfig --list|grep 3:开启
361 chkconfig 开机自启动
362 chkconfig --list|grep 3:启用
363 iptables 防火墙
364 iptables -L -n
365 service iptables stop 关闭防火墙
366 /etc/init.d/iptables start 开启防火墙
367 /etc/init.d/iptables stop
368 history
2 cat~/.bash_history
3 vim ~/.bash_history
4 ulimit
5 ulimit -n
6 cat ~/.bash_history
7 ulimit -n
8 ulimit -SHn 65535
9 ulimit -n
10 vim /etc/sysctl.conf
11 cat ~/.bash_history
12 tree -L 1 /
13 cat /procmem
14 cd /proc/
15 ls
16 cat meminfo
17 cat cpuinfo
18 tree -L 1 /
19 top
20 htop
21 cd /home/ale/tools/
22 ls
23 history
ls -l 以长格式列出文件或者目录
-rwxr-xr--. 1 dev01 dgroup 116 9月2712:42 helloworld.sh
1 2 3 4 5 6 7
1. - rwx r-x r--. 文件或目录的类型和权限
7 5 4 (这个具有754权限)
文件拥有者的权限 从属用户组里面的用户的权限 others的权限
3. dev01 文件的拥有者(只能有一个)
4. dgroup 文件从属的用户组
把其他用户加入到用户组中:usermod -G 用户组 用户名
在Linux中与一个文件有关系的用户分成3类,文件拥有者(也就是第3个字段的内容,文件的拥有者只能有一个)、文件所从属的用户组里面的用户(也就是第4个字段,用户可以有多个)、除了这两类用户之外的用户others 。
r读权限,可以查看这个文件的内容;w写权限,可以修改这个文件内容或者删除这个文件;x执行权限,可以运行这个文件; - 没有相应的权限。
修改文件的属性:chmod 700 文件名 把这个文件的权限改为了700
怎么查看用户组里面的所有用户啊?
查看所有用户在这个文件/etc/passwd 查看所有的用户组在这个文件/etc/group
修改文件的拥有者和从属的用户组:chown 拥有者:用户组 文件名
Eg:chownly:we_group a.txt
只更改从属用户组:chown :新用户组 文件名
只更改拥有者 : chown 新拥有者: 文件名
!e--->export TMOUT=5 然后就是从普通用户自动切换到root用户 ,但是目录不
Ctrl+z 就把进程或线程调到后台,jobs查看所有在后台的进程或线程,+表示优先级高,先执行,fg 进程号,把对应的进程调到前台执行,fg不加进程号则执行优先级最高的进程或线程,bg在后台直接执行进程。
serviceiptables status 查看防火墙状态
如:
[root@localhost~]# service iptables status
iptables:未运行防火墙。
service iptables start/stop 开启/关闭防火墙
service network start/restart/stop 开启/重新开启/停止网络服务
service network status 查看网络状态
netstat -n|awk '/^tcp/ {++S[$NF]} END {for(a in S)print a,S[a]}'
ESTABLISHED 1 ESTABLISHED的意思是建立连接。表示两台机器正在通信。
established
Linux 中使用chattr 指令设置文件属性预防文件被更改或删除
在 Linux 中有一个 chattr 指令,它可以用来设置文件的各种属性,防止文件被删除或是更改,即使是有管理者root权限的时候也无法改动;chattr指令是用来设置文件属性用的,而 lsattr指令则可用来查看文件的属性,这两个指令是包含在 e2fsprogs套件之中,一般的 Linux发行版通常都会预先安装好。
chattr [-RVf] [operator][attribute(s)] files...其中operator可以是 +、-或 =,后面再加上要设置的 attribute(s),这跟 chmod指令的用法类似,以下是一些常用的属性:
i:文件不可以被改动(immutable),不可以写入、删除、建立链结档等。
touch test.txt
lsattr test.txt
-------------e- test.txt
这里的输出跟 ls -l 的输出类似,如果是 - 则代表该属性没有被设置,如果有被设置的话,就会出现对应的英文字母。
下面设置为不能删除:
chattr +i test.txt
lsattr test.txt
----i--------e- test.txt
rm -rf test.txt 则:
rm: 无法删除"test.txt":不允许的操作
如果真的要删除这个文件,就先必须把 i 属性拿掉才行:
chattr -i test.txt
如果需要将整个目录底下所有的文件都加上 i 属性,可以使用 -R 参数,例如:
sudo chattr -R +i /etc
让文件只能增加内容,不能删除

3240

被折叠的 条评论
为什么被折叠?



