linux服务器运维

mac使用ssha命令

mac切换root :sudo -i
查看ssha列表: ssha -l
进入服务器:ssha -s index

scp命令

scp /Users/daishiyu/Documents/files/临时文件/临时记录.txt  root@ip:/home/file/test

用ssh直接连接服务器

ssh -p 端口号 服务器用户名@ip

linux查看N条日志日志

tail -Nf app.log

linux中grep命令的用法

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的。
首先谈一下grep命令的常用格式为:grep [选项] ”模式“ [文件]
grep家族总共有三个:grep,egrep,fgrep。

https://www.cnblogs.com/flyor/p/6411140.html
https://www.cnblogs.com/htyj/p/10256612.html

linux查找日志cat和grep

查询关键字前后30--cat 日志文件名.log | grep -30 ‘关键字’
查询两个关键字同时出现 --cat 日志文件名.log | grep ‘关键字1| grep ‘关键字2’
压缩以后的文件查询 --gzip -dc 文件名 | grep -30 “关键字”
查询中所匹配模式的最后一项 --cat 文件名 | grep ‘关键字’ | tail -n

查看端口是否被占用的命令

netstat -nap | grep port

netstat命令各个参数说明如下:
-a:列出所有网络状态,包括 Socket 程序;
-c秒数:指定每隔几秒刷新一次网络状态;
-n:使用 IP 地址和端口号显示,不使用域名与服务名;
-p:显示 PID 和程序名;
-t:显示使用 TCP 协议端口的连接状况;
-u:显示使用 UDP 协议端口的连接状况;
-I:仅显示监听状态的连接;
-r:显示路由表;

查看端口是否开放:

lsof -i:端口号 --如果没有任何输出则说明没有开启该端口号

我们可以使用netstat -atu检查linux中的开放端口

Linux系统字符集查看

echo $LANG
Linux修改字符集
vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
修改文件保存退出之后要生效要执行如下命令才可生效
source /etc/sysconfig/i18n

vim操作(参考:https://blog.csdn.net/u010956473/article/details/74087608)

下面的操作都可以配合n使用,比如在正常模式(下面会讲到)下输入3h, 则光标向左移动3个字符

:x,yd--删除从x行到y行的内容
:x,.d--删除从x行到本行的内容
dd--删除当前行内容
ndd--删除当前开始到后面n行内容
h/后退--左移
l/空格--右移
j--下移一行
k--上移一行
+/Entry--把光标移至下一行第一个非空白字符
- --把光标移至上一行第一个非空白字符
w--前移一个单词,光标停在下一个单词开头
W--移动下一个单词开头,但忽略一些标点
e--前移一个单词,光标停在下一个单词末尾
E--移动到下一个单词末尾,如果词尾有标点,则移动到标点
b--后移一个单词,光标停在上一个单词开头
B--移动到上一个单词开头,忽略一些标点
ge--后移一个单词,光标停在上一个单词末尾
gE--同 ge ,不过‘单词’包含单词相邻的标点
0--移动到行首
g0--移到光标所在屏幕行行首
^--移动到本行第一个非空白字符
nG--到文件第n行
H--把光标移到屏幕最顶端一行
M--把光标移到屏幕中间一行
L--把光标移到屏幕最底端一行
gg--到文件头部
G--到文件尾部
ctrl+f--下翻一屏
ctrl+b--上翻一屏
ctrl+d--下翻半屏
ctrl+u--上翻半屏
ctrl+e--向下滚动一行
ctrl+y--向上滚动一行
zz--将当前行移动到屏幕中央
zt--将当前行移动到屏幕顶端
zb--将当前行移动到屏幕底端
r--修改当前字符
yy--复制整行   在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴
nyy--复制n行   在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴
yn--复制后面几个字符
/something--在后面的文本中查找something
?something--在前面的文本中查找something
/pattern/+number--将光标停在包含pattern的行后面第number行上
/pattern/-number--将光标停在包含pattern的行前面第number行上
n--向后查找下一个
N--向前查找下一个
:s/old/new --new替换当前行第一个old
:s/old/new/g --new替换当前行所有的old
:n1,n2s/old/new/g --new替换文件n1行到n2行所有的old。
:%s/old/new/g --new替换文件中所有的old。
:%s/^/xxx/g -- 在每一行的行首插入xxx,^表示行首。
:%s//xxx/g−-在每一行的行尾插入xxx,表示行尾。
所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)

