1、ip addr   查看本机IP地址

Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上还有一个命令叫ip addr可以查看IP地址。


2、service network restart  重启网卡


3、wget命令  下载文件的工具

wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。

它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。

参考链接:wget命令详解 


4、rpm -q centos-release  查看centos系统版本

rpm命令是RPM软件包的管理工具。RPM(Red Hat Package Manager)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装、升级、删除和查询软件信息,间接提升了Linux的适用度。

rpm常见命令参数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 用法: rpm [选项...]

-a:查询所有套件;

-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;

-c:只列出组态配置文件,本参数需配合"-l"参数使用;

- d:只列出文本文件,本参数需配合"-l"参数使用;

-e<套件档>或--erase<套件档>:删除指定的套件;

-f<文件>+:查询拥有指定文件的套件;

-h或--hash:套件安装时列出标记;

-i:显示套件的相关信息;

-i<套件档>或--install<套件档>:安装指定的套件档;

-l:显示套件的文件列表;

-p<套件档>+:查询指定的RPM套件档;

-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;

-R:显示套件的关联性信息;

-s:显示文件状态,本参数需配合"-l"参数使用;

-U<套件档>或--upgrade<套件档>:升级指定的套件档;

-v:显示指令执行过程;

-vv:详细显示指令执行过程,便于排错。  

5、rz 和sz 文件名   跨系统文件上传和下载

有时候想在windows和linux之间上传或下载某个文件,其实有个很简单的方法就是rz,sz命令。

首先,你的远程Linux服务器上需要安装安装lrzsz工具包,yum  install lrzsz,安装完毕即可使用。

然后,rz 与 sz 需要你的终端支持(即rz命令是在客户端里面执行的)。终端就是你用来连接远程服务器的客户端,像是 XShell、SecureCRT、rxvt、putty 什么的,用来访问管理远程或虚拟化的UNIX/Linux桌面环境,

rz,sz是便是Linux/Unix同Windows进行件传输的命令行工具

rz、sz 命令可以很方便的将本地的文件上传到服务器或者从服务器上下载文件到本地,但是一般 Linux 系统并没有默认安装这两个工具。

①Linux服务器端安装

要是Linux服务器不支持rz、sz命令的话,需要安装lrzsz 工具以支持

yum install lrzsz -y

②客户端使用

上传:

rz     本地上传文件到服务器

下载:

sz  文件名     从服务器下载文件到本地

本人使用的客户端是XShell

在XShell里面输入rz命令就可以出现本地窗口,供我们选择文件上传


6、systemctl start mysqld.service   负责控制systemd系统和服务管理器

其中的一般start或restart是没有结果直接返回的,要查看启动结果,可以用命令:systemctl status mysqld.service

以前都用service命令管理mysql,现在liunx系统升级了,又有了新的更好的方法管理系统进程,现在我们来学习如何用systemctl命令管理mysql。

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。

启动mysql服务

systemctl start mysqld.service

停止mysql服务

systemctl stop mysqld.service

重启mysql服务

systemctl restart mysqld.service

查看mysql服务当前状态

systemctl status mysqld.service

设置mysql服务开机自启动

systemctl enable mysqld.service

停止mysql服务开机自启动

systemctl disable mysqld.service


7、cat filename和| grep "字符串"有什么区别

问题:

执行cat filename  | grep "字符串"和 grep "字符串" {文件名}命令,结果虽然是一样的,但是执行的流程有什么区别?

答案:

cat会一次性显示所有的内容,适合查看内容较少的文i本文件。

管道“|”用来将前一个命令的标准输出传递到下一个命令的标准输入

grep "字符串" {文件名}  根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行。

①cat filename命令

cat 命令用于连接文件并打印到标准输出设备上。

cat主要有三大功能: 1.一次显示整个文件。$ cat filename 2.从键盘创建一个文件。$ cat > filename  只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件: $cat file1 file2 > file

语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

实例:

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

  • 1. OUTFILE 指输出的镜像文件名。
  • 2. IMG_FILE 指镜像文件。
  • 3. 若从镜像文件写回 device 时,device 容量需与相当。
  • 4. 通常用制作开机磁片。

②grep命令

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

语法:

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数:

