Linux必备基础命令

• man 是 manual 的缩写   man 是一个帮助命令
• # man ls    

 shell(命令解释器器)自带的命令称为内部命令,其他的是外部命令   type+命令,查询是内部还是外部命令
• 内部命令使⽤用 help 帮助 
• # help cd 
• 外部命令使⽤用help帮助 
• # ls  --help

• info 帮助⽐比 help 更更详细,作为 help 的补充 
• # info

 1    ls    list的缩写    显示目录文件   linux中一切皆文件!!!!!!!!!
            -l    长格式显示文件
    -a    显示出所有隐藏文件
    -A    显示出除.和..之外的隐藏文件
    -ld    显示当前的目录属性
    -t    按时间顺序显示
    -r    逆序显示
    -h    方便查看方式显示
    实际常用命令组合:    
    ls –lrth

2    mkdir    创建新目录
     -p    级联创建目录


cd    切换目录
    cd /        进入根目录
    cd ..或者../    进入当前目录的上一级目录
    cd -        返回上一次的操作目录
    cd ~        进入家目录
    cd ../..        进入当前目录的上两级目录

pwd    显示当前目录

cp    复制文件或目录
    -r    复制目录
    -p    保留文件或目录的属性
mv     移动或改名

rm    删除文件或目录    
     -r删除目录    -f强制删除
tree    树状显示目录

rmdir    删除空目录,不常用,使用 rm –r替代

touch    创建空文件
cat        显示文件内容
more    显示文件内容
less        显示文件内容
head    显示文件前几行
     -n    行数                          517656581
tail        显示文件后几行
    -n    行数    
    -f     动态查看
ln        创建软链接     -s    源文件<---目标文件 
vim/vi    修改文件  比较重要`         打开一个文件 并没有操作,成为普通模式
按一下键盘i insert进入编辑模式并且在当前光标位置之前插入  按I是跑到行首开始插入  
按a是在光标之后追加  按A是跑到结尾处  都在一行内操作
按esc进入普通模式
打一个:进入命令模式
命令模式 q=quit退出 q!强制退出不保存修改内容           set nu 输出行号
 普通模式 下按u撤销修改的内容(并非撤销所做的操作),按一下撤销一次   
 反撤销count+r按一次反撤销一次   Linux下撤销没有次数限制,
 搜索字符串 在普通模式下/所需字符串  如果有重复的就按n(next)查找 往回走的话按N  
 忽略大小写搜索 set ic  不忽略的话就是set noic  ic=ignore case  
  普通模式下 按dd删除光标所在一行  
  普通模式下 按G跑到文档最后一行 g跑到 文档第一行
  普通模式下 按o是跑到光标之后新开一行 进入编辑模式 按O是跑到光标之前新开一行,进入编辑模式                                                                                                                                                     
echo    输出内容到控制台     hello $PATH   类似于c语言中printf
>指令 和 >> 指令    覆盖和追加 
diff    a b    查看俩文件差异
cut        显示某一列或某几列的字段
    cut cut.txt -d " " -f1     f1表示第一行
-d 表示指定分隔符

split    拆分文件,文件太大读不出来的场景使用
    -l   按输出文件行数 : split -l 200 input_file out_file 
        -b  按输出文件大小 : split -b 200 input_file out_file
        (注意-b后边跟的数字需要换算成字节数)
                 注:out_file为输出文件的前缀
        另外,还有 -d 和 -a 两个选项:
        -d   如果加上-d则后缀为数字,不加则默认为字母
        -a   默认为2,意思是后缀的位数,这个是根据你分出来的文件个数决定的
read
用于从标准输入中读取输入单行    类似于c语言中的scanf
    read -p "Please input the choice:"  idx
groupadd group_name    创建一个新用户组    用户组都在/etc/group中
groupdel group_name     删除一个用户组 
groupmod -n new_group_name old_group_name    重命名一个用户组
useradd -g admin -d /home/user1 -s /bin/bash user1         
    etc/passwd    里面存得不是密码,而是用户信息  密码存在 /etc/shadow
    创建一个属于 "admin" 用户组的用户
useradd user1    创建一个新用户
userdel -r user1     删除一个用户 ( '-r' 排除主目录) 
usermod -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd    修改口令
    passwd user1 修改一个用户的口令 (只允许root执行) 
chage -E 2005-12-31 user1     设置用户口令的失效期限 
pwck    检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 
grpck     检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
su – hive    切换用户,带上- 也切换了环境变量
sudo -i    切换到超级用户
 编 辑 /etc/  添加
    hadoop  ALL=(ALL)       NOPASSWD: NOPASSWD: ALL
    hadoop是要切换到超级用户的普通用户。
who/w    查看登录的用户信息


chmod    改变文件或目录权限
     -R 递归修改    u/g/o/a +-= r/w/x    777(r=4 w=2 x=1)最大权限
chown    -R    改变文件或目录所有者            chown : *** 改用户组   chown **:**改用户和用户组 

chgrp    -R    改变文件或目录所有组

备注:-c 回显修改前后信息
tar    -zcvf    -zxvf    压缩与解压
    -z    支持gzip压缩
    -c    打包    
    -v    显示详细信息    
    -f     指定压缩文件 
    -x     解包
gzip 123.txt    gunzip    123.txt.gz     gzip -d 123.txt.gz    
    -r 压缩目录 
    -c 保留原文件 进行压缩 gzip -c 123.txt > 123.txt.gz 差;-9 压缩比最高。
        默认压缩比是 -6
zip file1.zip file1 创建一个zip格式的压缩包
    zip -r file1.zip file1 f-ile2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 
    unzip file1.zip 解压一个zip格式压缩包 
rar a file1.rar test_file 创建一个叫做 'fil
    -数字    用于指定压缩等级,-1 压缩等级最低,压缩比最e1.rar' 的包                         
    需要单独安装
    rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 
    rar x file1.rar 解压rar包 
    unrar x file1.rar 解压rar包

 0find    搜索文件或者目录
    find pathname -options [-print -exec -ok ...]
    pathname: find命令所查找的目录路径
    命令选项:
​     -name 按照文件名查找文件    不按大小写的话 -iname
    -perm 按文件权限查找文件
​     -user 按文件属主查找文件
​     -group 按照文件所属的组来查找文件。
​     -type 查找某一类型的文件,诸如:
    ​    d - 目录    f - 普通文件
​     -size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小     
+20M查找大于20M的文件   -20M查找小于20M的文件
    -mmin n 查找系统中最后N分钟被改变文件数据的文件
​     -mtime n 查找系统中最后n*24小时被改变文件数据的文件
​     注意:(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
    -print: find命令将匹配的文件输出到标准输出。  
​     -exec: find命令对匹配的文件执行该参数所给出的shell命令。
         相应命令的形式为‘command' { } \;      注意{ }和\;之间的空格。
         \转义字符 顾名思义,将其转换其他意思  前面要搭配-e!!!
​     -ok: 和-exec的作用相同,只不过让用户来确定是否执行。

find 举例:
​ (1)查找48小时内修改过的文件
​ find -mtime -2 
​ (2)在当前目录查找 以.log结尾的文件。 ". "代表当前目录
​ find ./ -name '*.log'
​ (3)查找/opt目录下 权限为 777的文件
​ find /opt -perm 777
​ (4)查找大于210M的文件
 find ./ -size +210M 
​ find -size 1000c 查找等于1000字符的文件
​ ​(5)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)
​ find . -type f -mtime +10 -exec rm -rf {} \; 
​ (6)当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,
   只不过在删除之前先给出提示。 按y键删除文件,按n键不删除                                            
​ find . -name '*.log' -mtime +5 -ok -exec rm {} \;
​ (7)用exnameec选项执行cp命令   改名(有风险,多个文件名字一样,有可能被覆盖掉)
​ find . -name '*.log' -exec cp {} test3 \;
​ (8)查找当前目录中以一个小写字母开头,最后是4到9加上.log结束的文件
​ find . -name '[a-z]*[4-9].log' -print

which    查看可执行文件的位置????????????????????????  
    which是在PATH就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。d
    使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。


whereis    查看可执行文件
    whereis命令只能用于程序名的搜索,
    而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
     如果省略参数,则返回所有信息。whereis是基于系统内建的数据库进行搜索,因此效率很高,    而find则是遍历硬盘查找文件。

grep    搜索字符串匹配的行
    强大的文本搜索命令,grep(Global Regular Expression Print)全局正则表达式搜索
    ​grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板,如果模板包括空格,则必须被引用。
    模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。标准输入(read -p)
    
命令格式:
    ​grep [option] pattern file|dir
    ​常用参数:
    ​ -A n --after-context显示匹配字符后n行
    ​ -B n --before-context显示匹配字符前n行
    ​ -C n --context 显示匹配字符前后n行
    ​ -c --count                            计算符合样式的行数
    ​ -i 忽略大小写
    ​ -l 只列出文件内容符合指定的样式的文件名称
    ​ -f 从文件中读取关键词
    ​ -n 显示匹配内容的所在文件中行数
    ​ -R 递归查找文件夹
    ***常用方式 grep -Rni 字符串 文件或目录   最重要的方式

grep的规则表达式:
    ​ ^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
    ​ $ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
    ​ . #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
    ​ * #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
    ​*作为通配符,代表任意个任意字符 *作为正则表达式匹配零个或多个先前字符
    .* #一起用代表任意字符。 
    ​ [] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
    ​ [^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
    --- begin 使用场景较少 供参考 ---
    ​ \< #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
    ​ \> #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
    ​ x\{m\} #重复字符x,m次,如:'o\{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。
    --- end 使用场景较少 供参考 ---
     
grep 实例:
​     (1)查找指定进程
​     ps -ef | grep svn    
    ​(2)查找指定进程个数
​      ps -ef | grep svn -c
    ​(3)从文件夹中递归查找以grep开头的行,并只列出文件
    ​ grep -lR '^grep' /tmp
​     (4)查找非x的行内容
    ​ grep ‘[^x]' test.txt
    ​(6)显示包含ed或者at字符的内容行
    ​ grep -E 'ed|at' test.txt


sed        stream editor 
    sed [选项] [命令] 文件名    
    sed的常用选项:
    -e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
    -f:后跟保存了sed指令的文件
    -i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
    -n: 取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行

    sed中的编辑命令:
    a:追加  向匹配行后面插入内容
    c:更改  更改匹配行的内容
    i:插入  向匹配行前插入内容
    d:删除  删除匹配内容的行
    s:替换  替换掉匹配的内容
    p:打印  打印出匹配的内容,通常与-n选项合用
    =:用来打印被匹配的行的行号
    r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件    
sed 举例
1 sed -i "/The start script/iabc" 1.txt           #增 在包含 The start script行之前进行添加行 abc
2 sed -i "/The start script/aabc" 1.txt             #增 在包含 The start script行之后进行添加行 abc
3 sed -i‘s/指定的字符/要插入的字符&/’1.txt    #增 在指定的字符之前插入字符
4 sed -i 's/指定的字符/&要插入的字符/’  1.txt    #增 在指定的字符之后插入字符
sed -i 's/cp \$HIVE_HOME/\\&/' /opt/cloudera/parcels/CDH/lib/hive/bin/hive-config.sh  出题
5 sed -i ‘s/^.*23/#&/g’ 1.txt        #增 注释掉某一行
6 sed -i '/ac/d' 1.txt                  #删 删除包含ac的行
7 sed  '4d'  1.txt                    #删 删除第四行
8 sed -i 's/ac/bd/g' 1.txt            #改 老字符替换成新字符   加上g都给替换,不然就只换第一行
9 sed -i '/ac/chello' start_es.sh            # 改 替换包含ac的一行的内容

10 sed '3ahello' 1.txt   #向第三行后面添加hello,3表示行号
11 sed '3ihello'  1.txt   #在第三行之前插入hello
12 sed  -n '3p'  1.txt    #打印文件中的第三行内容
13 sed -n '1,3p'  1.txt  #打印1到3行
14 sed  '/^$/d'    1.txt #删除空行
sed 举例

15 sed -i '/bbb/r 2.txt' 1.txt # 读取2.txt文件,将文件内容写入到1.txt中匹配bbb的行之后。
16 sed -i 'r 2.txt' 1.txt # 读取2.txt文件,将文件内容写入到1.txt每一行之后。r后面跟着的就是要读取的内容文件
17 sed ‘/789/w a.txt’ 1.txt #如果1.txt包含789的行,将包含789的行覆盖写入到a.txt中,如果不包含,清空a.txt
18 sed ‘w a.txt' 1.txt #将文件1.txt的内容写入到a.txt    w后面跟着的就是要写的文件,写的文件之后的文件是需要读的文件
19 sed -i -e '1,3d' -e '/abc/cABC' 1.txt #-e的用法举例,先删除1到3行,然后将匹配abc的行替换为ABC。
20 sed -n -e '/a/p' -e '/a/=' 1.txt  #先打印文件匹配行的内容,再打印文件匹配航的行号。
21 sed -n  ‘/abc/=' 1.txt   #打印匹配行的行号

sort    排序
    按ASCII码值进行比较,最后将他们按升序输出
    示例1
    sort 1.txt    #    排序
    示例2
    sort -u seq.txt    #    排序并去重
    示例3
    sort -r 1.txt    #    降序进行排序
    示例4    慎重
    [rocrocket@rocrocket ~]$ sort -r number.txt > number.txt
    [rocrocket@rocrocket ~]$ cat number.txt
    [rocrocket@rocrocket ~]$
    // 看,竟然将number清空了
    这个时候 -o就出现了,
    sort -r 1.txt -o 1.txt    #    -o 输出到原文件
    示例5
    10比2小的情况。
    要使用-n选项,来告诉sort,“要以数值来排序”!
    sort -n number.txt
sort    排序
    示例六
    这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,    第三列表示水果价格。那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实    现?幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut的-d选项)
    指定了间隔符之后,就可以用-k来指定列数了。
    sort -n -k 2 -t : facebook.txt    
      # -t 分隔符为:,-k 以第二列进行排序,-n 按照数值进行排序
    示例七
    -f  会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
    -b  会忽略每一行前面的所有空白部分,从第一个可见字符开始比较
    注意:默认的情况下,如果sort排序没有按照ASCII码进行排序(比如a排在了A之前了),
          主要因为本地配置的问题;
          解决:查看 locale 更改配置 export LC_ALL=C 再locale确认下是否修改成功。
    示例八
    我想让facebook.txt按照公司人数排序 ,人数相同的按照员工平均工资升序排序
    sort -n -t ' ' -k 2 -k 3 facebook.txt
    看,我们加了一个-k2 -k3就解决了问题。sort支持这种设定,就是说设定域排序的优先级,
    先以第2个域进行排序,如果相同,再以第3个域进行排序。
    (如果你愿意,可以一直这么写下去,设定很多个排序优先级)


uniq    去重
    用法:uniq [选项]... [文件]
    从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。
    参数:
    -c, --count                       在每行记录前显示该行内容的数量
    -d, --repeated                    仅显示重复的记录行,并且去重  
    -D, --all-repeated[=delimit-method]     仅显示重复的行,并不去重
    -i, --ignore-case                   忽略大小写        取第一个留下
    -s, --skip-chars=N                  比较时跳过前N个字符
    -u, --unique                        仅显示非重复的行     
    -w, --check-chars=N                              只对比指定的N个字符,默认是从开始算起,如果                          和-s一起使用那么要排除-s指定的字符数
举例
    uniq -c 1.txt                  #    1.显示行的数量
    uniq -d 1.txt                #    2.只显示重复的行,并去重
    uniq -u 1.txt                #    3.仅显示非重复的行
    uniq -s 2 -w 2 1.txt            #    4.-s和-w
    -s 2:忽略前两个字符,即从第三列开始比较
    -w 2:只比较两个字符,即只比较第三列开始的两个字符
《 sort+uniq 》解决uniq中隔行不能消重的bug
•    uniq      去除重复的行,最终结果包含重复和非重复的行。
•    uniq -u 只打印非重复的行。
•    uniq -d 只打印重复的行。   并且去重
    
两个文件的交集 --- 重复的行
sort out1.txt out2.txt | uniq -d      
# -d 输出重复的行, 需要注意一个问题,那就是这两个文件,在各自的文件中不要出现重复的数据(要先对各个文件进行排序去重)

两个文件的并集 --- 去重之后的行,包括重复的已被去重的行和不重复的行
sort out1.txt out2.txt | uniq           # uniq不加参数意思是去掉重复的数据

两个文件的差集
out1.txt-out2.txt
sort out1.txt out2.txt out2.txt | uniq -u
讲解:sort out1.txt out2.txt out2.txt 会让out2.txt的所有内容都出现两次,所以uniq -u 之后不会出现 out2.txt 里面的内容;
而out1.txt和out2.txt重复的内容会至少出现3次以上,也不会输出到结果中.
所以最终结果一定是out1.txt在out2.txt中没有出现过的数据,也就是out1.txt-out2.txt的差集


《 sort+uniq 》
out2.txt - out1.txt
sort out1.txt out1.txt out2.txt | uniq -u
原理请看上面的out1.txt-out2.txt的讲解,原理是一样的
    
[提醒]
去除文件重复的行
在shell中可以利用uniq
sort unsorted.txt | uniq   
注意:要先进行排序,才能调用uniq (uniq命令,只是把相邻的重复的数据行去掉)


paste
paste [ -d -s ] -file1 file2
选项含义如下:
    -d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用-d @。
        -s 将每个文件合并成行


awk    具有强大的文本格式化能力    一个强大的文本分析工具
    awk [options] 'pattern{action}' file
      command | awk ' condition { action }'
    示例1    全部打印
    awk '{print}' 1.txt
    示例2    添加前缀和后缀
    awk 'BEGIN{print "col1","col2"} {print} END{print "end1","end2"}' a.txt 
    示例3    -F 指定分隔符
    awk -F "+" '{print $2}' a.txt 
    示例4
    NF(当前行的字段个数)
      $NF就代表最后一个字段,$(NF-1)代表倒数第二个字段
    echo "aa bb cc  dd" | awk '{print $NF}'
    echo "aa bb cc  dd" | awk '{print $(NF-1)}'
    示例5    不打印某一列
      不打印某一列时,将对应列设置为空字符串即可,用 $NF="",设置多列时用分号分隔开  
    cat aa.txt | awk '{$NF="";print $0}’            #不打印最后一列
    cat aa.txt | awk '{$(NF-1)="";$NF="";print $0}'        #不打印最后两列

awk    具有强大的文本格式化能力    一个强大的文本分析工具吧   {}里面是动作,大括号两边必须要用单引号
    示例6    NR (当前处理的是第几行)
    cat test.txt | awk '{print NR")", $0}'    #打印当前行号和当前文本内容 
      逗号表示输出的变量之间用空格分隔
      右括号必需使用 双引号 才可以原样输出
      示例7    打印指定行内容
    java -version 2>&1  | awk 'NR==1 {print $0}'    #打印第一行
    cat a.txt | awk ‘NR===3  {print $0}'
    示例8    awk 允许指定输出条件,只输出符合条件的行
    awk  '条件 {动作}' 文件名
      特殊字符需要转义
    cat exp.txt | awk '/stsvc\/fms/ {print $0}' #包含 stsvc/fms 的行
    cat exp.txt | awk 'NR>4 {print $0}'          #大于第四行
    cat test.txt | awk '$2=="ff" {print $0}'    #某个字段等于具体值
    echo "aa ss dd" | awk '{ if($3 == "dd") print $0; else print "nothing"}'    # if条件

uid 用户id
pid 进程id
ppid 父进程id

ps –ef   牢记
    -e  此参数的效果和指定"A"参数相同,显示所有的进程
    -f  full-format listing 回显样式
    ps -aux
    -a  显示所有执行的程序
    -u      userlist
    -x     Lift the BSD-style 回显样式
    ps -ef 
top   
idle 空闲比例 cpu空闲50%下,电脑无法使用 那些进程在占用的话看%cpu
%cpu持续超过1000的就是有问题进程
硬盘:40核 128G 万兆网卡 4T*13 SATA(最垃圾的) 
用top看cpu
用free -h看内存   最重要看的是 total 和 used 是最准确的这俩
swap 把磁盘当作内存来用
kill -9 id   无敌的杀进程    arch             显示机器的处理器架构(1) 
    uname -m         显示机器的处理器架构(2) 
    uname -r
         显示正在使用的内核版本   林纳斯控制的版本
    cat /proc/cpuinfo     显示CPU info的信息 
    cat /proc/version     显示内核的版本 
    cat /etc/redhat -release 显示回显版本 回显就是敲个命令显示的东西吧 那你
    date             显示系统日期 
    cal 2007         显示2007年的日历表 
    
    打死也不要用date -s  09:09:09     修改时间
    打死也不要用clock -w         将时间修改保存到 BIOS 
    date回显年月日 date + "%Y%m%d%"  时分秒 %H:%M:%S
    时间戳 date +"%S"           从1970年一月一号到现在的秒数
    date -d "180 days ago" +%Y%m%d    # 180天前
    date -d "1 days" +%Y%m%d        # 1天后
    date -d "-1 days" +%Y%m%d        # 一天前
        date -d "-1 days ago" +%Y%m%d        # 一天后(负负得正)
    uptime  电脑起来的时间
    last reboot能看到电脑每一次的启动时间
    who -b
真正的服务器不是部署在vm里面的,直接安装在linux中mount  /dev/hda2 /mnt/hda2     挂载一个叫做hda2的盘 - 确定目录 '/mnt/hda2' 已经存在 
umount /dev/hda2             卸载一个叫做hda2的盘 - 先从挂载点 '/mnt/hda2' 退出 
df -h         disk 盘            显示已经挂载的分区列表
ls -lSr                    以尺寸大小排列文件和目录
du -sh dir1      disk(盘)            估算目录 'dir1' 已经使用的磁盘空间'    du -sh * 1.txt是显示当前文件下所有目录占用的大小
mkfs.ext4 /dev/sdb            格式化磁盘
磁盘没有跟软件挂载在一块的话就是一个硬盘 没法使用
磁盘使用过程 就是先格式化这个盘,然后让它跟软件联系起来(mount)
四大资源  cpu top查看
          内存 free -h
          磁盘  df -h
          网络ipconfig
    

    Red-Hat Package Manager(RPM软件包管理器)

    rpm -ivh package.rpm     安装一个rpm包  
    rpm -Uvh package.rpm     更新一个rpm包但不改变其配置文件 
    rpm -qa             显示系统中所有已经安装的rpm包 
    rpm -e package_name.rpm     删除一个rpm包
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
    类似于手机上面安装APP
    yum install package_name         下载并安装一个rpm包 
    yum update package_name         更新一个rpm包 
    yum remove package_name         删除一个rpm包 
    yum list                 列出当前系统中安装的所有包 
    yum search package_name         在rpm仓库中搜寻软件包 
    yum clean all                 删除所有缓存的包和头文件
  
  

    dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX 
    unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS

     linux下执行shell文件,报如下错,格式不对。
    报错 -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory
  文件普通模式中,set ff 查询文件格式

    ifconfig eth0 显示一个以太网卡的配置 
    ifup eth0 启用一个 'eth0' 网络设备 
    ifdown eth0 禁用一个 'eth0' 网络设备   
    ifdown ens33;ifup ens33 相当于一个命令使用
    ip a
    ****netstat -nap |grep  网络连接   与ps -ef一起使用
    listen 监听端口号 :::0000 
    端口号用来区分不同的程序的
    
    netstat -naptul |grep 
    ping IP
    mtr     IP    跟踪每一级的IP地址     可能会丢包,丢包不好
    ethtool eth0 显示网卡的具体信息,比如speed。
万兆网卡 ll) 半双工(half) 对网卡来说,全双工就是能收能发 半双工就是    
    iftop 实时流量监控工具 看流量大小
    iftop 实时流量监控工具
    #yum -y install epel-release
#yum make看spedd 速度     1Mb=1024 kb 这个仅限于 内存和磁盘存储 网络传输中1mb=1000kb
全双工(fucache
#yum -y install iftop 

1、iftop界面相关说明
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:        发送流量
RX:        接收流量
TOTAL:总流量
Cumm: 运行iftop到目前时间的总流量
peak:    流量峰值
rates:    分别表示过去 2s 10s 40s 的平均流量
2、iftop相关参数
-i   设定监测的网卡,如:# iftop -i eth1
-B 以bytes为单位显示流量(默认是bits),如:# iftop -B
-n 使host信息默认直接都显示IP,如:# iftop -n
-N 使端口信息默认直接都显示端口号,如: # iftop -N
-F 显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-P 使host信息及端口信息默认就都显示

查看网络流量

    ifstat
    ifstat ens33

RX Pkts/Rate  数据包接收流量

RX Errs/Drop  丢包

TX Pkts/Rate  数据包发送流量

RX Data/Rate 数据接收流量

TX Data/Rate 数据发送流量

iostat -x -d -k 1 100
-d:单独输出Device结果,不包括cpu结果
-k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
-x:输出更详细的io设备统计信息
1: 采样时间间隔 1s
100:采样个数

pidstat -d 1 查看那个进程的使用IO高
    -d 时间间隔 
    1  1s

[root@hadoop1 ~]# iostat -d -x -k 1 1   查看磁盘io
Linux 3.10.0-229.el7.x86_64 (storage-26)        09/30/2020      _x86_64_        (40 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.03    24.43   29.90   33.12  1874.42 11241.36   416.26     1.42   22.54    6.56   36.97   0.48   3.05
以上各列的含义如下:
rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s: 每秒对该设备的写请求被合并次数
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz: 平均等待处理的IO请求队列长度
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm: 平均每次IO请求的处理时间(毫秒为单位)
***    %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
大约于80%就报警,基本就是满负荷    rz
    sz
    scp 123.txt root@hadoop1:/home   传过去   送过去
    scp root@hadoop2:/home/123.txt  /home   拉过去  拉过来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: grep命令Linux系统中常用的文本搜索工具,它可以在文件中查找指定的字符串,并将包含该字符串的行输出到屏幕上。grep命令的使用非常灵活,可以通过各种选项和正则表达式来实现不同的搜索需求。 grep命令的基本语法为: grep [选项] 字符串 文件名 其中,选项可以是: -c:只输出匹配行的数量,不输出匹配的内容。 -i:忽略大小写。 -n:输出匹配行的行号。 -v:反向匹配,输出不包含指定字符串的行。 -r:递归搜索指定目录下的所有文件。 常用的正则表达式符号包括: ^:匹配行首。 $:匹配行尾。 .:匹配任意一个字符。 *:匹配前面的字符出现次或多次。 +:匹配前面的字符出现1次或多次。 []:匹配方括号中的任意一个字符。 {}:匹配花括号中指定的次数。 ():将括号中的表达式作为一个整体。 使用grep命令可以方便地查找文件中的内容,是Linux系统中必备的工具之一。 ### 回答2: grep命令Linux中常用的一种文本搜索工具,它可以在文本文件中匹配指定的字符串,并将匹配成功的行输出到终端上。grep命令参数非常多,理解它的使用方法可以提高我们在文本操作中的效率。下面详细介绍grep命令的使用。 1. grep基本语法 grep命令的基本语法为: grep [option] pattern [file...] 其中,[]表示可选参数,pattern表示匹配的字符串,file表示要搜索的文件名。 2. grep的常用选项 其中grep的常用选项有以下几种: -i:匹配字符时忽略大小写 -v:显示不匹配的行 -n:显示匹配的行号 -r:递归搜索子目录下文件 3. grep的使用示例 假设当前目录下有一个文件test.txt,内容为: hello world grep command 下面我们将通过例子来学习grep的使用。 3.1 grep命令的基本使用 用法:grep [string] [file] 例如:grep hello test.txt 该命令会在文件test.txt中搜索“hello”字符串,并将匹配到的行输出到终端上。 3.2 grep命令不区分大小写 用法:grep -i [string] [file] 例如:grep -i HELLO test.txt 该命令会在文件test.txt中搜索“hello”字符串,并将匹配到的行输出到终端上,由于-i选项的存在,该命令不区分大小写。 3.3 grep命令显示行号 用法:grep -n [string] [file] 例如:grep -n hello test.txt 该命令会在文件test.txt中搜索“hello”字符串,并将匹配到的行及其行号输出到终端上。 3.4 grep命令显示不匹配的行 用法:grep -v [string] [file] 例如:grep -v hello test.txt 该命令会在文件test.txt中搜索不包含“hello”字符串的行,并将匹配到的行输出到终端上。 3.5 grep命令递归搜索子目录下文件 用法:grep -r [string] [directory] 例如:grep -r hello . 该命令会在当前目录及子目录下所有包含“hello”字符串的文件中搜索,并将匹配到的行输出到终端上。 总结: grep命令是一个非常实用的文本搜索工具,我们可以利用它来高效地搜索并处理我们需要的数据。上述仅是grep命令的基本语法和常用选项,想要更为深入地了解该命令,需要不断地在实践中积累和学习。 ### 回答3: grep命令Linux系统中非常常用的命令之一,它的用途是搜索指定文本文件中的指定字符串,并将包含该字符串的行打印出来。其用法非常简单,只需要在终端输入以下命令grep "搜索字符串" 文件名 当然,在实际中,我们通常使用的grep命令远不止这一个简单的用法。下面详细介绍grep命令的各种用法。 1.基本用法 grep命令最常用的用法就是查找文件中的指定字符串,例如: grep "hello" file.txt 这个命令将会在file.txt文件中搜索包含“hello”的行,并将所有找到的行打印出来。 2.指定多个文件 如果要在多个文件中查找相同的字符串,可以使用通配符*来指定多个文件,例如: grep "hello" *.txt 这个命令将会搜索所有以.txt结尾的文件中包含“hello”的行,并将所有找到的行打印出来。 3.忽略大小写 如果不关心字符串的大小写,可以使用-i参数来忽略大小写,例如: grep -i "hello" file.txt 这个命令将会在file.txt文件中搜索包含“hello”或“Hello”或“HELLO”等字符串的行,并将所有找到的行打印出来。 4.递归搜索 如果要在一个目录及其子目录中搜索指定字符串,可以使用-r参数来递归搜索,例如: grep -r "hello" /path/to/dir 这个命令将会在/path/to/dir目录及其所有子目录中搜索包含“hello”的行,并将所有找到的行打印出来。 5.显示行号 如果要在文件中显示包含指定字符串的行号,可以使用-n参数,例如: grep -n "hello" file.txt 这个命令将会在file.txt文件中搜索包含“hello”的行,并将所有找到的行以及行号打印出来。 6.显示匹配部分 如果要在文件中显示匹配指定字符串的部分,可以使用-o参数,例如: grep -o "hello" file.txt 这个命令将会在file.txt文件中搜索包含“hello”的行,并将所有找到的“hello”单词打印出来。 7.反向查找 如果要查找不包含指定字符串的行,可以使用-v参数,例如: grep -v "hello" file.txt 这个命令将会在file.txt文件中搜索不包含“hello”的行,并将所有找到的行打印出来。 总之,grep命令非常灵活,可以根据不同的需求进行各种细致精准的搜索。不过需要注意的是,尤其在使用递归搜索的时候,要确保指定目录下的文件确实有读权限,否则grep命令可能会无法工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值