bash基本特性及linux基本命令

author author     2022-07-31     220

关键词:

bash基本特性及linux基本命令

1、命令历史
        history
            环境变量:
                HISTSIZE:命令历史记录的条数;
                HISTFILE:~/.bash_history;
                HISTFILESIZE:命令历史文件记录历史的条数;

            history -d OFFSET
            -c
            history #: 显示历史中最近的#条命令;

            [[email protected] ~]# history  6
             1003  HISSIZE
             1004  history 
             1005  ifcfg 
             1006  history #
             1007  history  10
             1008  history  6

            -a: 手动追加当前会话缓冲区的命令历史至历史文件中;

        调用历史中的命令:
            !#: 重复执行第#条指令;
            !!: 执行上一条

        [[email protected] ~]# !!
        ls
        a                f1          hello.txt                Public     WorldCount.jar
        anaconda-ks.cfg  file01      HTTP_20130313143750.dat  Templates  y?
        a.txt            file02      install.log              test       y?.pub
        Desktop          hello       install.log.syslog       test1.tar  zookeeper.out
        Documents        hello.link  Music                    test.tar
        Downloads        hello.ls    Pictures                 Videos

         
            !string

        调用上一条命令的最后一个参数:
            !$:
            ESC, .
            Alt+.

        控制命令历史的记录方式:
            环境变量:HISTCONTROL

[[email protected] ~]# echo $HISTCONTROL
ignoredups

                ignoredups:忽略重复的命令;连续且相同方为“重复”;
                ignorespace:忽略所有以空白开头的命令;
                ignoreboth:ignoredups, ignorespace;

export HISTCONTROL="ignorespace"
export HISTCONTROL="ignoredups"

修改环境变量值的方式:export 变量名="值"
变量赋值:把赋值符号后面的数据存储于变量名指向内存空间;

2、命令补全
        bash执行命令:
            内部命令:
            外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到即为要执行的命令;

                直接补全:Tab,用户给定的字符串只有一条惟一对应的命令;
                以用户给定的字符串为开头对应的命令不惟一,则再次Tab会给出列表;

3、路径补全
        把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名;
            如果惟一:则直接补全;
            否则:再次Tab,给出列表;

4、 命令行展开
        ~: 展开为用户的主目录
        ~USERNAME:展开为指定用户的主目录
        {}:可承载一个以逗号分隔的列表,并将其展开为多个路径
            /tmp/{a,b} = /tmp/a, /tmp/b
            /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
            

[[email protected] ~]# mkdir -p  /tmp/{a,b}/{c,d}
[[email protected] ~]# ll /tmp/a/
c/ d/ 
[[email protected] ~]# ll /tmp/a/


5、命令的执行结果状态
        成功
        失败
        0:成功
        1-255:失败
        bash使用特殊变量$?保存最近一条命令的执行状态结果:
        查看命令执行是对还是错

[[email protected] ~]# echo $?
[[email protected] ~]# mkdir /aaaaaa/aaa
mkdir: cannot create directory `/aaaaaa/aaa‘: No such file or directory
[[email protected] ~]# echo $?
1


下面是成功的

[[email protected] ~]# echo $?
0



 程序执行有两类结果:
            程序的返回值;
            程序的执行状态结果;

linux基础命令
(1)目录管理类命令:
    cd, pwd, ls

    mkdir, rmdir, tree

    mkdir [options] /path/to/somewhere
        -p: 存在于不报错,且可自动创建所需的各目录;

[[email protected] ~]# mkdir -p  /root/a/a/a/a

        -v: 显示详细信息

[[email protected] ~]# mkdir  -v /root/t
mkdir: created directory `/root/t‘
[[email protected] ~]# mkdir -p  -v  /tmp/{a,b,v}/{c,d},{a,b}
mkdir: created directory `/tmp/a/c,a‘
mkdir: created directory `/tmp/a/c,b‘
mkdir: created directory `/tmp/a/d,a‘
mkdir: created directory `/tmp/a/d,b‘
mkdir: created directory `/tmp/b/c,a‘
mkdir: created directory `/tmp/b/c,b‘
mkdir: created directory `/tmp/b/d,a‘
mkdir: created directory `/tmp/b/d,b‘
mkdir: created directory `/tmp/v‘
mkdir: created directory `/tmp/v/c,a‘
mkdir: created directory `/tmp/v/c,b‘
mkdir: created directory `/tmp/v/d,a‘
mkdir: created directory `/tmp/v/d,b‘

-m MODE: 创建目录时直接指定权限;

tree命令用法

[[email protected] ~]# yum install tree
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.5.3-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================
 Package           Arch                Version                  Repository         Size
========================================================================================
Installing:
 tree              x86_64              1.5.3-3.el6              base               36 k
Transaction Summary
========================================================================================
Install       1 Package(s)
Total download size: 36 k
Installed size: 65 k
Is this ok [y/N]: y
Downloading Packages:
tree-1.5.3-3.el6.x86_64.rpm                                      |  36 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : tree-1.5.3-3.el6.x86_64                                              1/1 
  Verifying  : tree-1.5.3-3.el6.x86_64                                              1/1 
Installed:
  tree.x86_64 0:1.5.3-3.el6                                                             
Complete!
[[email protected] ~]# tree /root/a
/root/a
├── a
│   └── a
│       └── a
├── test
│   └── install.log
├── test1.tar
└── test.tar


4 directories, 3 files
        -d: 只显示目录
        -L level:指定显示的层级数目
        -P pattern: 只显示由指定pattern匹配到的路径;

    rmdir:删除空目录

[[email protected] ~]# mkdir /root/bbbb
[[email protected] ~]# rmdir /root/bbbb

        rmdir [OPTION]... DIRECTORY...
            -v: 显示过程;

    练习:
        (1) 如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b

            mkdir /tmp/x/{y1,y2}/{a,b}

     
        (2) 如何创建x_m, y_m, x_n, y_n

            mkdir {x,y}_{m,n}


        (3) 如何创建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin

            mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}


(2)文本文件查看类命令:
    cat, tac
    more, less, tail, head

    more
        more [OPTIONS...] FILE...
            -d: 显示翻页及退出提示

[[email protected] ~]# more /usr/local/zookeeper-3.4.6/conf/log4j.properties 
# Define some default values that can be overridden by system properties
zookeeper.root.logger=INFO, CONSOLE
zookeeper.console.threshold=INFO
zookeeper.log.dir=.
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log
#
# ZooKeeper Logging Configuration
#
# Format is "<default threshold> (, <appender>)+
# DEFAULT: console appender only
log4j.rootLogger=${zookeeper.root.logger}
# Example with rolling log file
#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE

注意:按着b  查看前面的
    less
        less [OPTIONS...] FILE...

    head
        head [OPTION]... [FILE]...
默认显示10行

[[email protected] ~]# head   /etc/rc.d/rc.sysinit 
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
#
HOSTNAME=$(/bin/hostname)
set -m

 -c #: 指定获取前#字节

[[email protected] ~]# head  -c 11 /etc/rc.d/rc.sysinit 
#!/bin/bash

-n #: 指定获取前#行

[[email protected] ~]# head  -n 10 /etc/rc.d/rc.sysinit 
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
#
HOSTNAME=$(/bin/hostname)
set -m


-#:
等价于

[[email protected] ~]# head  -10 /etc/rc.d/rc.sysinit 
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
#
HOSTNAME=$(/bin/hostname)
set -m



 tail   与head命令类似
        tail [OPTION]... [FILE]...
            -c #: 指定获取后#字节
            -n #: 指定获取后#行
                -#:
            -f: 跟踪显示文件新追加的内容;

(3)文件的时间戳管理工具:
touch

文件:metadata, data
        查看文件状态:stat

[[email protected] ~]# echo a >> a.txt
[[email protected] ~]# stat a.txt 
  File: `a.txt‘
  Size: 4             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 140905      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-06-30 06:38:00.929058651 -0700
Modify: 2016-07-04 07:09:20.470056778 -0700
Change: 2016-07-04 07:09:20.470056778 -0700


三个时间戳:
            access time:访问时间,简写为atime,读取文件内容
            modify time: 修改时间, mtime,改变文件内容(数据)
            change time: 改变时间, ctime,元数据发生改变

touch命令:
        touch [OPTION]... FILE...
            -a: only atime
            -m: only mtime
            -t STAMP:
                 [[CC]YY]MMDDhhmm[.ss]
            -c: 如果文件不存,则不予创建
            

[[email protected] ~]# touch a.txt
[[email protected] ~]# stat a.txt 
  File: `a.txt‘
  Size: 4             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 140905      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-04 07:11:53.289055027 -0700
Modify: 2016-07-04 07:11:53.289055027 -0700
Change: 2016-07-04 07:11:53.289055027 -0700


总结:linux基础一定要扎实哦!加油!

本文出自 “梁小明的博客” 博客,请务必保留此出处http://7038006.blog.51cto.com/7028006/1795755

bash基本特性

bash基本特性bash是Linux中最常使用到的shell,它给用户提供了许多便利的功能和特性,下面就介绍一些bash的基本特性。 1、命令历史historybash能为我们提供命令的存储功能,我们也可以借由history命令来查看我们以往输入过的命... 查看详情

linux下部分文件管理类基本命令汇总以及bash展开特性介绍(代码片段)

一、文件管理类基本命令1.1、表格汇总今天要讲解的命令如下表所示,按照外部命令和内建命令做基本划分:内建命令列表:命令名字基本说明file检测文件类型cd改变shell的工作目录dirs显示目录堆栈信息popd从堆栈中移除目录pushd... 查看详情

linux基础之bashshell介绍及基本特性

...内容是关于bashshell的。分享以下bashshell的相关知识,例如基本特性等。 1.8)bashshell的介绍1.8.1)什么是bashshell  概括地讲就是bashshell是一个命令解释器,与内核进行交互。  bashshell是一个命令解释器,它在操作系统的最... 查看详情

04bash程序的基本特性

  我们知道Linux系统有两种操作方式,一种为GUI的图形界面化管理方式,其中图形程序常见的有Gnome、KDE、xfce;另一种管理方式就是就是GLI的命令行管理方式,而命令行的管理方式就是通过shell程序来进行管理,而shell程序则分... 查看详情

bash基本特性

特性之引用引号有三种类型:’,“,`字符引用’:强引用,其内部的变量不会被替换;“:弱引用,其内部的变量会被替换;`:命令引用。命令会被替换成命令的结果被使用变量引用:${NAME},可简写$NAME#echo‘$PATH‘//强引用$PATH#e... 查看详情

linux入门之手搓命令行解释器bash(带源码)(代码片段)

目的基本结构提取输入命令fgets的使用命令初步处理命令的本质创建子进程重要知识补充进程替换命令处理简单bash完成及演示优化bashls颜色输出颜色实现cd命令ecport命令envecho$echo$?目的主要目的在于进一步了解Linux系统下使... 查看详情

linux系列教程(二十一)——linux的bash基本功能

...么我们直接敲ll命令能显示目录的长格式,其实这是bash的基本功能。本篇博客我们就来介绍这些基本功能。1、历史命令         2、命令与文件补全:Tab    在输入一些命令的时候,最好用Tab键去补全,防止命... 查看详情

08-bash基础特性及基础命令

bash的基础特性  (1)命令历史 history HISTSIZE:命令历史记录的条数: HISTSIZE:~/.bash_history HISTFILESIZE:命令历史文件记录的条数: history-dOFFSET   -c history#:显示历史最近的#条命令: -a:手动追加当前会话... 查看详情

bash的基本特性

Bash基本特性: 首先得从逻辑运算来说起: 与运算 && 两个判断条件都必须为真时,状态才为真,否则都为假,在此1是真,0是假 1&&1=1 1&&0=0 0&&1=0 0&&0=0 或运算|| 两个判断条件中都必须... 查看详情

在linux下啥是bash.啥又是shell

...有CSHELL等其它类型的SHELL。扩展资料:linux主要特性:1,基本思想:Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和... 查看详情

docker基本部署及基本控制命令(理论篇)(代码片段)

Docker基本部署及基本控制命令Docker概述?Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机... 查看详情

linux操作系统§3:基本命令ⅱ(bash常用功能,文件查询)

本篇你将掌握的内容(文末有总结全图):文章目录3.0引入3.1补全命令/文件名:[Tab键]3.2查看文件cat/more3.2.1cat(concatenate)3.2.1.1概念3.2.1.2示例3.2.1.3参数列表3.2.2more3.2.2.1概念3.2.2.2示例3.2.2.3参数列表3.3给命令起别名&#... 查看详情

bash的工作特性及命令状态返回查询

bash的基础特性:命令的执行状态结果        命令执行的状态结果:        bash通过状态返回值来输出此结果:         &nb 查看详情

linux学习笔记(代码片段)

文章目录前言一.Shell基础1.查看2.安装3.使用4.Bash基本特性Bash解释器具有许多方便的快捷键查看历史命令命令别名标准输入输出的重定向管道二.helloworld三.变量1.自定义变量定义变量取消变量变量规范2.环境变量3.位置变量4.预定义... 查看详情

2017.10.15bash基础特性及基础命令

一.命令历史,命令补全和路径补全 环境变量:   HISTFILE:命令历史记录的条数  HISTSIZE:~/.bash.history   HISTFILESIZE:命令历史文件记录历史的条数   history:默认显示10条历史纪录  ... 查看详情

bash的常见特性及文本查看命令

(一)bash的基础特性命令补全shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当作命令;命令查找机制:shell首先会在内部命令中匹配查找,如果没有找到,则会在PATH环境变量设置的目录中,自左向... 查看详情

基本shell脚本的边界及变量(代码片段)

 shell脚本与变量 shell脚本的用途:自动化常用命令执行系统管理和故障排除创建简单的应用程序处理文本或文件 shell脚本编写格式:第一行:shebang机制用#加shell类型开头后续可直接跟命令,用命令达到需要的效果即... 查看详情

linux里面bash是啥?

...断和循环遍历的结构控制语句。包括关键字、语法在内的基本特性全部是从sh借鉴过来的。其他特性,例如历史命令,是从csh和ksh借鉴而来。总的来说,Bash虽然是一个满足POSIX规范的shell,但有很多扩展。参考技术Abash实质上是一... 查看详情