-a或--text 不要忽略二进制的数据。
-A<显示列数>或--after-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之后的内容。
-b或--byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B<显示列数>或--before-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c或--count 计算符合范本样式的列数。
-C<显示列数>或--context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或--directories=<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式>或--regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。
-E或--extended-regexp 将范本样式为延伸的普通表示法来使用。
-f<范本文件>或--file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
-F或--fixed-regexp 将范本样式视为固定字符串的列表。
-G或--basic-regexp 将范本样式视为普通的表示法来使用。
-h或--no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H或--with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i或--ignore-case 忽略字符大小写的差别。
-l或--file-with-matches 列出文件内容符合指定的范本样式的文件名称。
-L或--files-without-match 列出文件内容不符合指定的范本样式的文件名称。
-n或--line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q或--quiet或--silent 不显示任何信息。
-r或--recursive 此参数的效果和指定"-d recurse"参数相同。
-s或--no-messages 不显示错误信息。
-v或--revert-match 反转查找。
-V或--version 显示版本信息。
-w或--word-regexp 只显示全字符合的列。
-x或--line-regexp 只显示全列符合的列。
-y 此参数的效果和指定"-i"参数相同。
--help 在线帮助。

举例:

yum list installed | grep java  显示匹配已安装的java的软件包


8、more和less命令的区别

more: 顾名思义显示更多
less: 由于more不能后退,就取more的反义词less加上后退功能
所以Linux里流传着这样一句话:"less is more".

总结下more 和 less的区别:

平常工作中经常需要查看很大的文本文件,如果用vi打开的话会非常慢,我们平常都用less,less比more更强大更易用。

1.  less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示

2.  less不必读整个文件,加载速度会比more更快

3.  less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容

① more   分页显示大文本文件

格式:

more [-OPTION] [FILE]

参数:

-f:强制打开特殊文件,如目录或二进制文件

-n:每页行数。(可以理解为每按一下空格,跳转的行数)

+n:从第n行开始显示

-s:将连续空行显示为一行

+/pattern: 搜索字符串(pattern), more的搜索功能好难用,还是用less的吧。

操作:

空格键:下一页

Enter:向下一行

q:退出

②less  分页显示大文本文件,支持后退到上一页

格式:

less [-OPTION] [FILE]

参数:

-f:强制打开特殊文件,如目录或二进制文件

-i: 忽略搜索时的大小写

-s:将连续空行显示为一行

-N:显示行号

操作:

空格键:向下滚动一页

Enter:向下滚动一行

pageup:向上滚动一页

pagedown:向下滚动一页

?:向上搜索字符串

/:向下搜索字符串

n:上一个搜索结果

N:下一个搜索结果

more和less都可以直接打开文件也可以接收标准输入:

less test.txt
cat less.txt | lessmore

可以设置每页显示的行数,less不可以。但是less的搜索功能更强大,所以根据需求选择适当的命令


9、firewall防火墙相关命令

在 Centos 7 中防火墙由 firewalld 来管理,而不是 iptables。

9.0.查看已经开放的端口

firewall-cmd --list-ports  

9.1. 查看防火墙状态

firewall-cmd --state  ## 结果显示为running或not running

9.2. 关闭防火墙firewall和禁止防火墙开机启动

systemctl stop firewalld.service

systemctl disable firewalld.service

9.3. 关闭防火墙firewall后开启

systemctl start firewalld.service

9.4. 开启端口

Centos7 firewall开放3306端口:

## zone -- 作用域
## add-port=80/tcp -- 添加端口,格式为:端口/通讯协议
## permanent -- 永久生效,没有此参数重启后失效

firewall-cmd --zone=public --add-port=3306/tcp --permanent
## 开启3306端口后,workbench或naivcat 就能连接到MySQL数据库了

9.5. 重启防火墙

firewall-cmd --reload

9.6. 常用命令介绍

firewall-cmd --state                           ##查看防火墙状态,是否是running
firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones                       ##列出支持的zone
firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp                 ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
man firewall-cmd                               ##查看帮助
systemctl status firewalld.service                               ##查看防火墙状态
systemctl [start|stop|restart] firewalld.service                 ##启动|关闭|重新启动  防火墙

##查询端口号80 是否开启
firewall-cmd --query-port=80/tcp

更多命令,使用 firewall-cmd --help 查看帮助文件


