每天一个 Linux 命令

目录

Linux基础知识

每天一个 Linux 命令

1、xargs

2、ping命令:

3、cd

四剑客

1、四剑客grep命令

2、四剑客find命令

3、四剑客sed命令

4、四剑客awk命令

目录操作命令

1、ls命令

2、cd -切换所在目录

3、mkdir -创建目录命令

4、rmdir -删除目录命令

5、tree -显示目录树

权限管理命令

1、chmod -修改文件的权限

2、chattr文件锁定操作:

umask -默认权限

3、chown -修改所有者和所有组

用户命令

1、useradd -创建用户

2、passwd -修改用户密码

3、su -切换用户

4、usermod -修改用户信息

5、userdel -删除用户

目录和文件都能操作的命令

1、mv -移动文件或改名

2、cp -复制文件和目录

3、rm -删除文件或目录

文件操作命令

1、cat -查看文件内容

2、more -分屏显示内容

3、less -分行显示文件内容

4、head -显示文件开头的内容

5、tail -显示文件结尾内容

6、ln -在文件之间建立链接

7、chattr文件锁定操作:

Linux常用文件:

系统基本信息命令

系统监控、进程管理

1、top命令

2、free显示系统内存情况

3、df命令

4、PS命令

5、crond定时任务

网络通信

1、netstat命令 – 显示网络状态

2、curl命令



Linux基础知识

Linux命令的通用格式为

命令字  【命令选项】  【命令参数】

Linux文件类型:

f #普通文件
l #符号连接
d #目录
c #字符设备
b #块设备
s #套接字
p #Fifo

每天一个 Linux 命令

1、xargs

xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的字符串内含有空格的时候,xargs可能会误判。简单来说, xargs的作用是给其他命令传递参数,是构建单行命令的重要组件之一。

常用示例 1、与ps、grep、awk和kill结合,强制终止指定进程。

ps -ef | grep spp | awk '{printf "%s ",$2}' | xargs kill -9

ps -ef|grep spp用于查找包含 spp 的进程,awk '{printf "%s ",$2,FNR}将目标进程 ID 打印输出,xargs kill -9则将目标进程 ID 作为参数传递给kill -9用于杀死进程。

2、ping命令:

ping命令

        -c             #指定ping多少次
        -I             #指定网卡
        -w             #最后期限,等待多久结束本次ping
        -i             #设定间隔几秒发送一个ping包,默认一秒ping一次

3、cd

cd切换目录,可以从当前目录切换到另一级目录下 1、切换到指定目录:cd tmp

dir为指定目录的路径,可以是绝对路径也可以是相对路径 如:cd /tmp/

2.、cd / 是跳转到根目录

根目录是所有用户共享的目录

3、cd ~ 和cd $HOME 是跳转到当前用户的家目录

root用户,cd ~ 相当于 cd /root 普通用户,cd ~ 相当于cd /home/当前用户名 注:cd - 返回进入此目录之前所在目录

4、cd …/ 返回上一层目录


四剑客

1、四剑客grep命令

grep命令是文本搜索命令,它可以正则表达式搜索文本,也可从一个文件中的内容作为搜索关键字。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

        -i                                #不区分大小写
        -E                                #-E是指定多个关键字,以管道分隔、
        -n                                #找出后显示行号
        -v                                #取反,过滤指定字符外的
        -o                                #显示grep每一次的匹配过程,都会拿出单个一行去显示匹配到的字符
        -w                                #只输出单词绝对匹配的字符,两边有(两边空格、两边符号)为单词
        -c                                #统计匹配到的字符一共有多少行,类似于wc -l。#显示查找指定进程个数
        -r                                #递归过滤,可以过滤*号
        -l                                #与-r一起用,只显示匹配到的文件
        -A                                #显示匹配后和它后面的n行
        -B                                #显示匹配行和它前面的n行
        -C                                #匹配行和它前后各n行

规则表达式:

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
​
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
​
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
​
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
​
.*   #一起用代表任意字符。
​
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
​
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
​
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。
​
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
​
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
​
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
​
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
​
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
​
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
​
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
​
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

