shell基础命令,shell入门基础

作者:计算机知识

shell

1.type 出示命令属于哪种类型

find命令选项
-name 遵照文件名查找
-type 查找某一品种的文本(b 代表设备块;d 目录;c 字符设备文件;l 符号(软)链接文件;f 普通文书)
-size 查找文件长度恐怕大小

测试文本内容如下:

    shell是2个命令解释器,实际是3个顺序,/bin/bash,linux中有着的指令都由它来声明,有和好的语法

二.常用语法规则:Bash

-prune 查找文件时解除当前文件夹,不查找
-path
-depth 查找文件时,首先查找当前文件、当前目录中的文件,然后再在其子目录个中查找
-maxdepth 前边跟数字num,表示在当前目录下往下num层深度(默认为①层)

# cat name1.txt 
name1 alvin1
name2 alvin2
name3 alvin3
name4 alvin4
# cat name2.txt 
name1 100
name2 101
name3 102
cccccccccccccccc

    shell脚本

  utf-8占2,3,4个字节(变长)

-perm 遵照文件权限来查找
-user 能够根据文件属主来查找
-group 能够服从文件数组来搜寻
-nouser 查找无效所属主的公文
-nogroup 查找无效所属组的文本

 

        以.sh结尾

三.help 中间命令(系统自带)

-newer:查找比文件更新时间更新的公文
-mtime:按目的内容改换时间找寻(天数)
-atime:按对象被访问的年月搜索(天数)
-ctime:按指标意况被涂改的时间去查究(天数)
-mmin/-amin/-cmin:(分钟数)
        “ n” n天/分钟从前的
        “- n” n天/分钟之内的

(1) paste将三个文本的每行1一对应统一

        shell语法 linux命令

   help for  刷选for相关的指令

-empty 查找大小为0的文件或空目录
-mount 在查找文件系统时不超过mount的文件系统
-follow 假设find命令境遇符号链接文件,就追踪链接文件指向的源文件

# paste name1.txt name2.txt
name1 alvin1 name1 100
name2 alvin2 name2 101
name3 alvin3 name3 102
name4 alvin4 cccccccccccccccc

shell基础命令,shell入门基础。    注释:

④.man 外部命令须要协和设置(yum install man man-pages -y)

-a 且
-o 或
! 非
-ok 提醒您是不是要实行后边的指令

 
(2) -d点名合并时以什么样作为分隔符

        单行注释 : #
        多行注释 : :<<c   c

    空格翻页   回车跳行  /a 寻找a相关  b往上翻 n

 

# paste -d: name1.txt name2.txt
name1 alvin1:name1 100
name2 alvin2:name2 101
name3 alvin3:name3 102
name4 alvin4:cccccccccccccccc

    shell实行办法

伍.whereis ls 查看命令所在地方,ELF代表编写翻译后的可实践文件


 
(3) -s将装有行以二个暴行的不二法门出口

        bash /path/to/script-name  或   /bin/bash /path/to/script-name    (刚烈推荐使用)
        /path/to/script-name   或  ./script-name    (当前路径下实行脚本)
        source script-name  或  . script-name    (注意“.“点号前边有空格)

图片 1

(1) -name

# paste -s name1.txt
name1 alvin1 name2 alvin2 name3 alvin3 name4 alvin4

# paste -s name1.txt name2.txt
name1 alvin1 name2 alvin2 name3 alvin3 name4 alvin4
name1 100 name2 101 name3 102 cccccccccccccccc

        前三种试行时,都会展开新的长河推行脚本
        source不会开启新的经过

翻开文件地方

查找/test下面所有以.txt结尾的文件
# find /test -name "*.txt"

查找/test下面所有以数字开头的txt文件
# find /test -name "[0-9].txt"

查找/目录下面的"passwd"文件和"profile" 文件
# find / -name "profile" -o -name "passwd"

 
(4) - - - 钦赐每n行作为一个暴行输出

        使用source时,能够与当下终端共享进度,共享变量(注重)

图片 2

 
(2) -type

每2行作为一行输出
# cat name1.txt | paste - -
name1 alvin1 name2 alvin2
name3 alvin3 name4 alvin4

每3行作为一行输出
# cat name1.txt | paste -d" " - - -
name1 alvin1 name2 alvin2 name3 alvin3
name4 alvin4

每4行作为一行输出
# cat name1.txt | paste - - - -
name1 alvin1 name2 alvin2 name3 alvin3 name4 alvin4

