常用linux命令

Linux命令:

cat

显示整个文件

tail

tail 命令用于显示文本文件的末尾几行

head

从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分

more

以百分比的形式查看日志

less

跟more功能差不多,只不过less支持前后翻阅文件



查看tomcat运行日志

tail -f catalina.out

通过关键字搜索查看日志

cat catalina.out | grep '查看'

查看固定时间日志

cat catalina.out | grep   '2015-09-20 18:50:15'

查看最近50行日志

tail -n 50 -f catalina.out


 启动:一般是执行sh tomcat/bin/startup.sh 停止:一般是执行sh tomcat/bin/shutdown.sh脚本命令

 查看:执行ps -ef |grep tomcat

 输出如下

执行ps -ef |grep tomcat 输出如下
 
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
说明tomcat已经正常启动, 5144 就为进程号 pid = 5144 
 杀死:kill -9 5144

 Ctrl+c 退出tail命令。

查看文件大小:du -sh *  目录下所有     du -sh  文件名  文件大小

根据进程名查看其占用端口

首先用ps命令查看进程的id

ps -ef | grep Name

查看到进程id之后,使用netstat命令查看其占用的端口:

netstat -nap | grep pid 

Linux下查看apache连接数

1、查看apache当前并发访问数:
  
  

#对比httpd.conf中MaxClients的数字差距多少。
netstat -an | grep ESTABLISHED | wc -l


2、查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

ps aux|grep httpd|wc -l


3、可以使用如下参数查看数据
  
  

ps -ef|grep httpd|wc -l
#1388
#统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
#表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。
netstat -nat|grep -i "80"|wc -l
#4341
#netstat -an会打印系统当前网络链接状态,而grep -i "80"是用来提取与80端口有关的连接的,wc -l进行连接数统计。
#最终返回的数字就是当前所有80端口的请求总数。
netstat -na|grep ESTABLISHED|wc -l
#376
#netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
#最终返回的数字就是当前所有80端口的已建立连接的总数。
netstat -nat||grep ESTABLISHED|wc
#可查看所有建立连接的详细记录

 

4、查看Apache的并发请求数及其TCP连接状态:
 

netstat -n | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a, S[a]}'

(这条语句是从 新浪互动社区事业部 新浪互动社区事业部技术总监王老大那儿获得的,非常不错)返回结果示例:
 
 

LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

其中:
  SYN_RECV表示正在等待处理的请求数;
  ESTABLISHED表示正常数据传输状态;
  TIME_WAIT表示处理完毕,等待超时结束的请求数。

 

5、输出每个ip的连接数,以及总的各个状态的连接数

netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'


文件修改:
i进入后按i 或者 insert键 进行编辑

按ESC 后
1.:wq保存并退出
2.:q!退出不修改
3.:q 退出, 如果有修改时不能退出.

1.压缩命令:
命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件
可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
2.解压缩命令:
命令格式:tar  -zxvf   压缩文件名.tar.gz
解压缩后的文件只能放在当前的目录。

解压war包,只能解压到当前目录下
jar -xvf game.war
Linux下自带了一个unzip的程序可以解压缩文件,
解压命令是:unzip filename.zip
同样也提供了一个zip程序压缩zip文件,命令是 
zip filename.zip files 
会将files压缩到filename.zip 
另外看看你的文件的后缀名,不同的后缀的文件解压和压缩的命令都不一样
 总结一下
 1、*.tar 用 tar –xvf 解压 
 2、*.gz 用 gzip -d或者gunzip 解压 
 3、*.tar.gz和*.tgz 用 tar –xzf 解压 
 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 
 5、*.tar.bz2用tar –xjf 解压 
 6、*.Z 用 uncompress 解压 
 7、*.tar.Z 用tar –xZf 解压 
 8、*.rar 用 unrar e解压 
 9、*.zip 用 unzip 解压
gunzip和unzip解压文件到指定的目录
 Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 
相应的解压缩命令则是 gunzip 和 unzip 
 
gzip 命令: 
# gzip test.txt 
它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样 
 
# gunzip test.txt.gz 
它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件,我们可以加上 -c 选项并利用 linux 的重定向 
 
# gzip -c test.txt > /root/test.gz 
这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样 
 
