常用Linux命令
基本操作命令
转自:
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 | 把标准错误追加到新文件中 |
示例 filename | filename 若 存在 | 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 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
#出现下面表格结果
Proto | Recv-Q | Send-Q | LocalAddress | 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 |
#不想展示过多可通过此命令直接查找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)