1.
!!命令                   # 表示上一条输出
history |grep 23         #表示历史记录中的第23条
!vim                     #上一条vim记录
alias  music='cat test'  #表示别名
unalias music             #表示取消别名
*                         #匹配一个或零个或多个字符
?                        #匹配一个字符
|                         #管道符号,将前面的运行结果丢给后面的命令
Ctrl + Z ,fg , bg , jobs #利用bg 命令使他到后台运行,fg则调到前台,jobs 用于查看
:;                        #分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个 ”;” 了。

2.pu aux |grep file 和kill -9 Pid 的使用:

[xiongchao@oc3006745124 src]$ ps aux |grep test
            pts/    S+   :   : grep test
           pts/    T    :   : vim test
[xiongchao@oc3006745124 src]$ jobs
[]+  Stopped                 vim test
[xiongchao@oc3006745124 src]$ kill
[xiongchao@oc3006745124 src]$ jobs
[]+  Stopped                 vim test
[xiongchao@oc3006745124 src]$ kill -
[xiongchao@oc3006745124 src]$ jobs
[]+  Killed                  vim test
[xiongchao@oc3006745124 src]$ jobs
[xiongchao@oc3006745124 src]$ fg
bash: fg: current: no such job

3.因为有了PATH这个变量,所以我们运行某个命令时不再去输入全局路径,直接敲命令名即可
系统有部分预设变量,PATH,HOME,LOGNAME
输入env可以全部列出系统预设的全部变量

[xiongchao@oc3006745124 src]$ envORBIT_SOCKETDIR=/tmp/orbit-xiongchao
HOSTNAME=oc3006745124.ibm.com
IMSETTINGS_INTEGRATE_DESKTOP=yes
SHELL=/bin/bash
TERM=xterm
XDG_SESSION_COOKIE=25045470b2680c33cc0f62e200000028-
HISTSIZE=
GTK_RC_FILES=/etc/gtk/gtkrc:/home/xiongchao/.gtkrc-1.2-gnome2
WINDOWID=    ## 仅列出部分

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

[xiongchao@oc3006745124 src]$ set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([]=]=]=]=]=]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.1.2(1)-release'
COLORS=/etc/DIR_COLORS
COLORTERM=gnome-terminal
COLUMNS=
CVS_RSH=ssh                  #仅列出部分

set命令不仅可以显示系统预设的变量,也可以连同用户自定义的变量显示出来。

[xiongchao@oc3006745124 src]$ myname=carlton
[xiongchao@oc3006745124 src]$ echo $myname
carlton
[xiongchao@oc3006745124 src]$ set |grep myname
myname=carlton
[xiongchao@oc3006745124 src]$ bash
[xiongchao@oc3006745124 src]$ echo $myname

[xiongchao@oc3006745124 src]$ exit
exit
[xiongchao@oc3006745124 src]$ echo $myname
carlton               ##使用 bash 命令即可再打开一个shell,此时先前设置的 “myname” 变量已经不存在了  

那么问题来了,如果你想设置的变量一直生效怎么办?失效呢?
法一:需要在 “/etc/profile” 文件最末行加入 export myname=carlton 然后运行 source /etc/profile 就可以生效了。此时再运行bash命令或者直接 su - 普通账户可以看到效果。

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

失效:unset 变量名
4.单引号和双引号的区别:

[xiongchao@oc3006745124 ~]$ start='    #
[xiongchao@oc3006745124 ~]$ echo $start

[xiongchao@oc3006745124 ~]$ lip=
[xiongchao@oc3006745124 ~]$ echo $lip        #$不执行,对其冻结
$LOGNAME1233

[xiongchao@oc3006745124 ~]$ start=`pwd`    #直接出结果
[xiongchao@oc3006745124 ~]$ echo $start
/home/xiongchao

[xiongchao@oc3006745124 ~]$ ss=   #直接出结果
[xiongchao@oc3006745124 ~]$ echo $ss
xiongchao123

5.系统和个人的环境变量配置说明
/etc/profile :这个文件预设了几个重要的变量 ,PATH,USER,LOGNAME,等
/etc/bashrc : 这文件主要预设umask以及PS1
[xiongchao@oc3006745124 ~]$ echo $PS1
[\u@\h \W]\$       #这就是PS1,几个字母依次分别代表用户,主机名,当前目录,以及#或$

.bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用改文件输入专用于自己使用的shell信息,当用户登录时,改文件仅仅执行一次。
.bashrc :该文件包含专用于你的shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。例如你可以将用户自定义的alias或者自定义变量写到这个文件中。
.bash_history :记录命令历史用的。
.bash_logout :当退出shell时,会执行该文件。可以把一些清理的工作放到这个文件中。

6.cut的用法

cat /etc/passwd |cut -d  |head -n7  #d 指定分割符 f 指定段
head -n2 /etc/passwd |cut -c2               #cut 后面可以是c1, c1,,
[xiongchao@oc3006745124 ~]$ head -n5 /etc/passwd |sort -t: -k1 -n
adm:x:::adm:/var/adm:/sbin/nologin
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
lp:x:::lp:/var/spool/lpd:/sbin/nologin
root:x:::root:/root:/bin/bash

-t 后面跟分隔符,-k后面跟数字,表示对第几个区域的字符串排序,-n 则表示使用纯数字排序,如果不加上任何选项,则按照ASCII码值进行比较

7.uniq的用法
去重复的行
-c :统计重复的行数,并把行数写在前面    
uniq music.txt # 可以找到music.txt文件中的重复行,但是要先对该文件使用sort,才能成功

8.sort
sort -nr
-n的话就是按照数字大小来排序,-r的话就是逆向排序
如果不加上的话,则会变成第一个数字的排序

9.tee 的用法
后面跟文件名,类似于重定向“>” 就是可以执行之后显示出来
[xiongchao@oc3006745124 ~]$ echo "handsame profile" |tee 1.txt
handsame profile

10.tr的用法
-d :删除某个字符,-d 后面跟要删除的字符   #针对单个字符来说
-s :把重复的字符去掉                    #针对单个字符来说
大小写的替换:tr '[a-z]''[A-Z]'

11.split的用法
[root@oc3006745124 split_dir]# cp /etc/passwd ./
[root@oc3006745124 split_dir]# split -b500 passwd
[root@oc3006745124 split_dir]# ls
passwd  xaa  xab  xac  xad

12.
~ : 用户的家目录,如果是root则是 /root ,普通用户则是 /home/username
& : 如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。
>, >>, 2>, 2>> 前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>
[ ] 中括号,中间为字符组合,代表中间字符中的任意一个,ls -d test[1-3]
使用 ”;” 时,不管command1是否执行成功都会执行command2;

使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;

使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。

学习shell之前你不得不了解的小知识的更多相关文章

  1. 学习笔记:Java的一些基础小知识之JVM与GC

      一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太 ...

  2. winform学习之-----关于按键操作的一些小知识(如何获取焦点所在的当前控件)20160623

    1.设置整个窗体keydown事件的时候,要设置keyPreview=true; 2.获取当前拥有焦点的控件: 关于这个问题,自己也是纠结死了,在网上搜了好多相关的问题答案,搜出的结果是: //API ...

  3. Java基础小知识(一)

     序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...

  4. 学习STM32,你不得不了解的五大嵌入式操作系统

    学习STM32,你不得不了解的五大嵌入式操作系统                                                  原标题:学习STM32,你不得不了解的五大嵌入式操作 ...

  5. 学习 shell脚本之前的基础知识

    转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...

  6. Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程

    Shell高级编程视频教程-跟着老男孩一步步学习Shell高级编程实战视频教程 教程简介: 本教程共71节,主要介绍了shell的相关知识教程,如shell编程需要的基础知识储备.shell脚本概念介 ...

  7. 学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤

    编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时 ...

  8. 第十三章、学习 Shell Scripts

    什么是 Shell scripts shell script (程序化脚本) :shell script 是针对 shell 所写的『脚本!』 shell script 是利用 shell 的功能所写 ...

  9. 菜鸟教程之学习Shell script笔记(上)

    菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...

随机推荐

  1. yii CDbCriteria 类的总结

    在编程中,我们通常会需要查询些东西,但是通过查询的时候,yii有个集成的类--- CDbCriteria():通过该类,我们可以更加便捷的调用数据. 参考网址:http://www.cnblogs.c ...

  2. TCP协议中的三次握手和四次挥手(图解) 转载

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...

  3. Connection的使用

    package com.cz.test.util.collection; import java.util.ArrayList;import java.util.Collection;import j ...

  4. CSU 1802 小X的战斗力【拓扑dp】

    题目链接 题意:n个人,每个人有一个能力值.给出m组关系A, B, 表示A的能力值大于B的能力值. 问:m组关系中是否有自相矛盾的?若不矛盾,问:第1个人在所有人的能力值中排名第几?有多少人的能力值的 ...

  5. 如何查看与刷新DNS本地缓存

    如何查看与刷新DNS本地缓存 一.查看DNS本地缓存 在cmd窗口输入:ipconfig/displaydns 二.刷新DNS本地缓存 在cmd窗口输入:ipconfig/flushdns 之后输入: ...

  6. 【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】

    原文:http://www.2cto.com/Article/201511/451757.html 1. 什么是webshell?     基于b/s架构的软件部署在Internet上,那么安全性是必 ...

  7. Python 学习笔记 - 10.类(Class) 1

    定义 Python 的 Class 比较特别,和我们习惯的静态语言类型定义有很大区别. 1. 使用一个名为 __init__ 的方法来完成初始化.2. 使用一个名为 __del__ 的方法来完成类似析 ...

  8. 最大堆的插入/删除/调整/排序操作(图解+程序)(JAVA)

    堆有最大堆和最小堆之分,最大堆就是每个节点的值都>=其左右孩子(如果有的话)值的完全二叉树.最小堆便是每个节点的值都<=其左右孩子值的完全二叉树. 设有n个元素的序列{k1,k2,..., ...

  9. sql cast()和convert()

    19.CAST()函数和CONVERT()函数 CAST()函数可以将某种数据类型的表达式转化为另一种数据类型 CONVERT()函数也可以将制定的数据类型转换为另一种数据类型 19.1 CAST() ...

  10. phalcon: 视图分层渲染,或包含其他页面

    一:视图分层显现: 比如:在一个页面中,头部.底部固定不变,只有中间部分随操作变换显示.那么可以将中间部分切出来,剩余部分用作固定框架,放入:app/views/layouts目录中,起名为:base ...