使用实例:

实例1:查找指定进程

命令:ps -ef | grep nginx

说明:

第一条记录是查找出的进程;第三条结果是grep进程本身,并非真正要找的进程。

实例2:grep不显示本身进程

命令:ps -ef | grep svn | grep -v “grep” #-v的意思是取反,不显示带有grep的进程

2、四剑客find命令

find 命令在文件系统中搜索文件和目录。

find 命令用来在指定目录下查找文件,在参数之前的任何字符串都会当作是目录名。使用 find 命令时,如何不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部显示出来。

find 还是一个功能非常强大的用于处理 Linux 系统上文件的工具,它可以单独查找文件,也可以与其他程序(命令)结合对需要处理的文件进行操作。

find与xargs和管道符配合”
    find -exec 必须有{} \;
    xargs不支持别名


   语法:     find(选项)(参数)


        -type                            #根据文件类型查找,f与d
        -name                            #根据名称查找,”名称”
        -iname                            #不区分大小写,名称查找,”名称”
        -size                            #按大小查找,大于用+,小于用-
        -mtime                            #按修改时间查找(+7是7天前,-7是7天后)
        -exec                            #查询后的数据输出到后面的命令(后面必须有{} \;)

 

        find / -type f -name "hosts"        #从根下找名称为“hosts”的文件
        find /etc/ -size +1M                #查找/etc/下大于1M的文件或目录
        find /olda/ -name '*.log' |xargs ls -l            #查看搜索到的文件详细信息
        find /olda/ -name '*.log' -exec ls -l {} \;        #查看搜索到的文件详细信息
        find /etc/ -name "*.conf" -type f |xargs  tar zcfP /tmp/conf_$(date +%F).tar.gz            #压缩查询后的文件
        find /etc/ -name "*.conf" -type f -exec tar zcfP conf__$(date +%F).tar.gz {} \;            #压缩查询后的文件
        find /olda/ -type f -mtime +7 -exec rm -f {} \;            #查找一个删除一个
        find /olda/ -name "*.log" -exec cp {} /opt/ \;                #查找一个复制一个

使用实例:
根据文件或者正则表达式进行匹配

在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
同上,但忽略大小写
find /home -iname "*.txt"
当前目录及子目录下查找所有以.txt和.pdf结尾的文件

find . \( -name "*.txt" -o -name "*.pdf" \)

或

find . -name "*.txt" -o -name "*.pdf"
匹配文件路径或者文件

find /usr/ -path "*local*"
基于正则表达式匹配文件路径

find . -regex ".*\(\.txt\|\.pdf\)$"
同上,但忽略大小写

find . -iregex ".*\(\.txt\|\.pdf\)$"

根据文件类型进行搜索

find . -type 类型参数
类型参数列表:

f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo

借助-exec选项与其他命令结合使用

找出当前目录下所有root的文件,并把所有权更改为用户tom

find .-type f -user root -exec chown tom {} \;
上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

找出自己家目录下所有的.txt文件并删除

find $HOME/. -name "*.txt" -ok rm {} \;
上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。

查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

find . -type f -name "*.txt" -exec cat {} \;> all.txt
将30天前的.log文件移动到old目录中

find . -type f -mtime +30 -name "*.log" -exec cp {} old \;

3、四剑客sed命令

sed命令:(增加、删除、修改、查询)

        -e                #允许多项编辑
        -n:            #取消sed默认输出
        -i:                #直接写入到源文件
        -r                #支持扩展正则
        a                :追加
        i                :插入
        c                :替换行
        d                :删除
        s                :替换
        p                :打印
        w                :匹配到的行另存文件
        h                :复制指定行
        g                :全局
        &                :在sed中表示前面匹配到什么,&符号就是什么值
        sed -i 's#jd.com#one#g' /etc/hosts                    #替换hosts文件的jd.com为one主机名,可以匹配字符串
        sed -n '3p' num.txt                                #查看第3行
        sed -n '3,5p' num.txt                                #查看第3到5行    
        sed '1h;$g' hosts.test                                #复制第1行,覆盖最后一行
        ip a s eth0 |sed -nr '3s#^.*inet (.*)/.*$#\1#gp'        #取出IP地址
        sed -r 's#(.*)(:x.*:)/(.*)#\3\2\1#g' passwd            #把passwd文件最后1列与第1列替换位置

