linux运维常用知识点总结
作为一名java开发,平时工作中也会涉及到后端服务部署等一些linux运维任务,在此想总结一下我认为java开发应该掌握的一些运维基础知识。由于本人不是专业的运维工程师,难免会有遗漏和错误,仅供参考!
一、linux命令基本格式
~]$ command [-options] parameter1 parameter2 ... 命令 选项 参数(1) 参数(2)
- command为命令名称或可执行shell脚本。
- options为命令的选项,是可选的,分为短选项和长选项。一般来说,短选项为一个中划线+选项单字符简称,如-h,长选项为两个中划线+选项全称,如--help。
- parameter为命令或选项的的参数,可以有多个。
- 命令、选项和参数中间以空格相隔,多个空格都视为一格。
- 按下回车键,命令开始执行。
- 命令太长时,可以用反斜杠(\)转义回车键,式命令连续到到下一行。
- Linux系统区分大小写;
- 此命令基本格式,并不绝对,也有特殊。
二、linux系统的在线求助
使用--help选项、man、info命令:
- 大多数命令都有--help选项,可以简要的解释当前命令的所有选项和用法。
- man命令是manual(手册)的简称,相当于把命令安装时的帮助手册以文本的形式显示出来,比help详细。
- info命令显示的内容比man更丰富,更完整。
平时用的最多的是help,然后是man。
三、linux常用命令
1、文件与目录的查看:
ls [-option] filename/dirname常用选项:-a:查询全部文件,包括隐藏文件;-d:只列出目录本身,而不是列出目录内的文件数据;-h:将文件容量以人类较易读的方式(例如GB、KB等)列出来;-l:详细信息显示,包括文件的属性与权限等数据;-t:以时间排序,而不是用文件名;
2、复制文件或目录:
cp [-options] 源文件(source) 目标文件(destination)常用选项:-a:保留源文件属性;-f:强制的意思,目标文件已存在时,直接覆盖;-r:递归复制,用于目录的复制操作;
3、删除文件或目录:
rm [-options] filename/dirname常用选项:-f:强制删除,不询问,没有警告信息;-r:递归删除,用于目录的删除操作。入狱小技巧:rm -rf /*
4、数据截取
head:取出文件前面几行
head [-n number] filename常见用法:head filename #显示文件前面10行hand -n 10 filename #显示文件前面10行head -n -10 fileanme #显示文件所有行数,但不包括最后10行
tail:取出文件后面几行
tail [-options] filename常用选项:-n:后面接数字,表示几行的意思;-f:持续刷新文件内容;常见用法:tail filename #显示文件最后10行tail -n 10 filename #显示文件最后10行tail -n +10 fileanme #显示文件所有行数,但不包括前面10行
5、修改文件或创建新文件:
touch [-options] filename常见用法:不加任何选项,直接接文件,如果该文件存在,则更新文件的时间(atime、ctime、mtime)为当前时间;文件不存在则新建空文件。这里涉及到文件的三个时间:修改时间(modification time):文件内容的修改时间;状态时间(status time):文件权限和属性的修改时间;读取时间(access time):文件内容被读取时的时间;
6、软连接和硬连接:
ls [-options] 源文件 目标文件常用选项:-s:不加任何参数就是硬连接,加上-s就是软连接;-f:如果目标文件存在,就主动将目标文件删除再建立;
7、文件的查找:
which:查找执行文件,根据PATH环境变量所规范的路径,查找执行文件的文件名。
which [-a] command
不加任何选项则列出第一个被找到的命令。常用选项:-a:将所有由PATH变量中能找到的命令均列出。
whereis:在一些指定的目录中查找文件(用的很少)。
locate:依据/var/lib/mlocate内的数据库记录,查找文件。
locate命令可根据系统提前建立好的数据库(相当于索引)搜索文件,数据库文件默认每天更新一次,可通过/etc/updatedb.conf配置,updatebd命令可手动更新数据库locate [-options] keyword常用选项:-i:忽略大小写;
find:可以根据文件名之外的其他属性查找文件,但没有索引,查找可能很慢。
find [PATH] [-options] [action]常用选项:-uid n : 查找属于该uid的文件;-user username :查找该用户的文件;-group groupname: 根据用户组查找;-name filename: 根据文件名查找;-size [+-]SIZE : 根据大小查找;常见用法:find / -name test #查找文件名包含test的文件find / -user test #查找属于用户test的文件 find / -size +50k #查找大于50k的文件find / -size -50c #查找小于50字节的文件
8、文件内容的查找:
grep [-options] [--color=auto] '搜寻字符串' filename/dirname常用选项:-i : 忽略大小写;-l : 显示匹配的文件名;-v :反向查找,查找不包含关键字的内容;-E :可使用正则表达式匹配;常见用法:grep A filename | grep B #同时匹配A和Bgrep -E 'A|B' filename #匹配A或Bgrep -v A filename #不包含A匹配
9、文件的压缩打包与解压:
tar:压缩打包文件。
如果使用gzip的压缩方式,打包后文件后缀为tar.gz,此格式window上可直接解压。常见用法:tar -zxvf filename #解压文件(只能解压由tar打包的文件)tar -zcvf filename #压缩文件
zip:压缩打包文件。
常见用法:zip -r package.zip file1 folder1 file2 #压缩文件和目录为package.zip包unzip package.zip #解压文件(可解压war包)
10、日期的显示与设置:
date:显示和设置日期与时间,一般在shell脚本中用的比较多。
查看时间:
date #查看当前时间date +%Y%m%d #显示前天年月日 date -d "+1 day" +%Y%m%d #显示前一天的日期 date -d "-1 day" +%Y%m%d #显示后一天的日期 date -d "-1 month" +%Y%m%d #显示上一月的日期 date -d "+1 month" +%Y%m%d #显示下一月的日期 date -d "-1 year" +%Y%m%d #显示前一年的日期 date -d "+1 year" +%Y%m%d #显示下一年的日期
设定时间:
date -s #设置当前时间,只有root权限才能设置,其他只能查看 date -s 20120523 #设置成20120523,这样会把具体时间设置成空00:00:00 date -s 01:01:01 #设置具体时间,不会对日期做更改 date -s "01:01:01 2012-05-23" #这样可以设置全部时间 date -s "01:01:01 20120523" #这样可以设置全部时间 date -s "2012-05-23 01:01:01" #这样可以设置全部时间 date -s "20120523 01:01:01" #这样可以设置全部时间
检查一组命令花费的时间(shell脚本中常用):
#!/bin/bash start=$(date +%s) nmap man.linuxde.net &> /dev/null end=$(date +%s) difference=$(( end - start )) echo $difference seconds.
11、查询是否为bash shell
type:查询命令是和否为Bah shell的内置命令。
常见用法:type nignxnginx is /usr/sbin/nginxtype cdcd is a shell builtin
12、查询登陆信息:
who:查询当前登陆的用户last:查询登陆记录
13、定时任务:
linux循环执行任务是由crond系统服务控制的。systemctl status crond #查看crond服务的启动状态
常见用法:cron -e #编辑定时任务cron -l #查看定时任务cat /var/log/cron #查看定时任务执行日志
14、进程和任务管理:
常见用法:
ps aux | grep 关键字 #查看进程kill -9 进程id #强制关闭该进程top [-d 数字] | grep 关键字 #动态查看进程变化,默认5秒刷新一次[ctrl] + z #切换当前任务到后台jobs -l #查看当前终端后台任务fg [任务id] #切换该任务到前台bg [任务id] #切换改任务到后台
15、查看端口监听情况:
记住一个就行,netstat -nltp。
16、系统服务:
systemctl [command] [unit]常用command:start #启动服务stop #关闭服务restart #重启服务enbale #开启自启动disable #关闭开机自启动status #查看状态等其他信息is-active #只查看状态,常用在脚本中is-enable #查看是否开机自启动,常用在脚本中list-units #查看所有已启动的服务,--all:查看所有服务,如:systemctl list-units --all
17、查看磁盘及内存:
df -h #查看磁盘使用及目录挂载free -m #查看内存使用情况
四、文本编辑器vim
vim文本编辑器linux文本编辑中最好用的工具之一了,命令有很多,但常用命令真的不多,我认为如果不是专业的运维人员,掌握以下用法就足够了。
1、移动光标的方法:
h或(左箭头键):向左移动一个字符j或(下箭头键):向下移动一个字符k或(上箭头键):向上移动一个字符i或(右箭头键):向右移动一个字符[home] :光标移动到行首[end] :光标移动到行尾[ctrl] + [f] : 向下翻动一页[ctrl] + [b] : 向上翻动一页[ctrl] + [d] : 向下翻动半页[ctrl] + [u] : 向上翻动半页gg :到文件开头G :到文件末尾
2、查找关键字:
/word : 向光标之下搜索?word :向光标之上搜索n :搜索后,向下查找关键字N :搜索后,向上查找关键字
3、删除、复制与粘贴:
dd :删除(剪切)光标所在行ndd :删除(剪切)光标向下n行yy :复制光标所在行nyy :复制光标向下n行p :将复制或剪切的数据粘贴在光标的下一行u :恢复前一个操作(撤销)[ctrl] + r : 撤销前一个撤销操作. : 小数点,重复执行上一个操作
4、编辑、保存和退出:
i :进入到插入模式[Esc] :退出编辑模式,进入命令模式:w :将剪辑的数据写入文件:w! :文件为只读时,强制写入文件,到底能不能写入,取决于你对该文件的权限:q :退出vim:q! :强制退出,不保留未写入的内容:wq :保存退出:set nu :显示行号:set nonu :限制行号
五、文件的属性和权限
1、chown:修改文件拥有者
chown [-R] 账号名称 dirname/filename #修改文件或目录的拥有者chown [-R] 账号名称.用户组名称 dirname/filename #同时修改文件或目录的拥有者和所属组chown [-R] 账号名称:用户组名称 dirname/filename #同时修改文件或目录的拥有者和所属组
2、chgrp:修改文件所属组
chgrp [-R] 用户组名称 dirname/filename #修改文件或目录的所属组
3、chmod:修改文件的普通权限和特殊权限(SUID、SGID、SBIT)
文件的普通权限:
#改变文件拥有者的权限chmod [-R] u=rwx dirname/filename chmod [-R] u+w dirname/filename chmod [-R] u-x dirname/filename #改变文件所属组的权限chmod [-R] g=rwx dirname/filename. chmod [-R] g+w dirname/filename. chmod [-R] g-x dirname/filename. #改变其他人的权限chmod [-R] o=rwx dirname/filename. chmod [-R] o+w dirname/filename. chmod [-R] o-x dirname/filename. #改变所有人的权限chmod [-R] a=rwx dirname/filename. chmod [-R] a+w dirname/filename. chmod [-R] a-x dirname/filename. #通过权限数字改变文件权限chmod [-R] 755 dirname/filename. u:user. g:group. o:others. a:allr:4. w:2. x:1
文件的特殊权限:
SUID:当s这个标志出现在文件拥有者的x权限上时(如-rwsr-xr-x),此时被称为Set UID,简称为SUID的特殊权限。(如/usr/bin/passwd文件)
- SUID权限仅对二进制程序有效;
- 执行者对该程序需要具有x的可执行权限;
- 本权限仅在执行改程序的过程中有效;
- 执行者将具有该程序拥有者的权限。
SGID:当s标志出现在用户组的x处时称为Set GID(SGID)(如/usr/bin/locate文件)
- SGID能作用于目录和二进制程序文件;
- 程序执行者对该程序来说,需具备x的权限;
- 用户若对此目录具有r和x的权限时,改用......
原文转载:http://www.shaoqun.com/a/833875.html
跨境电商:https://www.ikjzd.com/
敏思达:https://www.ikjzd.com/w/2304
e淘网:https://www.ikjzd.com/w/1698
indiegogo:https://www.ikjzd.com/w/265
linux运维常用知识点总结 作为一名java开发,平时工作中也会涉及到后端服务部署等一些linux运维任务,在此想总结一下我认为java开发应该掌握的一些运维基础知识。由于本人不是专业的运维工程师,难免会有遗漏和错误,仅供参考!一、linux命令基本格式~]$command[-options]parameter1parameter2...命令选项参数(1)参数(2)command为命令名称或可
点通:https://www.ikjzd.com/w/1913
bonanza:https://www.ikjzd.com/w/275.html
亚马逊妥协:Amazon Go零售店将接受现金支付!:https://www.ikjzd.com/articles/21802
Shopify自建站后台及APP商场详解:https://www.ikjzd.com/articles/21875
阿里巴巴数字化工具帮传统外贸企业重获新生!:https://www.ikjzd.com/articles/21876
(精品分析)亚马逊英国站汽车钥匙保护套类目市场调查数据报告:https://www.ikjzd.com/articles/21877
学长你的好大我不敢 乖都硬了让我进去疼你:http://lady.shaoqun.com/a/248329.html
下面流水痒好想要男人 好想疯狂的做一次:http://lady.shaoqun.com/m/a/248280.html
和男闺蜜"亲密关系"后还剩下什么?倾听人们的心声:http://lady.shaoqun.com/a/390504.html
不要和你最好的朋友睡觉!:http://lady.shaoqun.com/a/390505.html
不小心和"闺蜜"发生关系会怎么样?三个女人说出了她们的感受:http://lady.shaoqun.com/a/390506.html
男女闺蜜:http://lady.shaoqun.com/a/390507.html