&和nohup

&–当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &
适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

command  >  out.file  2>&1  & 
这样,所有command命令的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
nohub--使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
nohup command &

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &

command >out.file 2>&1 & 命令解析:
command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
试想2>1代表什么,2>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1&1结合就代表标准输出了,就变成错误重定向到标准输出.

Supervisor的作用与配置

Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。
supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

ps命令

[root@localhost ~]# ps aux
#查看系统中所有的进程,使用 BS 操作系统格式
[root@localhost ~]# ps -le
#查看系统中所有的进程,使用 Linux 标准命令格式
选项:
a:显示一个终端的所有进程,除会话引线外;
u:显示进程的归属用户及内存的使用情况;
x:显示没有控制终端的进程;
-l:长格式显示更加详细的信息;
-e:显示所有进程;

"ps aux" 可以查看系统中所有的进程;
"ps -le" 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
"ps -l" 只能看到当前 Shell 产生的进程;
ps aux输出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式说明:
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)

springboot项目使用外部配置文件

java -jar xxxx.jar --spring.config.location=D:/kawa/application.yml来加载外部的配置
java -jar demo-0.0.1-SNAPSHOT.jar --spring.config.location=./application.properties

idea项目启动器指定配置文件

-DSpring.profiles.active=test

防火墙命令

#停止  
systemctl stop firewalld.service  
#禁止firewall开机启动  
systemctl disable firewalld.service
#重启防火墙
firewall -cmd --reload
查看状态
firewall-cmd –stat 
查看已经开放的端口
firewall-cmd --list-ports 
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent  
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

maven打包跳过测试

 mvn install -Dmaven.test.skip=true