增加:

增加    (参数:a与i,....a是在第2行后面追加信息,i是在第2行前面插入信息)

    单行增加:
        sed '3c 10,wsp,CTO' sed.txt                #替换第3行为10,wsp,CTO信息
        sed '2a 06,dandan,CSO' sedfile.txt         #在第2行后追加一行‘06,dandan,CSO’信息进去(后面)
        sed '2i 06,dandan,CSO' sedfile.txt         #在第2行前面插入‘06,dandan,CSO’信息进去(前面)

    多行增加:
        sed '2i 06,dandan,CSO\n07,bingbing,CCO' sedfile.txt     #在第2行前面插入‘06,dandan,CSO与07,bingbing,CCO’信息进去,并为多行
        sed '2a 06,dandan,CSO\n07,bingbing,CCO' sedfile.txt     #在第2行后面追加‘06,dandan,CSO与07,bingbing,CCO’信息进去,并为多行

    范例:增加ssh服务优化参数进入配置文件

        sed '12a Port 52113\nPermitRootLogin no\npermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' /etc/ssh/sshd_config

删除:

删除(d是删除一行,不加行数字样是删除文件内所有内容)

        sed '1d' sedfile.tx        #删除文件的第1行
        sed '2,4d' sedfile.txt          #删除文件的第2行到第4行,输出第1行和第5行;  (10,20这是10到20行)
        sed '1~2d' sedfile.txt             #(1~2的意思是从第1行开始,每次都跳两行,目标行也就是1、3、5、7、9这样)
        sed '2,$d' sedfile.txt             #从第2行删除到最后一行

    正则匹配删除:
        sed '/yy/d' sedfile.txt           #匹配yy字样,删除文本中所有带有yy的行
        sed -n '/zhangyao/,/wsp/p' sedfile.txt      #是最小匹配,从zhangyao字样开始匹配,当匹配到最近的一个wsp字样时,就算文件下方还有wsp字样也会停止以下的匹配,

    范例:(打印文件内容,当不包含olda这一行)
        sed '/olda/d' sedfile.txt

修改:

替换(c:替换,但是很少用到,s:替换,经常用到)

    单行替换:c
        sed '2c 111,wsp,niubi' sedfile.txt         #第2行替换为'111,wsp,niubi'

    多行替换:    c
        sed '2,3c 111,wsp,niubi\n112,test' sedfile.txt         #从第2行到第3行替换成111,wsp,niubi行和112,test行,一共两行

    文本替换:    s(在sed中使用g是标志全局替换)
        sed 's#zhangyao#wangshaopeng#g' sedfile.txt         #把带有zhangyao字样的全部改为wangshaopeng字样
        sed '2s#zhangyao#wangshaopeng#g' sedfile.txt     #指定第2行数替换字符

    变量替换:

        cat zimu.txt 
        a
        b
        a
        x=a
        y=b
        sed "s#$x#$y#" zimu.txt        #变量替换$x的值替换为$y的值

查找:

查找:(p参数,一般与-n选项一起用)

    指定行查找:
        sed -n '2p' sedfile.txt        #查看文件内的第2行的字符        (单行)
        sed -n '2,3p' sedfile.txt         ##查看文件内的第2行到第3行的字符        (多行)
        sed -n '1p;3p;5p' sed.txt        #用;符号打印指定多行            (单行)(多行)
        sed -n '1~2p' sed.txt            #从第1行开始查询,每次跳2行行        (多行)

    指定字符查找:
         sed -n '/wsp/p' sedfile.txt     #匹配wsp字样查找输出
        sed -n '/olda/,5p' sedfile.txt        #匹配olda字样的行到第5行中间的输出
        sed -n '/olda/,/yy/p' sed.txt        #匹配从olda所在行到yy所在行

    正则查找:
         ip a s eth0 |sed -nr '3s#^.*inet (.*)/.*$#\1#gp'        #取出IP

一条命令批量创建多个用户:

echo test{1..3} |xargs -n1|sed -r 's#(.*)#useradd & |echo 'redhat'|passwd --stdin &#g' |bash

sed配合正则取IP地址:

        ip a s eth0 |sed -nr '3s#.*et (.*)/.*#\1#gp'

sed配合正则更改passwd文第1列与最后1列:

        sed -rn '1,2s#(^.*)(:x.*:)(.*$)#\3\2\1#gp' passwd

试题:

        ll /etc/rc.d/init.d/functions |sed -rn 's#.*(/e.*)/.*#\1#gp'        #取出/etc/rc.d/init.d/functions的路径的目录名(采用正则将路径取出来)

4、四剑客awk命令

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

        -F                #指定分隔符
        -v                #更改内置函数值
        gsub            #内置替换函数,格式:gsub(/找谁/,”替换为什么”,在哪一列?)
        ORS                #输出时候的分割符
        RS                 #记录每一行的换行符,默认是\n,使用-v可更改
        NR                #代表行号(Number of Record)
        NF                #代表最后一列
        FS                #表示分隔符,-F可以修改
        OFS                #-v修改指定输出分隔符
        $0                #一整行的内容
        $数字            #代表指定某一列
        NR==1,NR==3    #取第1到第3行
        $(NF-1)            #代表倒数第二行
        ~                #波浪线是包含,$2~/^4/,$2中包含开头为4的行与列
        !~                #不包含什么
        BEGIN{}            #在awk读取文件之前执行
        END{}            #在awk读取文件之后执行,统计瞒住条件的次数

使用方法:awk [参数] [脚本] [文件]

参数

说明

-F fs

指定以fs作为输入行的分隔符,awk 命令默认分隔符为空格或制表符

-f file

读取awk脚本

-v val=val

在执行处理过程之前,设置一个变量var,并给其设置初始值为val

awk中还可以指定脚本命令的运行时机。默认情况下,awk会从输入中读取一行文本,然后针对该行的数据执行程序脚本,但有时可能需要在处理数据前运行一些脚本命令,这就需要使用BEGIN关键字,BEGIN会在awsk读取数据前强制执行该关键字后指定的脚本命令。

和BEGIN关键字相对应,END关键字允许我们指定一些脚本命令,awk会在读完数据后执行它们。
用法一: awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号
用法二: awk -F  #-F相当于内置变量FS, 指定分割字符
用法三: awk -v  # 设置变量 用法四: awk -f {awk脚本} {文件名}

运算符

 awk 正则

目录操作命令
 


1、ls命令

ls显示指定工作目录下的内容及属性信息

命令名称:ls

所在路径:usr/bin/ls

执行权限:所有用户

命令格式:ls [选项] [文件名或目录名]

选项:

选项描述
-a显示所有文件(包括隐藏文件)
--color=when支持颜色输出,when的值默认是always(总显示颜色),也可以是never(从不显示颜色)和auto(自动)
-ld显示目录信息,而不是目录下的文件
-lh人性化显示,按照我们习惯的单位显示文件大小
-i显示文件的i节点号
-l长格式显示(详细信息)。ls -l等同于ll

2、cd -切换所在目录

所在路径:Shell内置命令

功能:切换所在目录

命令格式:cd [目录名]

cd命令只要两个选项:

-P指如果切换的目录是软链接目录,则进入其原始的物理目录
-L指如果切换的目录是软链接目录,则直接进入软链接目录
~代表用户的家目录。cd命令直接回车效果是一样的。
-代表上次所在目录
.代表当前目录
..代表上级目录

3、mkdir -创建目录命令

功能描述:创建一个空目录

命令格式:mkdir [选项] 目录名

选项只有一个:-p递归建立所需目录。

就是当需要创建多级目录时,需要-p选项,不加则无法创建多级目录。如:mkdir -p test/test/test

