一、Linux系统上的文件类型

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

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

  2、d:directory,目录文件

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

[root@localhost ~]# ls -l /dev/sda*
brw-rw---- root disk , Dec : /dev/sda
brw-rw---- root disk , Dec : /dev/sda1
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

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

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

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

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

    c、命令别名

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

[root@localhost /]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

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

[root@localhost /]# alias cls="clear"
[root@localhost /]# alias
alias cls='clear'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

      撤销别名

[root@localhost /]# unalias cls
[root@localhost /]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

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

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

[root@localhost /]# which --skip-alias ls
/usr/bin/ls
[root@localhost /]# \which ls
/usr/bin/ls

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

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

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

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

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

[root@localhost /]# who
root pts/ -- : (192.168.10.1)
root pts/ -- : (192.168.10.1)

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

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

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

    c、-l,显示登陆进程

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

    d、-r,查看进程级别

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

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

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

三、bash的基础特性

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

    a、history命令可用查看

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

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

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

[root@localhost /]# echo $HISTSIZE

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

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

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

[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的历史命令

[root@localhost ~]# history -d 

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

[root@localhost ~]# history -d  

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

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

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

[root@localhost ~]# history
cat /root/.bash_history |wc -l
cat /root/.bash_history
cat /root/.bash_history |wc -l
history -w
history
history -d
history
history -d
history
history

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

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

[root@localhost ~]# history
ls
history
history
history
[root@localhost ~]# !
ls
anaconda-ks.cfg

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

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

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

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

    a、ESC,.

    b、!$

[root@localhost ~]# ls /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# cat !$
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
...

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

    a、环境变量:HISTCONTROL

[root@localhost ~]# echo $HISTCONTROL
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. eclipse的debug模式的F5,F6按键失灵

    在使用eclipse Mars.1 Release (4.5.1)开发过程中,发现debug模式下的快捷键无法使用,全部失效了.秉持坚决自己解决绝不求人的态度我艰苦的在度娘上寻求解决办法,有的说是快捷 ...

  2. Python基础之datetime、sys模块

    1.datetime模块 1)datetime.datetime.now(),返回各当前时间.日期类型. datetime.datetime.now(),返回当前日期. import datetime ...

  3. 【方法论】5WHY分析法

    一.概述 所谓“5WHY”分析法,又称“5问法”,就是连续反复使用5次“为什么”方式自问,以打破砂锅问到底方式寻找问题的根本原因的方法.“5WHY”不限定必须或只做5次为什么的提问,以找到问题根因为准 ...

  4. vue项目的构建过程

    确保已经安装了node和npm 1.安装vue-cli npm i vue-cli -g 2.安装vue-router npm i vue-router --save 3.安装vue-router n ...

  5. spring注入注解@Resource和@Autowired

    一.@Autowired和@Qualifier @Autowired是自动注入的注解,写在属性.方法.构造方法上,会按照类型自动装配属性或参数.该注解,可以自动装配接口的实现类,但前提是spring容 ...

  6. 解决vant-weapp组件库的example的导入问题

    最近在学习小程序,看到了vant-weapp这个组件库,我比较喜欢边看示例边来敲代码.刚好这个组件库下载下来有 example的文件夹.废话不多说,现在来看看怎么在开发工具里面导入吧! 步骤: 1.下 ...

  7. 解决Android studio导航tools下没有android怎么打开DDMS工具

    因为这个功能用的人少, 新版本就去掉菜单入口了, 但这个功能并没有删除,打开方式:点开terminal ,也就是AS自带的命令行工具, 输入monitor 回车就启动了, 1.点开terminal 2 ...

  8. 【解决】修改 docker 容器时间与宿主机不同

    修改 docker 容器时间 需求: 这几天,开发提了个需求 "测试需要模拟未来某天的业务,发现容器里面没有修改时间的权限",想在我们 k8s 集群上,调整容器时间 解决方案: 使 ...

  9. Cobbler--自动化部署

    Cobbler自动化部署 cobbler简介 Cobbler 可以用来快速建立 Linux 网络安装环境,它已将Linux网络安装的技术门槛,从大专以上文化水平,成功降低到了初中水平,连补鞋匠都能学会 ...

  10. jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

    原文:https://www.jianshu.com/p/0e5d8db8ed5e 错误场景 今天使用jmap -heap命令查看堆的详细信息报错. [root@instance-2gak1pfv d ...