bash的基础特性之一

bash的基础特性之一

命令历史:shell进程会保存会话中此前用户使用过的命令;

history:命令的用法
history 【-c】【-d #】 【n】或者【文件名】
    -c:清空命令历史
    -d 【#】:删除指定的命令历史
    -r:从文件读取至历史列表
    -w:把历史列表中的命令追加到历史文件中
history # 显示最近的#条命令
命令调用:
   !#:调用历史列表中的第#条命令
   !!:再次执行上一条命令
historyd 环境变量可以定制history命令
HISTSIZE:shell进程可保留的历史条数
HISTFILE:长期保存的命令历史文件
HISTFILESIZE:命令历史文件的大小

调用上一条命令的最后一个参数:
组合键 按ESC后按.
字符串:!$

命令补全

命令补全:根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;给定的打头字符串如果能惟一标识某命令程序文件,则直接补全; 不能惟一标识某命令程序文件,再击tab键一次,会给出列表;

路径补全:

在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件:

tab:如果能惟一标识,则直接补全;

否则,再一次tab,给出列表;

命令行展开:

~:自动展开为用户的家目录,或指定的用户的家目录;

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

命令的执行状态结果:

bash通过状态返回值来输出此结果:

成功:0

失败:1-255

失败状态返回值脚本可自定义用 exit=#(1-255)

命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;命令正常执行时,有的还回有命令返回值;根据命令及其功能不同,结果各不相同

引用命令的执行结果:

$(COMMAND)
`COMMAND`

引用

    强引用:''
    弱引用:""
    命令引用:``

快捷键

    Ctrl+a:跳转至命令行行首
    Ctrl+e:跳转至命令行行尾

    Ctrl+u:删除行首至光标所在处之间的所有字符;
    Ctrl+k:删除光标所在处至行尾的所有字符;

    Ctrl+l:清屏,相当于clear

常用基本命令

alias:定义别名
    alias NAME='COMMAND'
    unalias NAME
    **注意:仅对当前shell进程有效**

which:显示shell命令的完整路径
    --skip-alias:忽略别名

whereis:查找命令的二进制程序路径
        b: 仅搜索二进制程序路径;
        -m:仅搜索使用手册文件路径;

who:显示登陆用户
    -b: 系统此次启动的时间;
    -r: 运行级别;

w:显示登陆用户及其正在运行的进程

terr:以树状格式列出目录的内容

文件查看类命令

more和less:分屏查看文件
    more FILE
    less FILE

head:查看文件的前n行
    tail [options] FILE
    -n #
    -#
    -f:查看文件尾部内容结束后不退出,跟随显示新增的行

stat:查看文件的时间戳
    stat FILE...

touch:更改文件时间戳(可创建文件)
    touch [OPTION]... FILE...
            -c: 指定的文件路径不存在时不予创建;
            -a: 仅修改access time;
            -m:仅修改modify time;
            -t STAMP
                [[CC]YY]MMDDhhmm[.ss]

文件管理工具

cp:复制

    源文件 目标文件

    单源复制:cp [OPTION]... [-T] SOURCE DEST
    多源复制:cp [OPTION]... SOURCE... DIRECTORY
             cp [OPTION]... -t DIRECTORY SOURCE...

    单源复制:cp [OPTION]... [-T] SOURCE DEST
            如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
            如果DEST存在:
            如果DEST是非目录文件:则覆盖目标文件;
            如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

    多源复制:cp [OPTION]... SOURCE... DIRECTORY
             cp [OPTION]... -t DIRECTORY SOURCE...
            如果DEST不存在:错误;
            如果DEST存在:
                如果DEST是非目录文件:错误;
                如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

    常用选项:
            -i:交互式复制,即覆盖之前提醒用户确认;
            -f:强制覆盖目标文件;
            -r, -R:递归复制目录;
            -d:复制符号链接文件本身,而非其指向的源文件;
            -a:-dR --preserve=all, archive,用于实现归档;
            --preserv=
                mode:权限
                ownership:属主和属组
                timestamps: 时间戳
                context:安全标签
                xattr:扩展属性
                links:符号链接
                all:上述所有属性

mv命令:move
       mv [OPTION]... [-T] SOURCE DEST
       mv [OPTION]... SOURCE... DIRECTORY
       mv [OPTION]... -t DIRECTORY SOURCE..         

       常用选项:
            -i:交互式;
            -f:force 强制

rm命令:remove
        rm [OPTION]... FILE...

        常用选项:
            -i:互交式
            -f:force 强制
            -r: recursive 递归

            删除目录:rm -rf /PATH/TO/DIR

原创文章,作者:N24-执念,如若转载,请注明出处:http://www.178linux.com/63993

(0)
N24-执念N24-执念
上一篇 2016-12-17 23:31
下一篇 2016-12-18 12:41

相关推荐

  • 103-corosync-pacemaker-crmsh

    一、概述: 1.1 什么是AIS和OpenAIS?

    2016-11-26
  • 第一周-2:Linux部分常用命令使用示例、查看命令行工具使用手册以及LinuxFHS部分目录简介

    一、部分命令使用示例: 1、ifconfg 在命令行界面下或系统配置脚本中用于配置、控制及查询TCP/IP网络接口的系统管理工具 [netartisan@localhost 桌面]$ ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 &n…

    Linux干货 2016-11-07
  • shell脚本编写-2

    1、条件判断if语句       1)、 单分支 if  判断条件;then     条件为真的分支代码     fi 2)、双分支     if  判断条件; then    &…

    Linux干货 2016-08-15
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30
  • N25-第二周做业

    一.Linux上的文件管理类命令都有哪些,其常用的使用方法和演示        1.目录管理的命令    mkdir rmdir              1)…

    Linux干货 2016-12-11
  • shell练习

    1 、编写脚本/root/bin/systeminfo.sh, 显示当前主机系统信息, 包括主机名,IPv4 地址,操作系统版本,内核版本,CPU 型 号,内存大小,硬盘大小。 运行后结果是: 2 、编写脚本/root/bin/backup.sh ,可实现每日将/etc/ 目录备 份到/root/etcYYYY-mm-dd中 运行结果是: 3 、编写脚本/r…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:45

    赞~可以再继续扩充一下博客内容,继续加油~