# gunzip -c /root/test.gz > ./test.txt 
 
 
zip 命令: 
# zip test.zip test.txt 
它会将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /root/test.zip 
 
# unzip test.zip 
它会默认将文件解压到当前目录,如果要解压到指定目录,可以加上 -d 选项 
 
# unzip test.zip -d /root/ 

创建文件
mkdir 文件名mv 
1. 改文件夹名  mv 修改前 文件夹名  修改后 文件夹名  
2. 改文件名  mv 修改前 文件名  修改后 文件名  
移动一个目录
mv hscripts tmp
在上述命令中,如果tmp目录已经存在,mv命令将移动hscripts文件夹/目录下的所有文件,目录和子目录到tmp目录。 如果没有tmp目录,它将重命名 hscripts目录为tmp目录。
移动多个文件/更多问价到另一目录
mv file1.txt tmp/file2.txt newdir
这个命令移动当前目录的file1.txt文件和tmp文件夹/目录的file2.txt文件到newdir目录。 

rm删除命令 
rm linux 命令用来移除/删除目录下的文件。
语法:
语法是
rm [命令开关..] [文件 | 目录]
命令开关:
-f不提示用户,删除目录下的所有文件。
-i交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认。
-r (或) -R递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。
示例:

移除/删除文件:
rm file1.txt
这里rm命令将移除/删除文件file1.txt。
删除目录树:
rm -ir tmp
这里rm命令递归的删除tmp目录下所有子目录下内容,对于每个文件的删除都会提示你,然后删除tmp目录本身。
一次删除多个文件。
rm file1.txt file2.txt
rm命令同时删除文件file1.txt 和file2.txt。
移除文件 rm 文件名
移除文件夹 rm -f 文件夹名(移除文件夹和文件夹内所有内容)
rm -rf 文件夹名
rm -f 文件名

用户转换:
如果用户拥有sudo 权限,sudo su 可以转到root目录下

Linux下查看服务器负载性能命令
uptime
显示当前用户数,以及最近1 分钟内、5分钟内、15 分钟内系统的平均负载
cat /proc/loadavg
用于显示系统1秒钟平均负载、5秒钟平均负载、15秒钟平均负载、总作业数、正在运行的作业总数
cat /proc/stat


# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
getconf LONG_BIT  (Linux查看版本说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)


[root@localhost ~]# uptime

  11:39:36 up 11 days, 19:16, 1 user, load average: 0.09, 0.03, 0.01

  原来它所表示的是过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。

  那么,如何衡量当前系统是否负载过高呢?可以从以下几点来考虑。

  如果每个CPU(可以按CPU核心的数量计算)当前的活动进程数不大于3,则系统性能良好。

  如果每个CPU当前的活动进程数不大于4,表示可以接受。

  如果每个CPU当前的活动进程数大于5,则系统性能问题严重。

  还可以结合vmstat命令来判断我们的系统是否过于繁忙,如果确定很繁忙的话,就要考虑是否更换服务器或增加CPU的个数了。总结如下:

  如果r经常大于3或4,且id经常少于50,则表示CPU的负荷很重。

  在上面例子中,我的服务器是PowerEdge 2850,CPU是双核双线程的,则0.09/2=0.045(即负载值/真实CPU个数),此系统的CPU负载基本可以忽略了。事实上,现在主流服务器 的CPU都很强悍,如果不是应用虚拟化等特殊场景,基本上负载都很小。

  按照前面的计算公式,我所配置Nagios报警的CPU负载阈值 为CPU核心的数量(即CPU的物理个数×核数)。还是以我的服务器PowerEdge 2850为例,其CPU核心的数量为2×2=4,则设置报警值为4。这样设置是合理的,因为毕竟不是每个应用服务器的CPU都支持多核心,毕竟整个网站中 还有些性能比较弱的服务器是用来做备份的。


1.用top命令查看
top - 16:15:05 up 6 days,  6:25,  2 users,  load average: 1.45, 1.77, 2.14
Tasks: 147 total,   1 running, 146 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2% us,  0.2% sy,  0.0% ni, 86.9% id, 12.6% wa,  0.0% hi,  0.0% si
Mem:   4037872k total,  4003648k used,    34224k free,     5512k buffers
Swap:  7164948k total,   629192k used,  6535756k free,  3511184k cached
 查看12.6% wa
 IO等待所占用的CPU时间的百分比,高过30%时IO压力高