Linux操作文件相关常用命令(https://blog.csdn.net/gexiaoyizhimei/article/details/100122368)

新建操作:

mkdir abc #新建一个文件夹
touch abc.sh #新建一个文件
echo "abc" > test.txt #新建一个文件,并将abc写入。这里用到了重定向符
查看操作:

du -h 文件/目录  #查看大小
cat abc.txt #查看abc的内容
head -5 abc.txt #查看abc前5行内容。默认是10行

tail [选项] 文件名
各选项的含义如下:
+num:从第num行以后开始显示
-num:从距文件尾num行处开始显示。如果省略num参数,系统默认值为10.
-f: 循环读取,例如查看服务器日志时,可以实时观察
#filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新。
tail -f filename 
#查看最后20行
tail -f filename
more命令一次显示一屏信息,若信息未显示完屏幕底部将出现“-More-(xx%)”。
此时按Space键,可显示下一屏内容;
按“回车”键,显示下一行内容;
按B键,显示上一屏;
按Q键,可退出more命令。

ess命令:和more命令类似,但是比more命令更强大。在很多时候,必须使用less,比如管道。例如:
ll /etc | less

stat 命令:
查看文件的详细信息,比如创建修改时间,大小等
[root@localhost zx]# stat index.html 
  文件:"index.html"
  大小:29006     	块:64         IO 块:4096   普通文件
设备:fd00h/64768d	Inode:17589607    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:home_root_t:s0
最近访问:2019-09-02 21:47:41.824053666 +0800
最近更改:2019-09-02 21:44:33.588587500 +0800
最近改动:2019-09-02 21:44:33.588587500 +0800
创建时间:-
file命令: Linux中后缀并没有实际约束意义.
file test.txt #查看test.txt的文件类型
rm -f  aa.txt #强制删除aa.txt
rm -rf fileDir #强制删除fileDir文件夹和里边的所有文件
cp:复制文件或目录
cp [options] source dest

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

举例:
#将../html/index.html 复制到当前目录
cp ../html/index.html .    
#将../html/ 目录下的文件及子目录复制到当前的tt目录下,如果tt不存在,会自动创建
cp -r ../html/  tt/       
#将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1  
#如果dir2目录已存在,则需要使用
cp -r dir1/. dir2

远程复制:
#将当前目录下的test.txt复制到远程000.01机器的/zx目录下
scp test.txt root@192.168.000.01:/zx
#将test.txt复制到远程用户的根目录,并命名为textA.txt
scp test.txt root@192.168.000.01:testA.txt
#也可以不指定用户,在后续提示中再输入,如下:
scp test.txt 192.168.000.01:/zx
#从远程复制到本地: -r用于递归整个目录
scp -r remote_user@remote_ip:remote_folder local_path
移动/重命名文件:
移动操作可以理解成复制文件后,删除原文件。
mv /zx/soft/* .   #复制/zx/soft目录中的所有文件到当前目录
mv a.txt ./test/a.txt  #复制当前目录a.txt到当前的test目录下。
mv /zx/soft/  /tmp/soft  #复制文件夹到/tmp/下,必须保证tmp是存在的文件夹

重命名还是用的移动操作命令
#将目录(文件)A重命名为B
mv A B
#将/a目录(文件)移动到/b下,并重命名为c。要保证b目录存在。
mv /a /b/c
#将当前test1目录移动到当前的test目录并命名为b
mv ./test1 ./test/b 
tar命令:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
解压压缩操作:
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
举例说明:
tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar
eg2:
    tar -xzf nginx-1.14.0.tar.gz //解压到当前目录
    tar -zxf nginx-1.14.0.tar.gz -C /usr/local/nginx  #解压到对应目录
 eg3:
 	tar -zxvf nginx...tar.gz #解压并显示过程
注意:有些压缩程序提示命令找不到,需要进行安装,例如:
yum install unzip

总结:
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 解压  
ln、file和touch命令:

ln命令:名用于创建链接文件,包括硬链接(Hard Link)和符号链接(Symbolic Link) 。我们常用的是符号链接,也称软连接。软连接就类似windows里的快捷方式。
#在当前目录创建一个软连接,指向/etc/fastab,名称也是fastab
ln -s /etc/fastab
#在当前目录创建一个指向/boot/grub的软连接,命名为gb
ln -s /boot/grub gb
注意:删除软连接 正确方式是:rm -rf ./gb
错误方式:rm -rf ./gb/ 这样会删除了原有grub下的内容。特别是针对系统文件的软连接,删除一定要慎重。

file命令 用于识别文件的类型
Linux中文件后缀只是方便使用者识别,没有实质的约束作用。file命令可以查看文件的实质类型:
file [-bcLz] 文件|目录
选项说明:
文件|目录:需要识别的文件或目录
-b: 显示识别结果时,不显示文件名
-c: 显示执行过程
-L: 直接显示符号链接文件指向的文件类型
-z: 尝试去解读压缩文件的内容

touch命令: 用于改变文件或目录的访问时间和修改时间
touch [-am] [-t<日期时间>] [目录|文件]
如果指定目录文件不存在,则会直接创建一个空文件,所以touch也常用来创建一个空白文件
#创建一个新文件aa.txt
touch aa.txt
选项说明:
-a: 只修改访问时间
-m : 只修改 修改时间
-t : 使用指定日期时间,而非系统时间 。例如要修改为20191020163813秒。参数就是:‘20191020163813
查找操作命令:
#从根目开始,查找名称以nginx开头的目录和文件
find / -name nginx*  
#查找文件大小超过100M的文件
find / -size +100M
#查找/home/zx目录下,10分钟内被修改过的文件和目录
find /home/zx/  -mmin -10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章