4、rmdir -删除目录命令

命令格式:rmdir [选项] 目录名rmdir也可以递归删除目录,不过只能删除空目录,一旦目录中有内容就会报错。

5、tree -显示目录树

命令格式:tree 目录名

tree命令的全称即是“tree”,该命令作用是用于以树状图形式列出目录的内容。 执行tree命令,它会以树状图的方式列出指定目录下的所有文件,包括目录里的文件,显示出指定目录的文件目录结构。

权限管理命令

r    可读 ;w   可写 ;x   可执行 ;-   无权限

r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0

1、chmod -修改文件的权限

命令格式:chmod [选项] 权限模式 文件名

选项只有一个-R,递归设置权限,也就是给子目录中的所有文件设定权限。

权限模式:chmod命令的权限模式的格式是[用户身份][[赋予方式][权限]]

        r    read        是否可读文件内容    4
        w    write       是否修改文件内容    2
        x    execute     是否可执行这个文件  1

        属主:u
        属组:g
        所有人:o

读、写、执行对文件:
        r        #只能cat查看
        w        #只能写,可以强制保存,会覆盖原文件,不能看,要与r配合
        x        #什么都不能操作,执行也不行,要与r配合

如:

chmod o=rwx 文件名给其他人设置读写和执行权限。

chmod u+x,g+w 文件名给所有者执行权限,和所属组写权限。

2、chattr文件锁定操作:

        lsattr pass.txt               #查看是否锁定文件
        chattr +a pass.txt            #设置文件只能追加输入,不能删除或清空
        chattr -a pass.txt            #删除append这个锁定
        chattr +i pass.txt            #什么都不能干了,只能cat查看
        chattr -i pass.txt            #删除immutable这个无敌锁定

umask -默认权限

主要让Linux中的新建文件和目录拥有默认权限。

查看系统的umask 默认权限

umask -S直接使用字母来表示默认权限。

修改系统的umask默认权限:

umask 002 修改默认权限为002
 

3、chown -修改所有者和所有组

执行权限:所有用户

功能描述:修改文件和目录的所有者和所属组

命令格式:chown [选项] 所有者:所属组 文件(目录)

选项:-R递归设置权限,给子目录中的所有文件设置权限。

修改文件的所有者chown user 文件名

修改文件的所属组chown user:user 文件名

用户命令

1、useradd -创建用户

执行权限:超级用户

命令格式:useradd [选项] 用户名

选项:

    useradd
        -u                    #指定uid号
        -s                    #指定解释器,也就是可否登录
        -M                    #不创建家目录
        -g                    #指定主要组属于谁
        -c                    #修改用户描述信息

第一步:添加用户useradd user

第二部:设置用户密码passwd user,输入两次密码确认

修改用户的组 命令格式:
 

2、passwd -修改用户密码
 

命令格式:passwd [选项] 用户名

选项:

选项描述
-S查询用户密码的状态
-l暂时锁定用户
-u解锁用户

3、su -切换用户

命令格式:su - user切换到指定用户
 

4、usermod -修改用户信息

命令格式:usermod [选项] 用户名

修改用户:
    usermod
        -s                    #修改解释器,也就是可否登录
        -c                    #修改用户描述信息
        -g                    #指定用户主要的主要组
        -G                    #指定用户属于多个附属组

5、userdel -删除用户

命令格式:userdel [-r] 用户名

    userdel
        -r                    #删除时连家目录干掉

目录和文件都能操作的命令

1、mv -移动文件或改名

命令格式:mv[格式] 源文件 目标文件

选项:

选项描述
-f强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i交互移动,默认选项
-n如果目标文件已经存在,则不会覆盖移动,而是不询问用户
-v显示详细信息

2、cp -复制文件和目录

命令格式:cp [选项] 源文件 目标文件

选项:

选项描述
-a相当于-dpr选项的集合
-d如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i询问,如果目标文件已经存在,则会询问是否覆盖
-l把目标文件建立为源文件的硬链接文件,而不是复制源文件
-s把目标文件建立为源文件的软链接文件,而不是复制源文件
-p复制后目标文件保留源文件的属性(包括所有者、所属组、权限、时间)
-r递归复制,用于复制目录