2.用iostat -x 1 10

avg-cpu:  %user   %nice    %sys %iowait   %idle
                0.00       0.00     0.25    33.46    66.29

Device:    rrqm/s  wrqm/s   r/s    w/s     rsec/s   wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          0.00    0.00      0.00   0.00    0.00    0.00         0.00     0.00     0.00           0.00    0.00    0.00   0.00
sdb          0.00   1122  17.00  9.00  192.00 9216.00    96.00  4608.00   123.79   137.23 1033.43  13.17100.10
sdc          0.00    0.00     0.00   0.00     0.00     0.00      0.00     0.00     0.00             0.00    0.00      0.00   0.00

查看%util 100.10 %idle 66.29

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

idle小于70% IO压力就较大了,一般读取速度有较多的wait.

同时可以结合vmstat 查看查看b参数(等待资源的进程数)

vmstat -1

1、查看apache当前并发访问数:

netstat -an | grep ESTABLISHED | wc -l

对比httpd.conf中MaxClients的数字差距多少。

2、查看有多少个进程数:
ps aux|grep httpd|wc -l

3.查看线程总数

grep 'processor' /proc/cpuinfo | sort -u | wc -l



文件权限:

用户组

linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念

- 所有者

- 所在组

- 其它组

- 改变用户所在的组

 

所有者

一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

用ls ‐ahl命令可以看到文件的所有者

也可以使用chown 用户名 文件名来修改文件的所有者

 

文件所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

用ls ‐ahl命令可以看到文件的所有组

也可以使用chgrp 组名 文件名来修改文件所在的组

 

其它组

除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

 

文件权限

ls

 -l中显示的内容如下:

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

- 10个字符确定不同用户能对文件干什么

- 第一个字符代表文件(-)、目录(d),链接(l

- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x

- 第一组rwx:文件所有者的权限是读、写和执行

- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4w=2x=1  因此rwx=4+2+1=7

- 1 表示连接的文件数

- root 表示用户

- root表示用户所在的组

- 1213 表示文件大小(字节)

- Feb 2 09:39 表示最后修改日期

- abc 表示文件名

 

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwxg=rxo=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-xg+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

改变所有者(chown)和用户组(chgrp)命令

chown xiaoming abc:改变abc的所有者为xiaoming

chgrp root abc:改变abc所属的组为root

chown root ./abc:改变abc这个目录的所有者是root

chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

 

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

- usermod ‐g 组名 用户名

你可以用

- usermod ‐d 目录名 用户名,改变该用户登录的初始目录

 

【综合案例】

【题1.1】建立两个用户组group1group2,以及三个用户dennisdanielabigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下

 

【题1.2】以dennis用户登录,创建一个Hello.java文件

【题1.3】以daniel用户登录,观察是否可以访问/home/dennis目录以及读或写其创建的Hello.java文件

【题1.4】以dennis用户登录,修改目录/home/dennisHello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足

 

【题1.5】重复【题1.3

【题1.6】改变abigale的用户组由group2变为group1

 

然后,可以使用cat /etc/passwd查看并确定

 

【参考】

- groupadd 组名,在linux中添加组

- vi /etc/group,查看linux中所有组信息,可以看可以编辑

- cat /etc/group,查看linux中所有组信息,只可以看不可以编辑

- useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下

- vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑

- cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑


参考博文:

http://www.cnblogs.com/123-/p/4189072.html

http://blog.csdn.net/zhangdaiscott/article/details/48623913

https://zhangge.net/3257.html

http://www.oschina.net/question/17_34694

tomcat log 配置解决catalina.out文件过大问题


http://blog.csdn.net/hbsong75/article/details/39432811

服务器硬件信息:

http://zhidao.baidu.com/link?url=S4WFiS4_FuJ4U37NyQ4W3HitJk4bOEWCBJUWvkBIud2yZUsCrrQ5BCCX4RhJ8VCOdz48sDEVc-I1np5EKxCV3_

使用vmstat

http://www.cnblogs.com/tommyli/p/3746187.html

多谢各位!



相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页