10、netstat  -anp  |grep 查询端口是否被占用

10.1 .netstat  -anp  |grep   端口号

如下,我以3306为例,netstat  -anp  |grep  3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图:

主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。

10.2. netstat -aptn命令行,查看所有开启的端口号

10.3.netstat   -nultp(此处不用加端口号)

该命令是查看当前所有已经使用的端口情况,图中可以看出我的82端口没有被占用:


11、whereis nginx 查找nginx的安装目录

whereis 命令主要用于定位可执行文件(除shell 内置命令外)、源代码文件、帮助文件在文件系统中的位置
    
备注: which 只能定位 可执行文件(除shell 内置命令外)


12、vi命令

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1>vi的基本概念

  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

    1) 命令行模式command mode)

  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

    2) 插入模式(Insert mode)

  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

    3) 底行模式(last line mode)

  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

2>vi的基本操作

a) 进入vi

      在系统提示符号输入vi及文件名称后,进入vi之后,是处于命令行模式,您要切换到插入模式才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到插入模式再说吧!

b) 命令行模式切换为插入模式编辑文件

  在命令行模式下按一下字母「i」就可以进入插入模式,这时候你就可以开始输入文字了。

c) 插入模式 切回 命令行模式

  目前处于插入模式,就只能一直输入文字,如果想要保存推出就先切换到命令行模式,按「ESC」键可回到命令行模式

d) 退出vi及保存文件

  在命令行模式下,按一下「:」冒号键进入Last line mode,例如:

: w filename (输入 「w filename」将文章以指定的文件名filename保存)

: wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)


13、history命令

用于显示历史记录和执行过的指令命令。在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2

history命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。


14、telnet ip port

查看某一个机器上的某一个端口是否可以访问


15、find / -name *tomcat*

该命令是查找出系统路径 “ / ”下所有包含tomcat字段的文件


16、jps(Java Virtual Machine Process Status Tool)

是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

安装完jdk8之后再安装openjdk-devel

yum install java-1.8.0-openjdk-devel.x86_64

 jps命令使用


-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件  

jps -l示例


17、nohup和&启动程序区别

sigint: signal interrupt,ctrl+c会发送此信号

sighup: signal hang up,关闭终端会发送此挂断信号

nohup: no hang up,忽略挂断信号signup

&: 放在执行命令最后,使启动的程序忽略sigint信号

所以最终的结果就是:

使用nohub启动的程序可以使用ctrl+c关闭,关闭终端无法终止程序;

使用&启动的程序无法使用ctrl+c关闭,关闭终端可以使程序关闭;

同时使用nohup和&启动的程序,ctrl+c和关闭终端都无法关闭。

举个例子:linux服务器部署SpringBoot项目并查看项目运行日志

java -jar xxx.jar &

该命令启动jar,一旦Xshell窗口关闭,JAR就停止运行了。如果想让项目在后台一直运行,通过如下命令启动JAR:

最近项目中使用的springboot打的jar包,放到服务器上跑,为了防止关闭终端窗口导致程序挂掉,采用nohup和&组合命令来操作。

命令如下 :

nohup java -jar test.jar &

但是这种方式启动项目会默认生成一个nohup.out的文件来记录日志,而且这个文件太占磁盘内存了,几天下来发现这个文件大小有好几个G,所以为了减少磁盘被大量消耗,决定启动项目时不输出nohup.out文件。

解决方案如下:

只输出错误信息到日志文件

nohup java -jar yourProject.jar >/dev/null 2>log & 

什么信息也不要 

nohup java -jar yourProject.jar >/dev/null 2>&1 & 

2>&1 表示不仅命令行正常的输出保存到log中,产生错误信息的输出也保存到log文件中;

nohup java -jar xxx.jar > consoleMsg.log 2>&1 &

上面的2 和 1 的意思如下:

0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)

(1). >/dev/null

这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

(2). 2>&1

这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。


18、用命令查看Linux发行版本信息 lsb_release -a

LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。

-v 显示版本信息。
-i 显示发行版的id。
-d 显示该发行版的描述信息。
-r 显示当前系统是发行版的具体版本号。
-c 发行版代号。
-a 显示上面的所有信息。
-h 显示帮助信息。


更多推荐

Linux服务器运维常用命令(持续更新)