赞
踩
========================================最常用的命令==================================================================================
cd :进入目录
cd.. 返回上一级
rz : 将本地文件复制到当前linux目录下
sz filename : 将当前linux目录下某一文件,下载到本地磁盘中
ll和ls:罗列当前目录下的文件
ll -l 或者 ls -l是列出文件的详细信息:权限、所属用户和用户组、创建时间
ll -h 或者 ls -h是列出文件的大小
ll -rt 或者 ls -lrt :按时间正序列出
ll -t 或者 ls -lt :按时间降序列出
ll -Sh 或者 ls -lSh :按文件大小从大到小排序
ll -Shr 或者 ls -lShr :按文件大小从小到大排序
rm MessageNoticeTask :删除MessageNoticeTask文件
rm -rf MessageNoticeTask :删除MessageNoticeTask文件夹及所有的子文件
mkdir 目录名 : 创建一个目录
touch 文件名 :创建一个文件 比如:touch a.txt
mv命令:
mv test.txt wbk.txt :将文件test.txt重命名为wbk.txt
mv file_1.txt /home/pungki/office : 将文件file_1.txt移动到/home/pungki/office下
cp命令:
cp /home/1.txt /opt/ : 将/home目录下的1.txt复制到 /opt目录下:
cp -rf /home/quanran /opt/ :将/home/quanran目录复制到 /opt目录下(如果复制的是目录的话,必须需要加上 -rf 参数)
pwd :显示当前目录
find / -name java :在所给的根目录下,查找具有java字符串的文件
date :显示日期与时间
cal :显示日历
cal 1992:显示某年内所有日历
id :显示用户标识及用户所属的所有组
users :查看当前登录的用户
who :显示当前登录的所有用户名字,使用终端设备号和登录时间
whoami :显示出当前终端上使用的用户
history :显示此次登录用户执行过的所有命令
linux终端窗口按下ctrl+r,然后输入字符,就能查到历史命令记录
ln -s /usr/java/jdk1.8.0_60/ /usr/jdk :将目录/usr/java/jdk1.8.0_60生成一个快捷方式,快捷方式的目录是/usr/jdk。生成快捷方式的目的是为了节省目录长度。举个例子,安装完jdk后,需要配置环境变量JAVA_HOME,原本它的值应该是/usr/java/jdk1.8.0_60,但是有了快捷方式了,环境变量JAVA_HOME的值就变成了/usr/jdk。
wc命令:
(1)wc loan_third_web.log 结果显示:3746 35517 988645 loan_third_web.log。 讲解:loan_third_web.log文件的行数为3746、单词数(字数)为35632、字节数988645。
(2)wc -l filename:显示一个文件的行数---------------结果显示:3761 loan_third_web.log
wc -w filename:显示一个文件的单词数(字数)-------结果显示:35632 loan_third_web.log
wc -c filename:显示一个文件的字节数-------------结果显示:988645 loan_third_web.log
wc -m filename:显示一个文件的字符数-------------结果显示:946801 loan_third_web.log
wc -L filename:显示一个文件中的最长行的长度-----结果显示:10601 loan_third_web.log
zcat命令:用于不真正解压缩文件,就能显示压缩包中文件内容:
zcat BorrowBusinessAll.log.2016-12-15-20161216.gz | grep '添加借款数据失败005' -------------查看压缩文件里,带有'添加借款数据失败005'的内容
zcat BorrowBusinessAll.log.2016-12-15-20161216.gz | grep -C 10 '添加借款数据失败'-------------查看压缩文件里,带有'添加借款数据失败005'的内容,并显示此内容的上下10行(一定是大写的C)
zcat BorrowBusinessAll.log.2016-12-15-20161216.gz | less ---------------然后就能使用less命令操作或查看了。
jar命令:
解压project.jar至当前目录:jar -xvf project.jar
导出project.jar的解压列表:jar tvf project.jar > hello.txt tar命令:
tar命令(详解):
# 当前目录etc下所有仅打包,不压缩:
tar -cvf job.tar etc/ ---打包
tar -xvf job.tar ---解压
# 当前目录etc下所有打包后,以gzip压缩
tar -czvf job.tar.gz etc/ ---压缩
tar -xzvf job.tar.gz ---解压
# 当前目录etc下所有打包后,以bzip2压缩
tar -cjvf job.tar.bz2 etc/ ---压缩
tar -xjvf jbo.tar.bz2 ---解压
zip命令:
zip -r tomcat.zip tomcat/ :将当前目录下的tocmat文件打成zip包
unzip MessageNoticeTask.zip :解压一个zip格式压缩包
unzip -o MessageNoticeTask.zip :-o 不询问用户,unzip执行后直接覆盖原有文件。
统计当前目录下文件的个数(不包括目录): ls -l | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录): ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数(包括子目录): ls -lR | grep "^d" | wc -l
=============================grep命令======================================================================================
一.最简单的用法
1. grep最简单的用法,匹配一个词:grep word filename
2. 能够从多个文件里匹配:grep word filename1 filenam2 filename3
3. grep -5 'parttern' --------打印匹配行的前后5行
grep -C 5 'parttern' --------打印匹配行的前后5行
grep -A 5 'parttern' --------打印匹配行的后5行
grep -B 5 'parttern' --------打印匹配行的前5行
二. -i 忽略字符大小写的差别
命令:grep -i 搜索的字符 filename1 filenam2
结果:
2018-05-19 10:18:01.391 INFO 进入【RecognitionController-recognitionUnderLineSave】方法 搜索的字符(大写)
2018-05-19 10:18:01.391 INFO 进入【RecognitionController-recognitionUnderLineSave】方法 搜索的字符(小写)
三. -n :顺便输出行号
命令:grep -n 搜索的字符 filename1 filenam2
结果:
filename1:38:2018-05-19 10:18:01.391 INFO 进入【RecognitionController-recognitionUnderLineSave】方法 搜索的字符
filename2:38:2018-05-19 10:18:01.391 INFO 进入【RecognitionController-recognitionUnderLineSave】方法 搜索的字符
四. -c :计算找到 '搜寻字符串' 的次数
命令:grep -c 搜索的字符 filename1 filename2 filename3
结果:
filename1:4
filename2:0
filename3:3
五. -l:选项将仅仅打印匹配的文件名
(1)命令(指定目录):grep -l 搜索的字符 /home/loan_service_dubbo/backup/*
结果:
/home/loan_service_dubbo/backup/filename1
/home/loan_service_dubbo/backup/filename2
/home/loan_service_dubbo/backup/filename3
(2)命令(当前目录):grep -l 搜索的字符 ./*
结果:
./filename1
./filename2
./filename3
(3)-r 递归文件夹找(指定目录或当前目录下有文件夹时,可用r参数递归查找)
命令(指定目录):grep -rl 搜索的字符 /home/loan_service_dubbo/backup/*
命令(当前目录):grep -rl 搜索的字符 ./*
六. > 文件名:将grep到的日志放到一个文件
(1)命令:grep 搜索的字符 loan_third_web.log > quanran.txt
执行完上面的命令就将查询到的内容放到了一个新生成的quanran.txt文件中
然后在用sz quanran.txt命令,就能下载到本地
七.grep 满足多个条件之一 或 排除某些关键字
(1)满足任意条件(word1、word2和word3之一)将匹配。
grep -E "word1|word2|word3" file.txt
(2)必须同时满足三个条件(word1、word2和word3)才匹配。
grep word1 file.txt | grep word2 |grep word3
(3)grep 同时排除多个关键字——(-v)
grep -v 'mmm\|nnn' abc.txt
=======================================vim文本编辑器===============================================================================================
1.vim 文件名 :打开某一文件
2.紧接着按字母i,处于编辑状态,用上下左右键去找到想要编辑的位置
3.编辑完或修改完新内容,直接按下esc命令,然后按下【shift+冒号键】输入冒号,在冒号后面输入以下命令:
q 退出
wq 保存并退出
q! 不保存并退出
w 保存
w! 强行保存
4.以下vim里常用快捷键:
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
j: 向下
k:向上
h:向左
l: 向右
gg:命令将光标移动到文档开头
G:命令将光标移动到文档末尾
5.如果要查找文件里的某一字符串
(1)按下【shift+冒号键】输入冒号,冒号后面输入以下命令:
set hlsearch :查找到的文本高亮显示
set nohlsearch :查找到的文本不高亮显示
(2)按字母i切换到编辑模式下,在按下【shift+冒号键】输入冒号,然后输入一下命令:
① /PATTERN: 自当前光标位置向下全文搜索字符串"quanran"
n 向下搜索
N 向上搜索
② ?PATTERN: 自当前光标位置向上全文搜索字符串"quanran"
n 向上搜索
N 向下搜索
=============================less命令日志查看=======================================================================================
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。 在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按 键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
0.一些命令
-b <缓冲区大小>:设置缓冲区的大小
-e:当文件显示结束后,自动离开
-f:强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g:只标志最后搜索的关键词
-i:忽略搜索时的大小写
-m:显示类似more命令的百分比
-N:显示每行的行号
-o <文件名>:将less 输出的内容在指定文件中保存起来
-Q:不使用警告音
-s:显示连续空行为一行
-S:行过长时间将超出部分舍弃
-x <数字>:将"tab"键显示为规定的数字空格
1.搜索
当使用命令 less file-name 打开一个文件后,可以使用下面的方式在文件中搜索。搜索时整个文本中匹配的部分会被高亮显示。
(1) 向下搜索
/ : 使用一个模式进行搜索,并定位到下一个匹配的文本
n : 向下查找下一个匹配的文本
N : 向上查找前一个匹配的文本
(2) 向上搜索
? : 使用模式进行搜索,并定位到前一个匹配的文本
n : 向上查找下一个匹配的文本
N : 向下查找前一个匹配的文本
2.全屏导航
ctrl + f :向下移动一屏
ctrl + b :向上移动一屏
ctrl + d :向下移动半屏
ctrl + u :向上移动半屏
3.单行导航
j : 向下移动一行
k : 向上移动一行
4.其它导航
G : 移动到最后一行
g : 移动到第一行
b:向上翻一页
按空格:向下翻一页
[pageup]: 向上翻动一页
[pagedown]: 向下翻动一页
u:向上翻半页
d:向下翻半页
y:向上翻一行
回车键:向下翻一行
q / ZZ : 退出 less 命令
h 显示帮助界面
5.编辑文件
v : 进入编辑模式,使用配置的编辑器编辑当前文件
6.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置。
按下m键,然后输入标记字母a;
当做了好多别的操作后,又想回到标记的位置,就输入英文版的单引号',再输入标记字母a,就会跳到标记处了。
7.浏览多个文件
方式一,传递多个参数给 less,就能浏览多个文件。
less file1 file2
方式二,正在浏览一个文件时,使用 :e 打开另一个文件。
less file1
:e file2
当打开多个文件时,使用如下命令在多个文件之间切换
:n - 浏览下一个文件
:p - 浏览前一个文件
8.less 版 tail -f
在 Linux 动态查看日志文件常用的命令非 tail -f 莫属,其实 less 也能完成这项工作,使用 F 命令。
使用 less file-name 打开日志文件,执行命令 F,可以实现类似 tail -f 的效果。
=============================cat命令日志查看=======================================================================================
1.tail和head的日志简单查看
tail -f /logs/MessageNoticeTask.log 实时刷新MessageNoticeTask.log日志;参数-f使tail不停地去读最新的内容,这样有实时监视的效果,用Ctrl+c来终止!
tail -n 10 test.log 查询日志尾部最后10行的日志;也可以这么写:tail -10 test.log
tail -n +10 test.log 查询10行之后的所有日志;
head -n 10 test.log 查询日志文件中的头10行日志;也可以这么写:head -10 test.log
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
more test.log 翻页查看一个长文件的内容 ,空格翻页
cat -n test.log 正序查看长文件内容,并且标示行数
tac (反向列示) :tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
2.查看日志里带有字符串"select"的内容
cat -n MessageNoticeTask.log | grep "select"
3.翻页显示
cat -n MessageNoticeTask.log | grep "select" | more :查询MessageNoticeTask.log日志内容带有select的相关内容,分页显示。空格是翻下一页
4.根据时间段筛选查看:
sed -n '/2016-12-02 10:45:49:223/,/2016-12-02 10:45:49:225/p' MessageNoticeTask.log 查看MessageNoticeTask.log日志的时间是在2016-12-02 10:45:49:223和2016-12-02 10:45:49:225之间的内容
5.只查看文件的第5行到第10行。
sed -n '5,10p' /logs/MessageNoticeTask.log
6.组合查看:
cat -n MessageNoticeTask.log | tail -n +92 | head -n 20
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
7.查看某个日志文件的大小(MessageNoticeTask_error.log日志文件大小为:279692kb)
du -h MessageNoticeTask_error.log -----------显示274M。查看错误日志文件MessageNoticeTask_error.log的大小,自动转换为以K,M,G为单位,方便读的数值。显示的数值带单位。
du MessageNoticeTask_error.log -----------显示279692。查看错误日志文件MessageNoticeTask_error.log的大小,KB为单位()。显示的数值不加单位。
du -m MessageNoticeTask_error.log -----------显示274。查看错误日志文件MessageNoticeTask_error.log的大小,M为单位。显示的数值不加单位。
命令:ll -sh 和命令: ls -sh ------------都能查看当前目录下的所有的文件和文件夹大小
=============================分割命令split=======================================================================================
功能:可以将一个大文件按照一定规则分割成很多个小文件。
一. split [参数] [文件名] prefix
二. 参数选项:
-b:指定每个分割文件的大小一定是指定值,如10,10k,10m,10G...(第一个10代表10个字节)
解释:每个分割出来的文件一定都是指定值。当然最后一个剩下多少是多少,不保证是指定值。
每个分割出来的文件不可读,因为-b是二进制的分割,所以能做到每个文件都是绝对值。
任何类型文件都可以用这种切割模式。
-C:指定每个分割文件的大小最大是指定值,如10,10k,10m,10G...(第一个10代表10个字节)
解释:每个分割文件中的大小最大是指定值的大小。
与-b不同,-C分割不打碎行,每个分割出来的文件都可读。
正因此,所以每个文件最大是指定值得大小,如果非要每个文件都是指定值,可能某行就被分到两个文件里了。
-l:指定每一个输出文件的最大行数
-a:指定输出文件名的后缀长度,默认为2个字符(aa,ab...)
-d:指定输出文件名的后缀用数字代替
prefix:代表前导符,可作为切割文件的前导文件。
三.例子
现在服务器上的文件大小和文件名如下图:
1.参数 -b 的例子:
(1)指定每个文件5M来分割,拆分文件的名称前缀默认
命令: split -b 5M quanran.war
效果图:
备注:是的,你没看错,在没有明确指定拆分后文件的命名方式的情况下,split 会默认采用 x 字符作为文件前缀,采用类似 aa、ab、ac 的字符串依次作为文件后缀。于是,就出现了我们上面看到的 xaa、xab 、xac...了。
(2)指定每个文件5M来分割,拆分文件的名称前缀可以随意设置(在这里设置为QuanRan_)
命令: split -b 5M quanran.war QuanRan_
效果图:
备注:文件名的可读性是不是提高了不少。
(3)指定每个文件20M来分割,拆分文件的名称设置成数字后缀
命令: split -b 20M quanran.war -d
效果图:
备注:默认x+数字,可读性好多了,但是我不想用x,我想用QuanRan_作为名称前缀+数字,怎么办?看下个命令。
(4)指定每个文件15M来分割,拆分文件的名称前缀QuanRan_ + 数字后缀
命令: split -b 15M quanran.war -d QuanRan_
效果图:
(5)指定每个文件15M来分割,拆分文件的名称前缀QuanRan_ + 数字后缀,不同于上个,这里的数字要设置长度(这里设置的长度为5位)
命令: split -b 15M quanran.war -d -a 5 QuanRan_
效果图:
(6)分割完,还需要合并,合并后的文件为quanran_merge.war
命令: cat QuanRan_0000* > quanran_merge.war
效果图:
(7)合并后,还需要校验合并后的文件与分割前的文件是否是同一个。即分别对两个文件使用md5sum命令,然后比较两个文件生成的md5 值。
命令:md5sum 文件名
效果图:
两个md5值一样,说明两个文件是一样的。
(备注:除了md5sum,还有sha1sum命令,作用一样。虽然 sha1sum 从加密上说更好一点,但是由于历史原因,md5sum 使用得更为广泛。)
2.参数-C的例子:只举最简单的,其他和 -d、-a、prefix配合一起使用的参考上面-b的例子。
现在服务器上的文件行数和文件名如下图:
(1)按指定大小分割文件,每个分割文件都是可读的,即用cat查看内容(这里设置成每个被分割的文件大小最大是40字节)
命令: split -C 40 test_file.txt -d
split -C 128K new.txt -d (这里设置成每个被分割的文件大小最大是128K)
效果图:
3.参数 -l 的例子:只举最简单的,其他和 -d、-a、prefix配合一起使用的参考上面-b的例子。
现在服务器上的文件行数和文件名如下图:
(1)按照行数对test_file文件进行拆分(这里设置成3行一个文件)
命令: split -l 3 test_file.txt -d
效果图:
四. 如何你安装了git,那么你可以在git bash 窗口里敲击所有linux命令,比如split与cat命令,因为git bash就是一个本地linux环境。
=============================more命令日志查看=======================================================================================
more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
1.命令格式:
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
2.命令功能:
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
3.命令参数:
+n : 从笫n行开始显示
-n : 定义屏幕大小为n行
+/pattern : 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c : 从顶部清屏,然后显示
-d : 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l : 忽略Ctrl+l(换页)字符
-p : 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s : 把连续的多个空行显示为一行
-u : 把文件内容中的下画线去掉
4.常用操作命令:
【Enter】 :向下n行,需要定义。默认为1行
【f 或 Ctrl+f】 :向下滚动一屏
【空格键】 :向下滚动一屏
【b 或 Ctrl+b】 :返回上一屏
【=】 :输出当前行的行号
【:f】 :输出文件名和当前行的行号
【v或V】 :调用vi编辑器
【!命令】 :调用Shell,并执行命令
【q】 :退出more
===================================查看某一进程的相关命令=================================================================================
1)ps -ef | grep python : 每个进程启动之后在 /proc下面有一个于pid对应的路径
比如:执行 ps -ef | grep python
会显示:oracle 4431 4366 0 18:56 pts/2 00:00:00 python Server.py
其中4431就是进程号
(或者ps -aux | grep python也行)
2)kill -9 进程ID 杀死进程
3)killall命令,可以直接使用进程的名字而不是进程标识号,例如:killall -9 mysql
4)备注:了解ps -ef 和 ps -aux展示出来的各列是什么意思
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
a.ps -ef 是用标准的格式显示进程的、其格式如下
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
b.ps -aux 是用BSD的格式来显示、其格式如下
好多列与ps -ef命令展示的列相同,其中不同的列有:
USER //用户名
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有
D //无法中断的休眠状态(通常 IO 的进程);
R //正在运行可中在队列中可过行的;
S //处于休眠状态;
T //停止或被追踪;
W //进入内存交换 (从内核2.6开始无效);
X //死掉的进程 (基本很少见);
Z //僵尸进程;
< //优先级高的进程
N //优先级较低的进程
L //有些页被锁进内存;
s //进程的领导者(在它之下有子进程);
l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ //位于后台的进程组;
===================================查看某一端口是否被占用的相关命令=================================================================================
1) 查看某一端口号是否被占用的命令:netstat -anp | grep 端口号
如下,我以8080为例,netstat -anp | grep 8080(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:
主要看监控状态为LISTEN就表示已经被占用,最后一列显示被服务java占用,进程ID为2233。查看具体端口号,只要有如图这一行就表示被占用了。
找到进程号以后,再使用以下命令查看详细信息:
ps -aux | grep <进程ID>,例如:
2)查看当前所有已经使用的端口情况命令(此处不用加端口号):netstat -nultp
3)上图可以看出123端口没有被占用,用netstat -anp | grep 123 命令查看123端口的使用情况。
可以看出state那一列没有LISTEN这个值,所以就表示没有被占用。此处注意,如果图中显示出现LISTENING并不表示端口被占用,不要和LISTEN混淆。
4)如果想要释放某端口,用命令杀死进程:kill -9 进程ID
比如释放8080端口:用命令:kill -9 2233。
然后在用命令ps -aux | grep <进程ID>查看进程2233的详细情况:
发现没有上面第1)步里的一大坨了,所以说明成功释放了8080端口,杀死了2233进程。
如果不信,你用命令netstat -nultp查看所有已经使用的端口:
发现被占用中的端口只有22,没有8080了。
================================防火墙的相关命令====================================================================================
CentOS6的防火墙命令:
1) 查看防火墙状态
service iptables status
2) 重启后生效,永久性生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
3) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
CentOS7的防火墙命令:
1) 查看防火墙状态
命令:service firewalld status;
(disabled 表明 已经禁止开启启动;enable 表示开机自启;inactive 表示防火墙关闭状态;activated(running)表示为开启状态)
或者这个命令:firewall-cmd --state;
(关闭后显示not running,开启后显示running)
2)开启防火墙
命令:service firewalld start;
或者这个命令: systemctl start firewalld.service;
3)关闭防火墙
命令:service firewalld stop;
或者这个命令: systemctl stop firewalld.service;
4)重启防火墙
命令:service firewalld restart;
或者这个命令: #systemctl restart firewalld.service;
5)禁止防火墙开启自启
命令:systemctl disable firewalld.service
6)设置防火墙开机启动
命令:systemctl enable firewalld
CentOS 7默认使用的是firewall作为防火墙,修改为iptables防火墙步骤:
1)卸载firewall
yum remove firewalld
2)安装iptables防火墙
yum install iptables-services
3)编辑防火墙配置文件,开放3306端口
vi /etc/sysconfig/iptables
添加配置:-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
4)最后重启防火墙使配置生效
systemctl restart iptables.service
5)设置防火墙开机启动
systemctl enable iptables.service
========================多台linux服务器间如何测试是否通畅,端口是否通畅=====================================================================
一、如果只测试网络是否通,最简单直接有效的办法使用ping.
比如:ping 192.168.1.100 #测试ip为192.168.1.100的服务器是否可用
备注:
ping更多参数:
-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限高速方式检测;
-i<间隔秒数>:指定收发信息的间隔时间,wait的秒数;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满packetsize 数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置packetsize 数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。
比如:ping -c 20 123.206.73.111
二、如果希望测试服务器上的某个端口是否可用,有四种方式:
1) telnet ip port
eg:telnet 192.168.1.100 80 #测试ip为192.168.1.100的linux服务器上,80端口是否可用
2)curl ip:port
eg:curl 192.168.1.100:80 #测试ip为192.168.1.100的linux服务器上,80端口是否可用
3)ssh -v -p port username@ip
参数:
-v 调试模式(会打印日志).
-p 指定端口
username:远程主机的登录用户
ip:远程主机
eg:ssh -v -p 80 root@192.168.1.100 #测试ip为192.168.1.100的linux服务器上,80端口是否可用
4)wget ip:port
eg:wget 192.168.1.100:80 #测试ip为192.168.1.100的linux服务器上,80端口是否可用
使用wget命令保存一个index.html则80端口是通的,如下图:
====================================chown更改文件或目录的所有者、chgrp更改用户组=================================================================
一.更改文件或目录的所有者(所有者,必须已经存在于(/etc/passwd)下)
1.用 这个命令查看文件属性 :ls -l
|--权限--| |-用户-| |-用户组-| |-创建时间-| |-文件名-|
-rw-r--r--. 1 root root 970 Dec 3 2015 yum.conf
2.用这个命令更改yum.conf文件的所有者为jd-root : chown jd-root yum.conf
3.此时在用ls -l查看文件属性变成这个:
-rw-r--r--. 1 jd-root root 970 Dec 3 2015 yum.conf
备注:想递归更改目录下所有文件的用户属性,请在命令中添加一个“-R”参数;即”chown -R jd-root /usr/local/quanran/”
二.更改文件或目录的用户组(要更改的用户组,必须存在于“/etc/group”下)
1.修改目录及其子目录的用户组为“jd-root”已存在于(/etc/group),命令为 :chgrp -R jd-root yum.conf
2.同时更改文件或目录的所有者和用户组,命令为(第一个jd-root为用户,第二个jd-root为用户组) :chown -R jd-root:jd-root yum.conf
===============================chmod改变文件的读、写和执行权限(有符号法和八进制数字法。)===================================================================================
第一种写法:符号法
(1)命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename
(2)格式注释:u (user) 表示用户本人。
g (group) 表示同组用户。
o (oher) 表示其他用户。
a (all) 表示所有用户。
+ 用于给予指定用户的许可权限。
- 用于取消指定用户的许可权限。
= 将所许可的权限赋给文件。
r (read) 读许可,表示可以拷贝该文件或目录的内容。
w (write) 写许可,表示可以修改该文件或目录的内容。
x (execute)执行许可,表示可以执行该文件或进入目录。
(3)eg:例如:# chmod a+rx filename :让所有用户可以读和执行文件filename。
# chmod go-rx filename :取消同组和其他用户的读和执行文件filename的权限。
第二种写法:八进制数字法
(1)命令格式:chmod abc file
(2)格式注释:其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。
4 (100) 表示可读。
2 (010) 表示可写。
1 (001) 表示可执行。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
(3)eg:例如:# chmod 741 filename :让本人可读写执行、同组用户可读、其他用户可执行文件filename。
# chmod -R 755 /home/oracle :递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行
============================df与du命令===============================================================================================================================
自己的另一篇博客:Linux du命令和df命令区别-转_全冉 的博客-CSDN博客
==============================查看linux服务器物理内存的命令===================================================================================================
============================登录linux服务器后查看内网ip和公网=======================================================================
一个命令:ip address,如下所示,可以看到,eth0所对应的是内网IP(10.90.100.88),而eth1所对应的IP为外网IP(192.168.58.66)
[root@itcast ~]# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:06:db:bf brd ff:ff:ff:ff:ff:ff
inet 10.90.100.88/22 brd xx.xx.xx.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:16:3e:08:14:6d brd ff:ff:ff:ff:ff:ff
inet 192.168.58.66/22 brd xx.xxx.xx.255 scope global eth1
valid_lft forever preferred_lft forever
此方法显示的更详细一些,其中显示出来的url行是公网ip
命令:curl cip.cc
显示出来的是公网ip
命令:curl ifconfig.me
===========================================Linux性能分析工具top,能够实时显示各个进程的资源占用状况===================================================================================================
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 |
统计信息区
前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48 | 当前时间 |
up 1:22 | 系统运行时间,格式为时:分 |
1 user | 当前登录用户数 |
load average: 0.06, 0.60, 0.48 | 系统负载,即任务队列的平均长度。 |
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total | 进程总数 |
1 running | 正在运行的进程数 |
28 sleeping | 睡眠的进程数 |
0 stopped | 停止的进程数 |
0 zombie | 僵尸进程数 |
Cpu(s): 0.3% us | 用户空间占用CPU百分比 |
1.0% sy | 内核空间占用CPU百分比 |
0.0% ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
98.7% id | 空闲CPU百分比 |
0.0% wa | 等待输入输出的CPU时间百分比 |
0.0% hi | |
0.0% si |
最后两行为内存信息。内容如下:
Mem: 191272k total | 物理内存总量 |
173656k used | 使用的物理内存总量 |
17616k free | 空闲内存总量 |
22052k buffers | 用作内核缓存的内存量 |
Swap: 192772k total | 交换区总量 |
0k used | 使用的交换区总量 |
192772k free | 空闲交换区总量 |
123988k cached | 缓冲的交换区总量。 |
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 | 列名 | 含义 |
a | PID | 进程id |
b | PPID | 父进程id |
c | RUSER | Real user name |
d | UID | 进程所有者的用户id |
e | USER | 进程所有者的用户名 |
f | GROUP | 进程所有者的组名 |
g | TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
h | PR | 优先级 |
i | NI | nice值。负值表示高优先级,正值表示低优先级 |
j | P | 最后使用的CPU,仅在多CPU环境下有意义 |
k | %CPU | 上次更新到现在的CPU时间占用百分比 |
l | TIME | 进程使用的CPU时间总计,单位秒 |
m | TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
n | %MEM | 进程使用的物理内存百分比 |
o | VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
p | SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb。 |
q | RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
r | CODE | 可执行代码占用的物理内存大小,单位kb |
s | DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
t | SHR | 共享内存大小,单位kb |
u | nFLT | 页面错误次数 |
v | nDRT | 最后一次写入到现在,被修改过的页面数。 |
w | S | 进程状态。 |
x | COMMAND | 命令名/命令行 |
y | WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
z | Flags | 任务标志,参考 sched.h |
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
命令使用
1. 工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况; top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
4.2参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名
4.3其他
下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
Ctrl+L 擦除并且重写屏幕。
h或者? 显示帮助画面,给出一些简短的命令总结说明。
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
i 忽略闲置和僵死进程。这是一个开关式命令。
q 退出程序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O 改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
c 切换显示命令名称和完整命令行。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。