面试问到的 常用linux命令

常用Linux命令

基本操作命令

转自:

初窥Linux 之 我最常用的20条命令

ls 命令 查看目录

#------------------------ls 命令常用几种参数----------------------
ls #-->查看目录中的文件 
ls -F #-->查看目录中的文件 参数 -F(文件夹后一'/'结尾) 
ls -l #-->显示文件和目录的详细资料 参数 -l(竖向排列并显示详细资料)
ls -a #-->显示隐藏文件 参数 -a(显示隐藏文件)

# ' ./ ' 为当前目录下

cd 命令 目录跳转

#------------------------cd 命令常用几种形式----------------------
cd #-->进入个人的主目录 
cd .. #-->进入上级目录
cd ../.. #-->进入上两级目录
cd - #-->返回至上次所在的目录 
pwd #-->显示当前所在目录\
clear #-->清屏

mkdir 命令 创建文件夹

#------------------------mkdir 命令常用几种形式----------------------
mkdir dir1 #-->创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 #-->同时创建两个目录 
mkdir -p /tmp/dir1/dir2 #-->创建一个目录树(多级目录)

rm 命令 删除命令

#------------------------rm 命令常用几种形式+参数----------------------
rm -f ./file1 #-->删除一个叫做 'file1' 的文件 不询问直接删除
rm -rf ./dir1 #-->删除一个叫做 'dir1' 的目录并同时删除其内容 (慎用)
rm -rf ./dir1 ./dir2 #--> 同时删除两个目录及它们的内容 (慎用)
rmdir ./dir1 #-->删除一个叫做 'dir1' 的目录' 
rmdir ./dir1 ./dir2 #-->删除一个叫做 'dir1'和'dir2' 的目录 

# 参数 -r 递归删除     -f 直接删除不询问

mv 命令 移动/重命名

#------------------------mv 命令常用几种形式+参数----------------------
mv ./dir1 ./new_name #-->将当前路径下'dir1'文件夹重命名为'new_name'
mv ./dir1 /data/dir1 #-->将当前路径下'dir1'文件夹移动到'/data'文件夹下
mv ./file1 ./file2 ./file3 ./dir #-->把文件file1、file2、file3移动到目录dir中  
mv ./file1 ./file2 #-->把文件file1重命名为file2  

# 参数 
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖  
-i :若目标文件已经存在,就会询问是否覆盖  
-u :若目标文件已经存在,且比目标文件新,才会更新 

cp 命令 复制

