一、Linux系统上的文件类型

  1、- :常规文件:在其它程序中用f表示。比如我们用ls -l命令查看的第一个内容

  1. [root@localhost ~]# ls -l
  2. total
  3. -rw-------. root root Oct anaconda-ks.cfg

  2、d:directory,目录文件

  3、b:block device,块设备文件,以"block"为单位进行随机访问

  1. [root@localhost ~]# ls -l /dev/sda*
  2. brw-rw---- root disk , Dec : /dev/sda
  3. brw-rw---- root disk , Dec : /dev/sda1
  4. brw-rw---- root disk , Dec : /dev/sda2

  4、c:character device,字符设备文件,支持以“character”为单位进行线性访问

      major number:主设备号,用来标识设备类型,进而确定要加载的驱动程序

      minor number:次设备号,用来标识同一类型中的不同的设备

        8位二进制:0-255

  5、l:symbolic link,符号链接文件,也叫软连接文件

  6、p:pipe,命名管道

  7、s:socker,套接字文件,主要用于服务提供

    

二、常用的基本命令

  1、外部命令和内部命令

    a、linux上的命令根据其是否在文件系统上存在一个与之对应的同名的文件。在我们文件系统上某一个路径下是否与这个命令本身有一个独立的文件我们可以把命令分为内建命令和外部命令。在我们文件系统的路径上有一个独立的文件而命令名就是文件名,这种就叫外部命令其实所有的文件都必然是外部命令,那么为什么会出现内建命令呢?是因为有一个外部命令自带有很多命令,我们有一个外部命令叫bash,bash就是外部的,但是bash自身很强大,他自带有很多小命令,所以这些小命令就是内部命令。

    b、我们如何去区分内部命令还是外部命令呢?我们可以用type来查看

    type COMMAND:

      内部: builtin

  1. [root@localhost /]# type cd
  2. cd is a shell builtin

      外部:显示为命令文件路径

        注意,命令可以有别名,别名可以与原名相同,此时原名被隐藏,此时如果要运行原命令,则使用 \COMMAND

  1. [root@localhost /]# type bash
  2. bash is /usr/bin/bash
  1. [root@localhost /]# type ls #表示ls其实是 ls --color的简称
  2. ls is aliased to `ls --color=auto'
  3. [root@localhost /]# ls
  4. application bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  5. [root@localhost /]# \ls #表示只运行ls
  6. application bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

    c、命令别名

      获取所有可用别名的定义:

  1. [root@localhost /]# alias
  2. alias cp='cp -i'
  3. alias egrep='egrep --color=auto'
  4. alias fgrep='fgrep --color=auto'
  5. alias grep='grep --color=auto'
  6. alias l.='ls -d .* --color=auto'
  7. alias ll='ls -l --color=auto'
  8. alias ls='ls --color=auto'
  9. alias mv='mv -i'
  10. alias rm='rm -i'
  11. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

      定义别名,注意,此定义方式只对当前shell有效

  1. [root@localhost /]# alias cls="clear"
  2. [root@localhost /]# alias
  3. alias cls='clear'
  4. alias cp='cp -i'
  5. alias egrep='egrep --color=auto'
  6. alias fgrep='fgrep --color=auto'
  7. alias grep='grep --color=auto'
  8. alias l.='ls -d .* --color=auto'
  9. alias ll='ls -l --color=auto'
  10. alias ls='ls --color=auto'
  11. alias mv='mv -i'
  12. alias rm='rm -i'
  13. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

      撤销别名

  1. [root@localhost /]# unalias cls
  2. [root@localhost /]# alias
  3. alias cp='cp -i'
  4. alias egrep='egrep --color=auto'
  5. alias fgrep='fgrep --color=auto'
  6. alias grep='grep --color=auto'
  7. alias l.='ls -d .* --color=auto'
  8. alias ll='ls -l --color=auto'
  9. alias ls='ls --color=auto'
  10. alias mv='mv -i'
  11. alias rm='rm -i'
  12. alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

  2、which,显示命令的完整路径

    a、which --skip-alias  COMMAND  && \which COMMAND ,忽略别名

  1. [root@localhost /]# which --skip-alias ls
  2. /usr/bin/ls
  3. [root@localhost /]# \which ls
  4. /usr/bin/ls

  3、whereis命令,显示命令文件,源码文件及手册页

  1. [root@localhost /]# whereis ls
  2. ls: /usr/bin/ls /usr/share/man/man1/ls..gz /usr/share/man/man1p/ls.1p.gz

    a、-b,仅搜索二进制程序路径

    b、-m,仅搜索使用手册文件路径

  4、who命令,查看登陆当前系统的相关用户信息

  1. [root@localhost /]# who
  2. root pts/ -- : (192.168.10.1)
  3. root pts/ -- : (192.168.10.1)

    a、-b,系统此次启动的时间

  1. [root@localhost /]# who -b
  2. system boot -- :

    b、-d,显示死亡的进程

    c、-l,显示登陆进程

  1. [root@localhost /]# who -l
  2. LOGIN tty1 -- : id=tty1

    d、-r,查看进程级别

  1. [root@localhost /]# who -r
  2. run-level -- :

  5、w 命令,他不但能显示谁登陆了还能显示他们在干嘛,相当于增强版的who命令

  1. [root@localhost /]# w
  2. :: up :, users, load average: 0.06, 0.03, 0.05
  3. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  4. root pts/ 192.168.10.1 : .00s .12s .00s w
  5. root pts/ 192.168.10.1 : : .02s .00s less -s

三、bash的基础特性

  1、命令历史:shell进程会在其会话中保存此前用户提交执行过的命令

    a、history命令可用查看

  1. [root@localhost /]# type history
  2. history is a shell builtin

      定制history的功能,可通过环境变量实现:

        HISTSIZE:shell进程可保留的命令历史的条数,默认为1000条

  1. [root@localhost /]# echo $HISTSIZE

        HISTFILE:持久保存命令历史的文件,每一个用户登陆时命令历史会首先从历史文件中加载此前所有的命令到内存中,而后新的命令就补充在附加在这个内存中历史命令后面,所以使用history命令看到的是整个内存中的历史,使用cat看到的是文件中的内容。当我们用户shell登出时会自动保存相应命令

  1. [root@localhost ~]# echo $HISTFILE
  2. /root/.bash_history

        HISTFILESIZE:命令历史文件的大小,文件保存一千条命令

  1. [root@localhost ~]# echo $HISTFILESIZE

  2、history命令用法

    a、history [-c] [-d offset] [n]:操纵命令历史中多少条的

    b、history -anrw [filename]:操纵历史文件的

    c、history -ps arg [arg...]:定义history自己的工作特性的

      history -c:清空历史命令,只清空内存中不会清空文件中。

      history -d  offset:删除某一个历史命令

        删除id为200的历史命令

  1. [root@localhost ~]# history -d

        从id为200的历史命令开始删除,删除5条

  1. [root@localhost ~]# history -d

      history -r:读取历史文件并将内容追加到历史列表中

      history -w:将当前历史写入到历史文件中,并追加到历史列表中

    d、显示最近10条的命令历史

  1. [root@localhost ~]# history
  2. cat /root/.bash_history |wc -l
  3. cat /root/.bash_history
  4. cat /root/.bash_history |wc -l
  5. history -w
  6. history
  7. history -d
  8. history
  9. history -d
  10. history
  11. history

  3、调用命令历史列表中的命令

    a、!#:再一次执行历史列表中的第#条命令

  1. [root@localhost ~]# history
  2. ls
  3. history
  4. history
  5. history
  6. [root@localhost ~]# !
  7. ls
  8. anaconda-ks.cfg

    b、!!:再一次执行上一条命令(或者按上键也可以)

    c、!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令

      注意:命令的重复执行有时候需要依赖于幂等性;

  4、调用上一条命令的最后一个参数

    a、ESC,.

    b、!$

  1. [root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33
  2. /etc/sysconfig/network-scripts/ifcfg-ens33
  3. [root@localhost ~]# cat !$
  4. cat /etc/sysconfig/network-scripts/ifcfg-ens33
  5. TYPE=Ethernet
  6. PROXY_METHOD=none
  7. BROWSER_ONLY=no
  8. ...

  5、控制命令历史纪录的方式

    a、环境变量:HISTCONTROL

  1. [root@localhost ~]# echo $HISTCONTROL
  2. ignoredups #忽略重复的,连续的就是重复的,比如多次执行某一个命令

      ignoredups:忽略重复的命令

      ignorespace:忽略以空白字符开头的命令

      ignoreboth:以上两者同时生效

    b、修改变量的值

      NAME='VALUE',这种修改只对当前shell进程有效

linux学习11 Linux基础命令及命令历史的更多相关文章

  1. Linux学习之路-Linux-at及cron命令【7】---20171215

    Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03   ntpdate 命令 [root@ ...

  2. Linux学习之十四、管线命令

    Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php

  3. Linux学习之RPM包管理-rpm命令管理(十六)

    Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...

  4. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  5. Linux学习笔记-Linux系统简介

    Linux学习笔记-Linux系统简介 UNIX与Linux发展史 UNIX是父亲,Linux是儿子. UNIX发行版本 操作系统 公司 硬件平台 AIX IBM PowerPC HP-UX HP P ...

  6. [转帖]Linux教程(11)- linux中的计划作业

    Linux教程(11)- linux中的计划作业 2018-08-21 17:13:36 钱婷婷 阅读数 160更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原 ...

  7. linux学习笔记(1) -- 关于命令的一些操作

    Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录.所有的东西都是从这里开始.当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到ho ...

  8. Linux学习笔记(3)-常用命令

    江湖传言,Linux和Windows不同,他主要的用途是在一些服务器,或者片内系统上,所以人机交互界面自然就没有Windows那么漂亮,其实也没有那个必要. 所以,学习Linux的第一步,就是学习他那 ...

  9. Linux学习笔记:常用100条命令(三)

    linux常用命令 1.查看当前yum源 yum list 2.查看电脑以及操作系统的相关信息 uname -a 3.查看当前版本信息 cat /proc/version 4.查看发行版本信息 cat ...

随机推荐

  1. DDR3(1):IP核调取

    本系列整理一下基于 Xilinx A7 芯片的 DDR3 的使用,此处采用的 DDR3 IP核为软核,即采用 FPGA 逻辑单元.寄存器.查找表等搭建出来 IP核.从 IP 核的调取开始,接着读写测试 ...

  2. MQTT和Coap

    什么是MQTT? MQTT是一个“发布和订阅”协议.用户可以订阅某些主题,或发布某些主题的消息.订阅者将收到订阅的主题消息.用户可以通过保证交付来配置协议更可靠. 什么是CoAP? CoAP看起来像是 ...

  3. jar包部署脚本

    部署一个名为xxx的jar包,输出到out.log,只需要准备以下脚本start.sh #!/bin/sh echo " =====关闭Java应用======" PROCESS= ...

  4. WPF矢量字体图标(iconfont)

    原文:WPF矢量字体图标(iconfont) 转载:点击打开链接 步骤: 一.下载添加iconfont文件 二.添加到资源文件夹,并设置不复制,且为资源文件 三.增加FIcon.xaml文件 < ...

  5. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)(转载)

    本文结构 ASP.NET Core应用程序的构建 ASP.NET Core应用程序容器化所需注意的问题 应用程序的配置信息 端口侦听 ASP.NET Core的容器版本 docker镜像构建上下文(B ...

  6. javascript中五种迭代方法实例

    温习一下js中的迭代方法. <script type="text/javascript"> var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; ...

  7. NetCore 统一处理 webapi 返回null 转为“”

    数据库中部分表字段允许空值,则代码中实体类对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都为null,前端对应字段赋值需要做nu ...

  8. azure 上传blob到ams(CreateFromBlob)

    遇到的错误:The destination storage credentials must contain the account key credentials,参数名: destinationS ...

  9. 安装fastnlp

    直接 pip install fastnlp 如果出现 torch的安装报错,可能与操作系统及 CUDA 的版本相关.直接上pytorch 的官网 https://pytorch.org/get-st ...

  10. MFC 文件保存对话框的设置的那些秘密

    搬家自CSDN 2015-5-14 CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR ...