其他1)记录命令历史(1)!! (连续两个”!”),表示执行上一条指令;(2)!n(这里的n是数字),表示执行命令历史中第n条指令,例如”!100”表示执行命令历史中第100个命令;(3)!字符串(字符串大于等于1),例如!ta,表示执行命令历史中最近一次以ta为开头的指令。2)指令和文件名补全按tab键,它可以帮你补全一个指令,也可以帮你补全一个路径或者一个文件名。连续按两次tab键,系统则会把所有的指令或者文件名都列出来。3)别名可以通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias :

alias [命令别名]=[’具体的命令’]

4)通配符

在bash下,可以使用*来匹配零个或多个字符,而用?匹配一个字符。

ls -d test*

5)输入输出从定向

输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。输出重定向更为常用,它经常用于将命令的结果输入到文件中,而不是屏幕上。输入重定向的命令是<,输出重定向的命令是>,另外还有错误重定向2>,以及追加重定向>>,稍后会详细介绍。

6)管道符

管道符”|”,就是把前面的命令运行的结果丢给后面的命令。

7)作业控制。

当运行一个进程时,你可以使它暂停(按Ctrl+z),然后使用fg命令恢复它,利用bg命令使他到后台运行,你也可以使它终止(按Ctrl+c)。

变量

1、env

使用env命令即可全部列出系统预设的全部系统变量了。

env命令显示的变量只是环境变量,系统预设的变量其实还有很多,可以使用set命令把系统预设的全部变量都显示出来。

2、自定义变量

使用bash命令即可再打开一个shell。

1) 要想系统内所有用户登录后都能使用该变量

需要在/etc/profile文件最末行加入 “export myname=Aming” 然后运行”source /etc/profile”就可以生效了。此时你再运行bash命令或者直接su - test账户看看。

2)只想让当前用户使用该变量

需要在用户主目录下的.bashrc文件最后一行加入“export myname=Aming” 然后运行”source .bashrc”就可以生效了。这时候再登录test账户,myname变量则不会生效了。上面用的source命令的作用是,讲目前设定的配置刷新,即不用注销再登录也能生效。

设置自定义变量规则:

a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;

b. 变量名只能由英、数字以及下划线组成,而且不能以数字开头;

c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;

有一种情况,需要你注意,就是变量内容中本身带有单引号,这就需要用到双引号了。

d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;

e. 变量内容可以累加其他变量的内容,需要加双引号;

单引号和双引号的区别:用双引号时不会取消掉里面出现的特殊字符的本身作用(这里的$),而使用单引号则里面的特殊字符全部失去它本身的作用。

在前面的例子中笔者多次使用了bash命令,如果在当前shell中运行bash指令后,则会进入一个新的shell,这个shell就是原来shell的子shell了,不妨你用pstree指令来查看一下。

pstree这个指令会把linux系统中所有进程通过树形结构打印出来。限于篇幅没有全部列出,你可以直接输入pstree查看即可。在父shell中设定一个变量后,进入子shell后该变量是不会生效的,如果想让这个变量在子shell中生效则要用到export指令。

export其实就是声明一下这个变量的意思,让该shell的子shell也知道变量abc的值是123.如果export后面不加任何变量名,则它会声明所有的变量(包括我们自定义的变量)。

如想取消变量,只要输入”unset 变量名”即可。

系统环境变量与个人环境变量的配置文件

/etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umas等等。

/etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了,例如笔者的linux系统PS1就是 [root@localhost ~]# ,你不妨看一下PS1的值。

\u就是用户,\h 主机名, \W 则是当前目录,\$就是那个’#’了,如果是普通用户则显示为’$’

除了两个系统级别的配置文件外,每个用户的主目录下还有几个这样的隐藏文件:

.bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。

.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。

.bash_history :记录命令历史用的。

.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中。

linux shell中的特殊符号

你在学习linux的过程中,也许你已经接触过某个特殊符号,例如”*”,它是一个通配符号,代表零个或多个字符或数字。下面笔者就说一说常用到的特殊字符。

1. * :代表零个或多个字符或数字。

test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来。

2. ? :只代表一个任意的字符

不管是数字还是字母,只要是一个都能匹配出来。

3. # :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉。

在命令的开头或者中间插入”#” ,linux都会忽略掉的。这个符号在shell脚本中用的很多。

4. \ :脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。

5. | :管道符,前面多次说过,它的作用在于将符号前面命令的结果丢给符号后面的命令。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具,在后续内容中详细介绍。

6. $ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用。

‘!$’表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入!$则代表test.txt。

1grep :过滤一个或多个字符,将会在后续内容中详细介绍其用法。

2) cut :截取某一个字段

语法:cut -d “分隔字符” [-cf] n 这里的n是数字

-d :后面跟分隔字符,分隔字符要用双引号括起来

-c :后面接的是第几个字符

-f :后面接的是第几个区块

-d 后面跟分隔字符,这里使用冒号作为分割字符,-f 1 就是截取第一段,-f和1之间的空格可有可无。

-c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3

4) wc :统计文档的行数、字符数、词数,常用的选项为:

-l :统计行数

-m :统计字符数

-w :统计词数

5 uniq :去重复的行,笔者常用的选项只有一个:

-c :统计重复的行数,并把行数写在前面

有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq

[test@localhost test]$ cat b.txt |sort |uniq -c

6tee :后跟文件名,类似与重定向”>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。

7tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:

-d :删除某个字符,-d 后面跟要删除的字符

-s :把重复的字符去掉

最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’

只可替换一个字符,不可替换一个字符串

8split :切割文档,常用选项:

-b :依据大小来分割文档,单位为byte

格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …

-l :依据行数来分割文档

6.  :分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个”;”了。

7. ~ :用户的家目录,如果是root则是 /root ,普通用户则是 /home/username

8. & :如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。

使用jobs可以查看当前shell中后台执行的任务。用fg可以调到前台执行。这里的sleep命令就是休眠的意思,后面跟数字,单位为秒,常用语循环的shell脚本中。

此时你按一下CTRL +z 使之暂停,然后再输入bg可以再次进入后台执行。

如果是多任务情况下,想要把任务调到前台执行的话,fg后面跟任务号,任务号可以使用jobs命令得到。

9. >, >>, 2>, 2>> :前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>。

10. [ ] :中括号,中间为字符组合,代表中间字符中的任意一个

11. &&  ||

在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:

1) command1 ; command2

2) command1 && command2

3) command1 || command2

使用”;”时,不管command1是否执行成功都会执行command2; 使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

转载于:https://www.cnblogs.com/selinaniur/p/9437887.html

Linux常用命令(补充)--其他相关推荐

  1. Linux常用命令补充

    目录 1.Tab快捷键 1.1.补全文件信息 1.2.显示以已输入的部分文件名开头的所有文件 2.man:查看命令/函数的用法 3.cp:文件拷贝 3.1.cp 文件名  指定路径:将文件拷贝到指定路 ...

  2. linux基础命令chown,Linux常用命令及组件:chown和chmod

    继续做linux命令的简单笔记,为什么把chown和chmod放在同一篇呢?主要是这两个命令单词太接近了,可能引起混淆(老赵最初就常记错),实际上这两个命令还是有很大的区别的,通俗的来讲,chown是 ...

  3. 嵌入式linux基本指令,成都嵌入式开发之Linux常用命令大全

    原标题:成都嵌入式开发之Linux常用命令大全 Linux系统中有很多命令,使用Linux系统最常用的就是命令操作,而不是像Windows一样,使用鼠标操作.Linux中许多常用命令是必须掌握的,也有 ...

  4. 超详细的Linux常用命令锦集,推荐收藏!!!【持续更新】

    目录 Linux系统简介 Linux常用命令大全 一.系统操作相关命令 1.系统信息处理 2.系统重启及关机 二.文件操作相关命令 1.文件及目录操作 2.文件搜索操作 3.文件挂载系统 4.文件权限 ...

  5. linux中将文本中的单词换掉的指令_干货:Linux常用命令全称及讲解

    从事IT行业的很多人都会使用Linux常用命令,但是知道这些常用命令全称的人并不多,让我们来看看这些常用命令对应的全称吧!小编精心整理了一下,毕竟常用命令比较多,如果没有你常用的还望海涵,可以评论区补 ...

  6. 【Linux-Linux常用命令】Linux常用命令总结

    [Linux-Linux常用命令]Linux常用命令总结 1)文件管理 1.1.目录操作 1.2.vim操作 1.3.打包压缩相关命令 1.4.Linux管道 2)文件权限管理 2.1.三种基本权限 ...

  7. Linux常用命令帅哥特供版

    [TOC] Linux常用命令Json帅哥特供版 没错这里的帅哥指的就是我自己 把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝 ...

  8. linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令

    文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...

  9. linux常用命令--系统状态篇

    前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题.本文就简单介绍一下这些命令. 查看系统运行时间--uptime 有时候我们想知 ...

  10. Linux常用命令全集

    Table Of Contents 1. Linux常用命令全集.CHM 9 1.1 备份压缩 9 1.1.1 ar 9 1.1.2 bunzip2 11 1.1.3 bzip2 12 1.1.4 b ...

最新文章

  1. html传递guid参数,C#中的Guid.ToString鲜为人知参数用法
  2. MyBatis学习总结(16)——Mybatis使用的几个建议
  3. spark 2.4安装
  4. Poj 1011 UVA - 307 Sticks
  5. Python案例:打印杨辉三角形
  6. Java中Lambda表达式
  7. 更换ssh通信证书,ssh更改公钥和密钥,以保证服务器安全
  8. 月薪3k和30k的程序员,差距就在这道坎...
  9. 【 Codeforces Round #552 (Div. 3) G】Minimum Possible LCM【埃氏筛】
  10. modbus tcp主站和从站_图文讲解PLC通讯MODBUS协议的应用及编程
  11. 【图像去噪】基于matlab小波变换图像去噪(MSE和SNR)【含Matlab源码 2192期】
  12. iOS MOV转MP4
  13. c语言程序设计实验总结范文,《c语言程序设计》课程实验报告模板.doc
  14. 东北大学计算机考研专业842包括什么,东北大学2019年计算机考研842计算机专业基础考试大纲...
  15. Kubernetes 污点介绍
  16. 朱令被投毒案关键人物语料分析之孙维篇
  17. Rasa系列教程(二) -- Rasa NLU基础
  18. 2021-09-16收集一些可以发外链的网站
  19. 鸿蒙系统手机一览表,四款华为鸿蒙系统手机推荐,后续可直接升级鸿蒙2.0
  20. 使用mongoDB的一些新的(mongoDB报错解决)

热门文章

  1. oracle安装gcc报错,记录oracle 9i for linux安装过程中几个错误
  2. python创建链表实例_python数据结构链表之单向链表(实例讲解)
  3. linux下zookeeper启动命令,For Linux Zookeeper客户端命令行操作指令
  4. mongodb for java_【MongoDB for Java】Java操作MongoDB
  5. mysql与php6_PHP与MySQL的连接
  6. SQL中的模糊范围查询特殊符号应用
  7. druid 数据库连接池,简单配置
  8. 会计基础第二次模拟题(3)
  9. [转] PHP之加解密: Mcrypt函数
  10. Solartimes共识——PowerDesigner设计——引用的命名