不改名复制:cp test /tmp/

改名复制:cp test /tmp/test

如需要复制目录,则需要使用-r选项。

3、rm -删除文件或目录

命令格式:rm [选项] 文件或目录

选项:

选项描述
-f强制删除
-i这个选项是默认的,交互删除,在删除之前会询问用户
-r可以递归删除,可以删除目录

如果被删除的路径是一个目录,则必须有-r选项,否则会报错。

一般要强制删除一个文件时,用rm -rf 文件路径

文件操作命令

1、cat -查看文件内容

语法格式:cat [参数] [文件]

常用参数:

-n显示行数(空行也编号)
-s显示行数(多个空行算一个编号)
-b显示行数(空行不编号)
-E每行结束处显示$符号
-T将TAB字符显示为 ^I符号
-v使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e等价于”-vE”组合
-t等价于”-vT”组合
-A等价于 -vET组合
--help显示帮助信息
--version显示版本信息

2、more -分屏显示内容

功能描述:分屏显示文件内容

命令格式:more 文件名

常用的交互命令:

命令描述
空格键向下翻页
b向上翻页
回车键向下滚动一页
/字符串搜索指定的字符串
q退出

3、less -分行显示文件内容

执行权限:全部用户

功能描述:分行显示文件内容

命令格式:less 文件名

进入显示文件后,使用箭头键,用于分行查看文件内容。(每按一次会向上、下显示一行)。

4、head -显示文件开头的内容

执行权限:全部用户

命令格式:head [选项] 文件名

选项:

选项描述
-n行数:从文件开头开始,显示指定行数,-n20-20效果一样
-v显示文件名

命令默认显示文件前十行内容。

5、tail -显示文件结尾内容

执行权限:所有用户

命令格式:tail [选项] 文件名

选项

选项描述
-n行数:从文件结尾开始,显示指定行数,-n20-20效果一样
-f监听文件的新增内容

使用-f选项会显示最后10行内容,而且光标不会退出文件,会一直监听文件的新增内容,这个时候使用echo命令向该文件追加内容,在原始的正在监听的终端中就会显示追加的内容。

6、ln -在文件之间建立链接

执行权限:所有用户

命令格式:ln [选项] 源文件 目标文件

选项:

选项描述
-s建立软链接文件。默认建立硬链接文件
-f强制。如果目标文件已经存在,则删除目标文件后再建立链接文件

建立硬链接:ln /root/test /tmp/test-hard

建立软链接:ln -s /root/test /tmp/test-hard

7、chattr文件锁定操作:

        lsattr pass.txt               #查看是否锁定文件
        chattr +a pass.txt            #设置文件只能追加输入,不能删除或清空
        chattr -a pass.txt            #删除append这个锁定
        chattr +i pass.txt            #什么都不能干了,只能cat查看
        chattr -i pass.txt            #删除immutable这个无敌锁定

Linux常用文件:

文件:
    /etc目录:
        /etc/shells                        #存放linux解释器
        /etc/resolv.conf                    #配置域名解析
        /etc/hostname                    #配置主机名
        /etc/locale.conf                    #配置字符集
        /etc/inittab                        #运行级别(CentOS6.X)# systemctl get-default  CentOS7.X
        /etc/passwd                        #存放用户与密码占位符等
        /etc/shadow                        #存放用户密码
        /etc/group                        #存放用户组信息
        /etc/gshaow                        #存放用户组密码
        /etc/hosts                        #用于本地解析,测试环境
        /etc/profile                        #配置系统环境变量或别名
        /etc/bashrc                        #配置别名
        /etc/motd                        #文件的内容在登录后显示出来
        /etc/issue                        #文件内容在登录之前显示出来
        /etc/fatab                        #开机自动挂载
        /etc/rc.local                        #全称/etc/rc.d/rc.local,开机自动运行命令
        /proc
        /proc/cpuinfo                    #CPU详细信息
        /proc/meminfo                    #内存详细信息
        /proc/loadavg                    #负载信息
        /proc/mounts                    #挂载信息
        /usr/local/目录:
        编译安装软件默认安装这里
        /var/目录:
        /var/log/secure                #用户登录成功或失败存储日志文件
        var/log/messages            #系统日志
        /dev
        /dev/cdrom                    #光盘文件
        /dev/urandom                #字符文件
        /dev/null                    #空,黑洞
        /dev/zero                    #非空,白洞

