linux运维常⽤知识点总结
linux运维常⽤知识点总结
  作为⼀名java开发,平时⼯作中也会涉及到后端服务部署等⼀些linux运维任务,在此想总结⼀下我认为java开发应该掌握的⼀些运维基础知识。由于本⼈不是专业的运维⼯程师,难免会有遗漏和错误,仅供参考!
⼀、linux命令基本格式
~]$ command [-options] parameter1 parameter2 ...
命令选项参数(1)参数(2)
1. command为命令名称或可执⾏shell脚本。
2. options为命令的选项,是可选的,分为短选项和长选项。⼀般来说,短选项为⼀个中划线+选项单字符简称,如-h,长选项为两个中划线+选项全
称,如--help。
3. parameter为命令或选项的的参数,可以有多个。
4. 命令、选项和参数中间以空格相隔,多个空格都视为⼀格。
5. 按下回车键,命令开始执⾏。
6. 命令太长时,可以⽤反斜杠(\)转义回车键,式命令连续到到下⼀⾏。
7. Linux系统区分⼤⼩写;
8. 此命令基本格式,并不绝对,也有特殊。
⼆、linux系统的在线求助
使⽤--help选项、man、info命令:
1. ⼤多数命令都有--help选项,可以简要的解释当前命令的所有选项和⽤法。
2. man命令是manual(⼿册)的简称,相当于把命令安装时的帮助⼿册以⽂本的形式显⽰出来,⽐help详细。
3. 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:递归删除,⽤于⽬录的删除操作。
⼊狱⼩技巧:
linux系统vim编辑器
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
常见⽤法:
不加任何选项,直接接⽂件,如果该⽂件存在,则更新⽂件的时间(mtime、ctime、atime)为当前时间;⽂件不存在则新建空⽂件。
这⾥涉及到⽂件的三个时间:
修改时间(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命令可根据系统提前建⽴好的数据库(相当于索引)搜索⽂件,
数据库⽂件默认每天更新⼀次,可通过/f配置,updatebd命令可⼿动更新数据库
locate [-options] keyword
常⽤选项:
-i:忽略⼤⼩写;
find:可以根据⽂件名之外的其他属性查⽂件,但没有索引,查可能很慢。
find [PATH] [-options] [action]
常⽤选项:
-uid n : 查属于该uid的⽂件;
-user username :查该⽤户的⽂件;
-group groupname:根据⽤户组查;
-name filename:根据⽂件名查;
-size [+-]SIZE : 根据⼤⼩查;
-mtime [+-]NUM: 根据⽂件修改时间查
-exec command: 接额外命令处理查到的结果,默认为-print,如find ./ -name "test*" -exec ls -l \;
常见⽤法:
find / -name test       #查⽂件名包含test的⽂件
find / -user test        #查属于⽤户test的⽂件
find / -size +50k        #查⼤于50k的⽂件
find / -size -50c        #查⼩于50字节的⽂件
find -mtime 4        #查最后修改时间在4天前(当天)的⽂件
find -mtime +4        #查最后修改时间在4天前(不包括当天)的⽂件
find -mtime -4        #查最后修改时间在4天内(包括当天)的⽂件
8、⽂件内容的查:
grep [-options] [--color=auto] '搜寻字符串'  filename/dirname
常⽤选项:
-i : 忽略⼤⼩写;
-l : 显⽰匹配的⽂件名;
-v :反向查,查不包含关键字的内容;
-E :可使⽤正则表达式匹配;
常见⽤法:
grep A filename |grep B    #同时匹配A和B
grep -E 'A|B' filename    #匹配A或B
grep -v A filename        #不包含A匹配
9、⽂件的压缩打包与解压:
tar:压缩打包⽂件。
如果使⽤gzip的压缩⽅式,打包后⽂件后缀为,此格式window上可直接解压。常见⽤法:
tar -zxvf filename    #解压⽂件(只能解压由tar打包的⽂件)
tar -zcvf filename    #压缩⽂件
zip:压缩打包⽂件。
常见⽤法:
zip -r package.zip file1 folder1 file2  #压缩⽂件和⽬录为package.zip包
unzip package.zip                        #解压⽂件(可解压zip、war、jar包)jar:压缩打包⽂件(选安装jdk)。
常见⽤法:
jar -xvf test.jar.      #解压⽂件(可解压jar、war包)
jar -uvf test.jar test.class.  #将指定⽂件压缩到jar包中(需指定test.class全路径)
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 &> /dev/null
end=$(date +%s)
difference=$(( end - start ))
echo $difference seconds.
11、查询是否为bash shell
  type:查询命令是和否为Bah shell的内置命令。
常见⽤法:
type nignx
nginx is /usr/sbin/nginx
type cd
cd 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:all
r: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的权限时,改⽤户能够进⼊此⽬录;
⽤户在此⽬录下的有效⽤户组将会变成该⽬录的⽤户组。
  SBIT:
SBIT只能作⽤于⽬录;
当⽤户对此⽬录具有w、x权限,即具有写⼊的权限;
当⽤户在该⽬录下建⽴⽂件或⽬录时,仅有⾃⼰与root才有权利删除该⽂件。
4为SUID,2为SGID,1为SBIT
数字法:
chmod 4775 filename          #添加SUID权限
chmod 6775 filename/dirname  #添加SUID和SGID的权限
chmod 1775 dirname            #添加SBIT的权限
符号法:
chmod u+s filename
chmod g+s filename/dirname
chmod u=rwxs filename
  ⽂件的隐藏权限:
设置⽂件的隐藏权限:
chattr [+-=] [opiton] filename/dirname
常⽤的选项就两种:
a:该⽂件只能增加数据,不能删除也不能修改数据,只有root才能设置此属性;
i:改⽂件不能被删除、改名、设置链接也⽆法写⼊或新增数据,只有root才能设置此属性;
查询⽂件的隐藏权限:
lsattr filename/dirname
如:
chattr +i attrtest
lsattr attrtest
  ⽂件的默认权限:
umask:显⽰或设置当前⽤户在建⽴⽂件或⽬录时的权限默认值。输⼊umask,后三位数字表⽰在⽂件或⽬录原始默认权限基础上需要减掉的权限。
如root⽤户umask的值默认为为0022,表⽰在原始默认权限基础上,去掉所属组的和其他⼈的写权限;普通⽤户umask值为0002,表⽰在原始默认权限基础上,去掉其他⼈的写权限。⽂件原始默认权限为:-rw-rw-rw-;
⽬录原始默认权限为:drwxrwxrwx;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。