#------------------------cp 命令常用几种形式+参数----------------------
cp -a ./file1 ./file2 #连同文件的所有特性把文件file1复制成文件file2  
cp ./file1 ./file2 ./file3 ./dir #把文件file1、file2、file3复制到目录dir中
cp ./dir/* ./dir2 #把文件夹dir下的所有文件复制到目录dir2中

# 参数 
-a :将文件的特性一起复制  
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份  
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行  
-r :递归持续复制,用于目录的复制行为  
-u :目标文件与源文件有差异时才会复制  

开发常用命令

ps 命令 查看进程

#------------------------ps 命令常用几种形式+参数----------------------
ps -ef #-->标准的格式显示进程的 其格式如下
UID        PID  PPID  C STIME TTY          TIME CMD
root         2     0  0 Aug31 ?        00:00:02 [kthreadd]
root         4     2  0 Aug31 ?        00:00:00 [kworker/0:0H]
root         6     2  0 Aug31 ?        00:02:31 [ksoftirqd/0]

#-->  其中各列的内容意思如下
#-->  UID    //用户ID、但输出的是用户名 
#-->  PID    //进程的ID 
#-->  PPID   //父进程ID 
#-->  C      //进程占用CPU的百分比 
#-->  STIME  //进程启动到现在的时间 
#-->  TTY    //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 
#-->  CMD    //命令的名称和参数

ps aux #-->是用BSD的格式来显示、其格式如下
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    Aug31   0:02 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   Aug31   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    Aug31   2:31 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    Aug31   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Aug31   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    Aug31   8:43 [rcu_sched]

#-->  同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); 
#-->  +      //位于后台的进程组;

#参数
-A :所有的进程均显示出来  
-a :不与terminal有关的所有进程  
-u :有效用户的相关进程  
-x :一般与a参数一起使用,可列出较完整的信息  
-l :较长,较详细地将PID的信息列出  

kill 命令

(该命令用于向某个PID传送一个信号,它通常与ps和jobs命令一起使用)

kill -signal PID  
#-->  signal常用参数如下:
#-->  1:SIGHUP,启动被终止的进程  
#-->  2:SIGINT,相当于输入ctrl+c,中断一个程序的进行  
#-->  9:SIGKILL,强制中断一个进程的进行  
#-->  15:SIGTERM,以正常的结束进程方式来终止进程  
#-->  17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行  
kill -signal PID  
#-->  signal常用参数如下:
#-->  1:SIGHUP,启动被终止的进程  
#-->  2:SIGINT,相当于输入ctrl+c,中断一个程序的进行  
#-->  9:SIGKILL,强制中断一个进程的进行  
#-->  15:SIGTERM,以正常的结束进程方式来终止进程  
#-->  17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行  
kill -signal PID  
#-->  signal常用参数如下:
#-->  1:SIGHUP,启动被终止的进程  
#-->  2:SIGINT,相当于输入ctrl+c,中断一个程序的进行  
#-->  9:SIGKILL,强制中断一个进程的进行  
#-->  15:SIGTERM,以正常的结束进程方式来终止进程  
#-->  17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行  

killall 命令

该命令用于向一个命令启动的进程发送一个信号

killall [-iIe] [command name]
#--> 参数
-i :交互式的意思,若需要删除时,会询问用户
-e :表示后面接的command name要一致,但command name不能超过15个字符
-I :命令名称忽略大小写
# 例如:-SIGHUP 参考kill命令signal常用参数

killall -SIGHUP syslogd # 重新启动syslogd

tar 命令 解压缩

# 常用示例
tar -zxvf filename.tar.gz 			#--> 解压文件 filename.tar.gz
tar -zxvf filename.tar.gz -C ../ 	#--> 解压文件filename.tar.gz 到 上一级目录
tar -cvf  filename.tar.gz file1 file2 file3	#--> 压缩	 	
tar -cvf  filename.tar.gz ./*		#--> 压缩当前文件夹下所有文件到'filename.tar.gz'
tar -tvf temp.tar.gz 				#--> 查看压缩文件temp.tar.gz

# 注:文件名并不定要以后缀tar.gz结尾,这里主要是为了演示.

# 参数
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录
# *注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir

grep 命令

转自: 博客园 Beng Dou

# 是什么?
1. grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
2. Linux grep 命令用于查找文件里符合条件的字符串。
# 怎么用? 基本语法
grep [选项] "字符串/基本正则表达式" [文件]
#参数
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-q 不显示存在或者匹配的文本信息
-f 后接文件名,以文件中的每一行作为匹配项
-R 递归查询当前目录下的文件
-w 匹配单词
-o 只输出匹配字符串
-A 输出匹配行的后n行,后带数字,如-A 2
-B 输出匹配行的前n行,后带数字,如-B 2
-C 输出匹配行的前后n行,后带数字,如-C 2

特别说明
  1、对于匹配的字符串或者正则表达式需要注意,对于字符串,建议使用双引号,比如"test"、"test test"、"$VAR"等。对于正则表达式,建议使用单引号,比如'[0-9]*test'、'^[0-9]'等
  2、文件。可以使用文件全名,比如test.unl、student.txt等,也可以使用模式匹配,比如*表示所有文件、*.unl表示查找所有以.unl后缀的文件,Test*.unl表示以Test开头并以.unl结尾的文件等。
  
# 举些例子
1、查找包含oracle字符串的行
grep "oracle" /etc/passwd #区分大小写查找带oracle字符串的行
grep -i "oracle" /etc/passwd #不区分大小写查找带oracle字符串的行
grep -ni "oracle" /etc/passwd #不区分大小写查找带oracle字符串的行并显示行号
grep -i '^oracle:' /etc/passwd #查找以oracle:开头用的行

2、统计字符串oracle出现的次数
grep -c "oracle" /etc/passwd

3、显示当前目录下包含字符串"192.168.0.1"的文件名
grep -l "192.168.0.1" * #在当前目录下查找包含192.168.0.1的文件,不包括子目录下文件。*表示查找当前目录下的所有文件
grep -il "192.168.0.1" * #忽略大小写查找包含192.168.0.1的文件,不包括子目录下的文件
grep -ilR "192.168.0.1" * #递归查找当前目录及子目录下包含192.168.0.1的文件

4、去除空行展示文件内容
grep -v '^$' /etc/passwd
#  更多例子点击上方链接跳转至正主博客查看

| 管道符

在这里插入图片描述

# 是什么?
管道命令
# 什么作用?
Linux所提供的管道符'|'将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
# 怎么用?举个例子
ps aux | grep java  只查看java的相关进程信息
...自己摸索常用的

> >>输出重定向

转自:

linux中的标准输入输出
Linux shell中>&1的含义解释 全网最全,看完就懂

# > >> 是什么?
输入/输出重定向

主要说输出 觉得输出用的多一些 输入可访问上方链接至正主博客查看  先了解几个知识点:

#1. 	/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞” 
#2.		Linux中的标准输入输出
	标准输入0    从键盘获得输入	 	 /proc/self/fd/0 
	标准输出1    输出到屏幕(即控制台)	/proc/self/fd/1 
	错误输出2    输出到屏幕(即控制台) 	/proc/self/fd/2 
	
	由此得到两种输出 1(标准) 和 2(错误) 默认不写就是1(标准输出) 
 
1、2>/dev/null	   意思就是把错误输出到“黑洞” 
 

2、>/dev/null 2>&1  默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞” 
 

3、2>&1 >/dev/null  意思就是把错误输出2重定向到标准输出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕 

关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。 

[某种输出]>[文件] 
2>1 会把错误输出重定向到名为1的文件中
2>&1 会把错误输出重定向到标准输出.
类型文件描述符默认情况对应文件句柄位置
标准输入(standard input)0从键盘获得输入/proc/self/fd/0
标准输出(standard output)1输出到屏幕(即控制台)/proc/self/fd/1
错误输出(error output)2输出到屏幕(即控制台)/proc/self/fd/2
命令介绍
command >filename把标准输出重定向到新文件中
command 1>filename同上
command >>filename把标准输出追加到文件中
command 1>>filename同上
command 2>filename把标准错误重定向到新文件中
command 2>>filename把标准错误追加到新文件中
示例 filenamefilename 若 存在filename 若 不存在
> filename则新建filename 覆盖原文件若不存在则新建
>> filename在原文件基础追加若不存在则新建

先玩玩简单的

#当前文件有一个test文件
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
test

#先来看看错误输出 我们cat test2这个不存在的文件 报错说没有这样的文件或文件夹
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test2
cat: test2: No such file or directory

#再来看看标准输出 我们cat test这个文件 成功打印出文件内容
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test
qiaohuiguo
qiaohuiguo

#最后我们cat test test1 test2 多个文件 打印出test 报错test1 test2
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 
qiaohuiguo
qiaohuiguo

cat: test1: No such file or directory
cat: test2: No such file or directory

#-----------------------------使用 > ---------
#使用>标准输出  
#>out == 1>out 将标准输出到out文件中
#2>err 将错误输出到err文件中
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 >out 2>err

#ls 多了out 和 err 文件 
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
err  out  test

#cat out 看一下标准输出 打印test文件内容 没问题
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat out 
qiaohuiguo
qiaohuiguo

#cat err 看一下错误输出 报错说报错说没有这样的文件或文件夹
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat err 
cat: test1: No such file or directory
cat: test2: No such file or directory

#-----------------------------测试 > 和 >> 区别 ---------
#先看 > 我执行两次以上操作 两次cat out 和 cat err 结果相同
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 >out 2>err

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
err  out  test

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat out 
qiaohuiguo
qiaohuiguo

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat err 
cat: test1: No such file or directory
cat: test2: No such file or directory

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 >out 2>err
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
err  out  test

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat err 
cat: test1: No such file or directory
cat: test2: No such file or directory

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat out 
qiaohuiguo
qiaohuiguo

#再看 >> 我执行两次以上操作 两次cat out 和 cat err 结果相同
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 >>out 2>>err
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
err  out  test
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat out 
qiaohuiguo
qiaohuiguo

qiaohuiguo
qiaohuiguo
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat err 
cat: test1: No such file or directory
cat: test2: No such file or directory
cat: test1: No such file or directory
cat: test2: No such file or directory

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 >>out 2>>err
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat err 
cat: test1: No such file or directory
cat: test2: No such file or directory
cat: test1: No such file or directory
cat: test2: No such file or directory
cat: test1: No such file or directory
cat: test2: No such file or directory
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat out 
qiaohuiguo
qiaohuiguo

qiaohuiguo
qiaohuiguo

qiaohuiguo
qiaohuiguo

# 结果明显 不用多解释了......

在看看稍微难理解的

#--------1. /dev/null---------------

#当前文件只有test 一个文件
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
test

#cat test test1 test2 应是输出test文件内容 并将错误输出到/dev/null 
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test1 test2 2>/dev/null 
qiaohuiguo
qiaohuiguo

#cat /dev/null  什么都没打印
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat /dev/null

#看一下/dev/null 是什么?
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls -l /dev/ | grep null
crw-rw-rw- 1 root root      1,   3 Aug  7 15:27 null

#将/dev/null 理解为黑洞就行  它是c
l 是链接文件
d 是目录文件
c 是字符设备文件
b 是设备文件
- 是文件
#--------1. >/dev/null 2>&1 ---------------
#&1是什么? 

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
test

#先看看这一系列操作 标准输入到黑洞 错误输入到&1 &1会是一个文件吗? 发现什么都没有打印
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test2 test3 >/dev/null 2>&1

#看一下目录还是只有test 并没有生成&1文件
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
test

#先看看这一系列操作 错误输入到&1  标准输入到黑洞 发现错误打印了? 
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test2 test3 2>&1 >/dev/null 
cat: test2: No such file or directory
cat: test3: No such file or directory

#在看一下目录还是只有test
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
test

#看正主的博客解释

[某种输出]>[文件] 
2>1 会把错误输出重定向到名为1的文件中
2>&1 会把错误输出重定向到标准输出.

#突发奇想 错误默认不是也会输入到控制台吗,试了试和我预想一样, 干嘛还要重定向? 这里不懂
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test2 test3  >/dev/null 
cat: test2: No such file or directory
cat: test3: No such file or directory

#最后在验证一下正主博客说的& 我把&去掉执行 确实是将错误写入到名为1的文件中了
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test2 test3 2>1 >/dev/null 
[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat test test2 test3 >/dev/null 2>1

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# ls
1  test

[root@iZ8vb75i2jsj7xn7ryxgm6Z temp]# cat 1
cat: test2: No such file or directory
cat: test3: No such file or directory

# 尝试到现在 应该大致理解了> >> & 的用处了吧?

# 问题来了 ?
#  >/dev/null 2>&1   VS    2>&1 >/dev/null

乍眼看这两条命令貌似是等同的,但其实大为不同。
正主提到了,linux在执行shell命令之前,就会确定好所有的输入输出位置,并且 *从左到右* 依次执行重定向的命令。

那么我们同样从左到右地来分析  2>&1 >/dev/null:

2>&1 将错误输出绑定到标准输出上。
由于此时的标准输出是默认值,也就是输出到屏幕,所以错误输出会输出到屏幕。

>/dev/null,将标准输出1重定向到/dev/null中。

看下图!!!! 重在自己找方法理解

在这里插入图片描述

nohup 后台启动

转自: nohup和&后台运行,进程查看及终止

#用途:不挂断地运行命令。

#语法:nohup Command [ Arg … ] [ & ]

# 测试 

./hello 
ctrl+C   进程停止
--------------------

./hello & 
ctrl+C   进程继续运行
关闭session 进程停止
--------------

nohup ./hello 
ctrl+C   进程停止
不Ctrl+C 之间关闭session 进程继续运行
--------------

nohup ./hello &
ctrl+C   进程继续运行
关闭session 进程继续运行


结论

使用**&**后台运行程序:

  • 结果会输出到终端
  • 使用Ctrl + C发送SIGINT信号,程序免疫
  • 关闭session发送SIGHUP信号,程序关闭

使用nohup运行程序:

  • 结果默认会输出到nohup.out
  • 使用Ctrl + C发送SIGINT信号,程序关闭
  • 关闭session发送SIGHUP信号,程序免疫

平日线上经常使用nohup和&配合来启动程序

  • 同时免疫SIGINT和SIGHUP信号

同时,还有一个最佳实践:

  • 不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里

常用情况:

#后台运行程序
nohup java -jar test.jar &
#后台运行程序 标准日志输出->黑洞 错误日志重定向到黑洞
nohup java -jar yourProject.jar >/dev/null 2>&1 & 
#后台运行程序 标准日志输出->黑洞 错误日志输出至log
nohup java -jar yourProject.jar >/dev/null 2>log & 

防火墙 启动 关闭

防火墙 centos6 为iptables

centos7 为 firewall 以centos7为例

  • 查看防火墙状态
firewall-cmd --state
  • 关闭防火墙
systemctl stop firewalld.service
  • 启动防火墙
systemctl start firewalld.service
  • 添加端口到防火墙过滤规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载防火墙过滤规则
firewall-cmd --reload
  • 移除端口到防火墙过滤规则
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
# 重新加载防火墙过滤规则
firewall-cmd --reload
  • 查看已开放的端口
firewall-cmd --list-ports

服务添加到开机自启

  • 查看服务列表
chkconfig --list
  • 将mysqld服务添加至列表
# mysqld服务须以注册为服务 即在/etc/init.d中存在
chkconfig --add mysqld
  • 将mysqld服务从列表移除
chkconfig --del mysqld
  • 开启自启 \ 关闭自启
chkconfig mysqld on

chkconfig mysqld off

Linux OS 将操作 环境分为以下7个等级,即

0:关机
1:单用户模式(单用户、无网络)
2:无网络支持的多用户模式(多用户、无网络)
3:有网络支持的多用户模式(多用户、有网络)
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式(多用户、有网络、X-Window界面)
6:重新引导系统,即重启

Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很 多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假 设你要维护系统进入单用户状态,那 么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服 务。

查看服务所在端口

#列出所有服务端口
[root@192 opt]# netstat -lntup
#命令没找到就安装
-bash: netstat: command not found
#net-tools安装 根据netstat -lntup 命令是否报错在执行 执行netstat报错在安装
[root@192 /]# yum install net-tools -y
[root@192 opt]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1189/sshd           
tcp6       0      0 :::3306                 :::*                    LISTEN      3289/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1189/sshd           
udp        0      0 0.0.0.0:68              0.0.0.0:*                           997/dhclient 
#出现下面表格结果
ProtoRecv-QSend-QLocalAddressForeign AddressStatePID/Program name
tcp000.0.0.0:220.0.0.0:*LISTEN1189/sshd
tcp600:::3306:: : *LISTEN3289/mysqld
tcp600:::22:: : *LISTEN1189/sshd
udp000.0.0.0:680.0.0.0:*997/dhclient
#不想展示过多可通过此命令直接查找mysql端口
[root@192 opt]# netstat -lntup | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      3289/mysqld 

查看某个端口被谁所占用

# 安装
[root@192 /]# yum install lsof -y
# 查看版本
[root@192 /]# lsof -v
lsof version information:
    revision: 4.87
    latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
    latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
    latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
    constructed: Tue Oct 30 16:28:19 UTC 2018
    constructed by and on: mockbuild@x86-01.bsys.centos.org
    compiler: cc
    compiler version: 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
    compiler flags: -DLINUXV=310000 -DGLIBCV=217 -DHASIPv6 -DHASSELINUX -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAS_STRFTIME -DLSOF_VSTR="3.10.0" -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic
    loader flags: -L./lib -llsof  -lselinux
    system info: Linux x86-01.bsys.centos.org 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    Anyone can list all files.
    /dev warnings are disabled.
    Kernel ID check is disabled.

# 使用 
[root@192 /]# lsof -i :3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  3289 mysql   20u  IPv6  36973      0t0  TCP *:mysql (LISTEN)
mysqld  3289 mysql   84u  IPv6  53546      0t0  TCP 192.168.0.106:mysql->192.168.0.105:51730 (ESTABLISHED)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值