系统基本信息命令

uname -a**:查看所有内核信息**

uname -s:查看内核名称

uname -r:查看内核发行版

uname -v:查看内核版本

uname -n:查看主机名字

uname -m:查看硬件信息

uname -p:查看处理器类型

uname -o:查看操作系统

系统监控、进程管理

后台挂起进程:

        Ctrl + z          #把当前前台进程在后台挂起(暂停)
        fg                #恢复后台挂起在前台运行
        bg                #持续让命令在后台运行
        jobs              #查看后台所有挂起的命令及后台进程ID
        kill %1           #杀掉后台Ctrl +z挂起的第一个进程

杀手三人组:

        kill                   #通过pid进程关闭
                kill -9            #强制杀死进程
        killall                #根据进程名字(命令)关闭
                killall sleep      #杀死sleep睡眠命令的进程
        pkill                  #模糊杀死进程,杀得太对(危险)

进程四人组:

        ps
            -ef            #显示详细进程信息
            aux            #显示更加详细的信息(cpu、mem)

        pstree             #以树形显示所有进程的关系
            -a             #显示更加详细进程信息
            -p             #显示pid

        top                #默认3秒钟实时更新一次进程信息
            空格           #立刻更新,默认按照cpu使用率排序
            按M            #按照MEM使用率排序
            按C            #按照CPU使用率排序
            按1            #展开CPU列表
            按q            #退出

        htop               #类似于图形化,可以用鼠标点击操作排序

root       1661   1551  0 10:44 pts/1    00:00:00 grep --color=auto ssh
用户       Pid  父进程Pid  NO  执行时间           NO        命令

1、top命令

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,有点像window系统的任务管理器

      top                 #默认3秒钟实时更新一次进程信息
            空格           #立刻更新,默认按照cpu使用率排序
            按M            #按照MEM使用率排序
            按C            #按照CPU使用率排序
            按1            #展开CPU列表
            按q            #退出

第一行为任务队列信息,具体内容如表所示:

内 容

说 明

21:17:00

系统当前时间

up  9:47

系统的运行时间.本机己经运行 0 天 9 小时 47 分钟

2 users

当前系统的登录用户数

load average: 0.00,0.01,0.05

系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)

第二行为进程信息,具体内容如表所示:

内 容

说 明

Tasks: 150 total

当前系统中的进程总数

1 running

正在运行的进程数

149 sleeping

睡眠的进程数

0 stopped

正在停止的进程数

0 zombie

僵尸进程数。如果不是 0,则需要手工检査僵尸进程

第三行为 CPU 信息,具体内容如表所示:

内 容

说 明

0.1 us

用户进程占用的 CPU 百分比

0.1 sy

系统内核进程占用的 CPU 百分比

0.0 ni

改变过优先级的用户进程占用的 CPU 百分比

99.7 id

空闲 CPU 占用的 CPU 百分比

0.1 wa

等待输入/输出的进程占用的 CPU 百分比

0.0 hi

硬中断请求服务占用的 CPU 百分比

0.1 si

软中断请求服务占用的 CPU 百分比

0.0 st

st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU等待实际CPU的时间百分比

第四行为物理内存信息,具体内容如表所示:

内 容

说 明

Mem: 1863252 total

物理内存的总量,单位为KB

172208 used

己经使用的物理内存数量

1429964 free

空闲的物理内存数量。我们使用的是虚拟机,共分配了 628MB内存,所以只有53MB的空闲内存

261080 buff/cache

作为缓冲的内存数量

第五行为交换分区(swap虚拟内存)信息,如表所示:

内 容