可以配合-d来指定分隔的符号
# cat name1.txt  | paste -d";"   - - -
name1 alvin1;name2 alvin2;name3 alvin3
name4 alvin4;;

    变量

使用type命令

查找/test下面所有的目录
# find /test -type d | xargs file

查找/etc 下面的所有l 连接文件
# find /etc -type l | xargs ls -l | more

 

        1、name=itcast
        2、name='itcast $age'  不会剖判当中的遍历
        叁、name=”itcast $age“ 深入分析变量后,再拼接成新的字符串

6.echo体现情形变量

 
(3) -size

 

    一声令下变量

图片 3

查找当前目录文件大于10M的文件
# find . -size  10M | xargs du –lh

查找当前目录文件小于10M的文件
# find . -size -10M | xargs du –lh

查找/etc/目录下面大于1M的文件,并且把 文件大小信息列出来
# find /etc/ -size  1M |xargs du -sh

        1、name=`ls`
        2、name=$(ls)

显示系统境遇变量

 
(4) -prune -path -depth

        括号里必须是linux命令,把命令推行的结果记录给变量

七.hash 加快查询速度(缓存此前命令操作)

当前目录下有1.doc、2.doc,其子目录/test下有3.doc、4.doc
查找当前目录下所有的.doc文件
# find . -name "*.doc"
./test/4.doc
./test/3.doc
./2.doc
./1.doc

忽略子目录/test,只查询当前目录的.doc文件
# find . -path "./test" -prune -o -name "*.doc"
./test
./2.doc
./1.doc

进入(或者说是指定)子目录/test查找.doc文件
# find ./test -depth -name "*.doc"
./test/4.doc
./test/3.doc

    全局变量

捌.df 翻看分区大小,根目录下的boot是累积在sda壹分区中

 
(5) -perm

        方法一:

图片 4

查找/test下权限为755的文件
# find /test -perm 755

        变量名=值

df查看文件分区

 
(6) -user -group -nouser -nogroup

        export 变量

du -sh ./* | sort -n  //查看当前目录各文件大小,并从小到大排序

修改gongda.txt文件的属主属组为gongda
# useradd gongda
# touch gongda.txt
# chown gongda:gongda gongda.txt

查找当前目录下属主为gongda的文件
# find . -user gongda | xargs ls -l
-rw-r--r-- 1 gongda gongda 0 5月 13 20:50 ./gongda.txt

查找当前目录下属组为gongda的文件
# find . -group gongda | xargs ls -l
-rw-r--r-- 1 gongda gongda 0 5月 13 20:50 ./gongda.txt

删除gongda用户和组
# userdel -r gongda

查找当前目录下无效属主的文件
# find . -nouser | xargs ls -l
-rw-r--r-- 1 509 509 0 5月 13 20:50 ./gongda.txt

查找当前目录下无效属组的文件
# find -nogroup | xargs ls -l
-rw-r--r-- 1 509 509 0 5月 13 20:50 ./gongda.txt

        方法二:(最常用)

mkdir ./x/{a,b,c}dir  //同时创制五个子目录 x/adir x/bdir x/cdir

 
(7) -newer

        export 变量名=值

ln a.txt b.txt  //a指向b,删除a,b还在,硬链接

查询比1.txt新的文件
# find . -newer 1.txt

查询比1.txt新但是比alvin.txt旧的文件
# find . -newer 1.txt ! -newer alvin.txt 

        假使是在终端中定义全局变量,作用范围是时下极端及子进度

ln -s a.txt b.txt  //软链接,删除a,b也会被删除

 
(8) -mtime

        假设想要自个儿定义的全局变量在跟系统的全局变量一样在颇具条件都灵验,需求在~/.bashrc或/etc/profile文件中定义:

玖.touch 可创建文件,大概改造文件的修改时间

查找在/目录下面更改时间在5天以内的文件
# find / -mtime -5

查找在/目录下面更改时间在3天以前的目录
# find / -mtime  3

        修改~/.bashrc后,直接张开新的顶峰,定义的全局变量就见效了,此措施只对近期用户有效
        修改/etc/profile时,必要重启操作系统,定义的全局变量才生效,此情势对持有用户有效
        下边三种艺术在修改文件后,倘使想让全局变量在当下终端生效,必要实行命令source ~/.bashrc或source /etc/profile

10.突显文件内容:

 
(9) -mount

    翻看变量

   cat:展现全部

表示不能垮文件系统查找,自己当前mount的文件系统查找
# find / -mount -name "alvinzeng.txt" 

本文由bwin必赢发布,转载请注明来源

关键词: java开发日记 shell find命令 find实例 past