• 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:递归删除,用于目录的删除操作。
    入狱小技巧:
    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和B
    grep -E 'A|B' filename     #匹配A或B
    grep -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 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;
    则root用户: 建立文件时的默认权限:(
    -rw-rw-rw-)- (-----w--w-) ==> -rw-r--r-- 建立目录时的默认权限:(drwxrwxrwx)- (d----w--w-) ==> drwxr-xr-x
    普通用户同理。

     六、账号和用户组

      1、useradd:添加用户

    useradd [-options parameter] 用户名
    常用选项:
    -u:指定uid
    -g:指定用户的主组
    -G:指定用户的辅组 
    -M:不建立家目录,一般建立系统用户会用此选项
    -d:指定家目录,默认为/home/username
    -s:指定shell,一般用默认的/bin/bash,建立系统用户要指定为/sbin/nologin
    常见用法:
    不加任何选项直接跟用户名,然后passwd修改密码

      2、passwd:修改用户密码

    passwd [-options] [username]
    常见用法:
    不加任何选项直接跟用户名,默认修改当前用户的密码

       3、usermod:修改用户相关信息

    usermod [-options] username
    常用选项:
    -d:修改家目录
    -g:修改用户的主组
    -G:修改用户的辅组
    -a:与-G合用,给用户增加一个辅组
    -u:修改用户id
    -L:锁定用户
    -U:解锁用户
    可以发现usermod和useradd的参数基本是一样的。

      4、usedel:删除用户数据

    userdel [-r] username
    -r:连同用户的家目录一起删除
    常见用法:
        慎用此命令,一般删除用户前,保险起见,备份好需要保留的文件,然后执行此命令,执行完毕后,可通过find / -user username查出所有处于此用户的文件,然后加以删除。

      5、id:查询用户的uid和gid

    id [username]
    常见用法:
    直接跟用户名使用,默认查询当前用户的uid和gid
    如:
    id test
    uid=1000(test) gid=1000(test) groups=1000(test),0(root)

      6、用户组的操作:

    groupadd:添加用户组
    groupmod:修改用户组    
    groupdel:删除用户组
    这三个命令用的很少,需要用到的时候man一下吧!

      7、su:切换用户身份

    常见用法:
    直接使用su:切换至root用户
    su - username : 切换用户
    root切换至普通用户不需要密码。

      8、sudo:可以使当前用户临时切换为任何用户执行命令

      通过visudo命令修改/etc/sudoers文件,模仿root添加一行数据,即开通了sudo权限

    常见用法:
    一般给普通用户添加sudo权限后,普通用户执行任何命令之前加上sudo,可临时拥有root用户的身份,拥有root权限

      还有一些命令和用法在shell脚本中用的比较多,这里就不列出来了,有时间会总结linux中shell脚本的常见用法。。。

  • 相关阅读:
    SQLite3 of python
    爬虫半成品
    python初体验 ——>>> 模拟体育竞技
    文件操作
    numpy 库简单使用
    numpy 与 matplotlib 的应用
    面向对象的详细解读
    使用python进行微信好友分析
    我的第一个爬虫实验
    排球训练营
  • 原文地址:https://www.cnblogs.com/xiaohang123/p/14883768.html
Copyright © 2020-2023  润新知