说 明

Swap:  2097148 total

交换分区(虚拟内存)的总大小

Ok used

已经使用的交换分区的大小

2097148 free

空闲交换分区的大小

1481544 avail Mem

被提前加载的内存量

 top 命令的第二部分输出

  1. PID:进程的 ID。
  2. USER:该进程所属的用户。
  3. PR:优先级,数值越小优先级越高。
  4. NI:优先级,数值越小、优先级越高。
  5. VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  6. RES:该进程使用的物理内存的大小,单位为 KB。
  7. SHR:共享内存大小,单位为 KB。
  8. S:进程状态。

    D - 不可中断的睡眠态。

    R – 运行态

    S – 睡眠态

    T – 被跟踪或已停止

    Z – 僵尸态

  9. %CPU:该进程占用 CPU 的百分比。
  10. %MEM:该进程占用内存的百分比。
  11. TIME+:该进程共占用的 CPU 时间。
  12. COMMAND:进程的命令名。

2、free显示系统内存情况

free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /proc/meminfo 而收集到的。

语法格式:free [参数]

常用参数:

-b以Byte显示内存使用情况
-k以kb为单位显示内存使用情况
-m以mb为单位显示内存使用情况
-g以gb为单位显示内存使用情况
-s持续显示内存
-t显示内存使用总合

  • Mem行是物理内存使用情况
  • Swap行是虚拟内存作用情况
  • used列为已分配内存
  • free列为未分配的内存
  • total列为物理内存总量
  • shared列为共享内存
  • available列为可用内存

3、df命令

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法格式:du [参数] [文件]

常用参数:

-a显示目录中所有文件大小
-k以KB为单位显示文件大小
-m以MB为单位显示文件大小
-g以GB为单位显示文件大小
-h以易读方式显示文件大小
-s仅显示总计

4、PS命令

ps命令用于查看进程统计信息
 

常用参数:

  • a:显示当前终端下的所有进程信息,包括其他用户的进程。
  • u:使用以用户为主的格式输出进程信息。
  • x:显示当前用户在所有终端下的进程。
  • -e:显示系统内的所有进程信息。
  • -l:使用长(long)格式显示进程信息。
  • -f:使用完整的(full)格式显示进程信息。

5、crond定时任务

定时任务软件分类:

        crond(crontab)          定时任务软件包(cronie)
        atd                    (只运行一次)
        anacron                (非7*24小时运行的服务器)

crond分类:

系统定时任务:
        /etc/cron.hourly/         #每小时运行一次
        /etc/cron.daily/          #每日运行一次
        /etc/cron.weekly/         #每周运行一次
        /etc/cron.monthly/        #每月运行一次
        /etc/cron.deny            #定时任务黑名单文件
        /etc/crontab              #系统定时任务配置文件之一

        定时任务+logrotate命令,完成日志切割

用户定时任务:
        crontab -e                #list    #编译定时任务,==修改  /var/spool/cron/root
        crontab -l                #list    #查看定时任务,==查看  /var/spool/cron/root
        crontab -r                #delete    #清空所有的定时任务

crond相关文件:

        /var/spool/cron/root         #用户配置文件,默认是root执行
        /var/log/cron                #crond的日志文件(是否执行)

crond格式:

        分时日月周
cat /etc/crontab 
 时间数值的特殊表示方法
 *    表示该范围内的任意时间
 ,    表示间隔的多个不连续时间点
 -    表示一个连续的时间范围
 /    指定间隔的时间频率

网络通信

1、netstat命令 – 显示网络状态

netstat 命令用于显示各种网络相关信息,如网络连接,路由表

语法格式:netstat [参数]

常用参数:

-a显示所有连线中的Socket
-p显示正在使用Socket的程序识别码和程序名称
-u显示UDP传输协议的连线状况
-i

显示网络界面信息表单

-r显示路由表
-n

直接使用IP地址,不通过域名服务器

例:找出运行在指定端口的进程
        netstat -anp | grep ':3306'

2、curl命令

curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;

语法:语法格式:curl [参数] [网址]

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值