linux常用命令

236 阅读5分钟

whatis

    用于非实时的查询一个命令执行什么功能
    
    执行whatis后,将会查找一个存储所有命令相关信息的数据库,根据命令名返回相关结果。

如果需要更新这个命令相关信息的数据库,执行以下命令:
# makewhatis

which

which主要是用来查找系统环境变量$PATH目录下的可执行文件。

# echo $PATH
# which ls
/bin/ls

whereis

whereis可以用来非实时的(通过数据库)查找二进制(命令)、源文件、man文件。

# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
同时显示了环境变量下的路径 以及man文件

type

type命令用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。

[root@VM_158_86_centos ~]# type vim
vim 是 /usr/bin/vim
[root@VM_158_86_centos ~]# type ls
ls 是 ls --color=auto 的别名
[root@VM_158_86_centos ~]# type man
man 是 /usr/bin/man
[root@VM_158_86_centos ~]# type echo
echo 是 shell 内嵌
[root@VM_158_86_centos ~]# type declare
declare 是 shell 内嵌

在上面例子中 echo declare是shell自带的,其他是由shell外部的独立二进制文件提供的

who

who 命令显示关于当前在本地系统上的所有用户的信息

locate

在文件系统上查找符合条件的文件 实现工具:locate,find locate: 依赖于事先构建好的索引库; 系统自动实现(周期性任务) 手动更新数据库(updatedb)

工作特性: 查找速度快; 模糊查找; 非实时查找 local [OPTION]... PATTERN... -b:只匹配路径中的基名 -c:统计出共有多少个符合条件的文件 -r:ERE note*:updatedb构建需要遍历整个根文件系统,很消耗资源;

find

实时查找工具,通过遍历指定起始路径下文件系统层次结构完成文件查找
    
工作特性:
    查找速度略慢
    精确查找
    实时查找

用法:
    find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
        查找起始路径:指定具体搜索目标起始路径;默认为当前目录;
        查找条件:指定的查找标准,可以根据文件名,大小,类型,从属关系,权限等标准进行;默认为找出指定路径下的所有文件;
        处理动作:对符合查找条件的文件做出的操作,例如删除等操作;默认为输出至标准输出
    
    查找条件:
        表达式:选项和测试
        
        测试:结果通常为布尔型boolean
            根据文件名:
                -name "pattern"
                -iname "pattern"  --ignorecase name pattern
                    支持glob风格的通配符:
                        *,?,[],[^]
                -regex pattern :支持正则表达式模式查找文件,匹配是整个路径,而非其名
            根据从属关系查找
                -user USERNAME
                -group GROUPNAME
                -uid UID
                -gid GID
                -nouser 查找没有属主的文件
                -nogroup 查找没有属组的文件
            根据文件类型查找:
                -type TYPE:
                    f:普通文件
                    d:目录文件
                    l:符号文件
                    b:块设备文件
                    c:字符设备文件
                    p:管道文件
                    s:套接字文件
            
            组合测试
                与:-a,默认组合逻辑;
                或:-o  ex:find -type f -o -nouser -ls
                非:-not或!
        ex:find -type f -o (-type d -o -nouser -not -nogroup)
        
        根据文件的大小查找
            -size[+|-]#UNIT
                常用单位:k,M,G
                
                #UNIT:(#-1,#] 大于#-1,小于等于#
                -#UNIT:[0,#-1]
                +#UNIT:(#,oo)
                
        根据时间搓查找
        以天:
        -atime [+|-]#  过去#天访问的文件
            #:[#,#+1)
            -#:(#,0]
            +#:(oo,#-1]
        -mtime
        -ctime
        以分钟
        -amin
        -mmin
        -cmin
        
        根据权限查找:
            -perm [/|-]mode  --permission
                mode:精确权限
                /mode:任何一类用户u,g,o的权限中的任何一位(r,w,x)符合条件 即满足
                9位权限之间存在“或”的关系
                ex:find ./ -perm /666 -ls
                -mode:每一类用户u,g,o的权限中的每一位(r,w,x)同时符合条件 即满足
                9位权限之间存在“与”的关系
                
处理动作:
-print:默认为输出至标准输出
-ls:
-delete:
-fls /PATH/TO/SOMEFILE:把查找的所有文件的长格式信息保存指定文件中
-ok COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令,{}表示引用找到的文件 \;表示固定格式
查找没有属主和属组的文件 添加root:root属主属组关系
find ./ -nouser -a -nogroup -ok chown root:root {} \;
-exec COMMAND {} \; :对查找到的每个文件执行由COMMAND表示的命令 不用每次操作经用户确认
查找other用户具有写权限的文件 重名为file.danger
find ./ -perm /002 -exec mv {} {}.danger \;

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;有些命令不能接收过长参数

过长参数解决方案 find | xargs COMMAND

查看文件命令

Linux下查看文件内容的命令
查看文件内容的命令:

cat     由第一行开始显示内容,并将所有内容输出

tac     从最后一行倒序显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head    只显示头几行

tail    只显示最后几行

nl      类似于cat -n,显示时输出行号

tailf   类似于tail -f