Linux Shell介绍,history, tab,alias, 通配符,重定向,管道符, 作业控制

本文主要是介绍Linux Shell介绍,history, tab,alias, 通配符,重定向,管道符, 作业控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

shell介绍

  • Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。

  • 不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

  • 每个Linux系统的用户可以拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell需要。

  • 同Linux本身一样,Shell也有多种不同的版本,主要有下列版本的Shell: 
    Bourne Shell:是贝尔实验室开发的。
    BASH:是GNU的Bourne Again Shell,是GNU操作系统(centOS7)上默认的shell。
    Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
    Z Shell:The last shell you’ll ever need! Z是最后一个字母,也就是终极Shell。它集成了bash、ksh的重要特性,同时又增加了自己独有的特性。

  • 可以通过yum安装zsh, ksh等。

命令历史记录

  • history命令可查看输入过的命令记录,可记录1000条;

  • 记录保存在以下文件里:
    ~/.bash_history #实际上保存的命令是上一次退出shell时保存的命令,当前使用过的命令保存在内存里,在退出时更新进去;不正常退出shell,命令记录不全;

history -c #清除内存里保存的命令记录,.bash_history的内容不变;

  • 可以修改保存的记录数,由变量HISTSIZE决定,在/etc/profile文件中修改
[root@tanyvlinux ~]# vim /etc/profile
[root@tanyvlinux ~]# echo $HISTSIZE
1000
[root@tanyvlinux ~]# source /etc/profile			#使修改的配置生效;
[root@tanyvlinux ~]# echo $HISTSIZE
5000
[root@tanyvlinux ~]# 登出
Connection to 192.168.31.133 closed.
TanydeMacBook-Air:local tanytan$ ssh root@192.168.31.133
Last login: Tue Sep 10 16:37:58 2019 from 192.168.31.101
[root@tanyvlinux ~]# echo $HISTSIZE
5000
  • 可以设置history把命令的运行时间也保存下来,设置环境变量HISTTIMEFORMAT
[root@tanyvlinux ~]# echo $HISTTIMEFORMAT[root@tanyvlinux ~]# vim /etc/profile
[root@tanyvlinux ~]# echo $HISTTIMEFORMAT #原来为空“[root@tanyvlinux ~]# vim /etc/profile			#添加HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S";
[root@tanyvlinux ~]# source /etc/profile
[root@tanyvlinux ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[root@tanyvlinux ~]# history				#记录了时间;1  2019/09/10 16:42:10mkdir /tmp22  2019/09/10 16:42:10chmod 777 /tmp2
  • 可以设置让记录永久保存,添加a权限;

chattr +a ~/.bash_history

命令补全及别名

例子:

[root@tanyvlinux profile.d]# which ^C			#拼写whic按tab一下,补全;
[root@tanyvlinux profile.d]# whi					#拼写whi按tab一下,没反应,按两下,出现所有选择;路径和参数使用方法一样;
which     while     whiptail  
  • 如果是centos7以前系统版本,不带参数补全,可安装包增加这个支持;

yum install -y bash-completion
reboot

  • 别名 - 可以将长命令用自定义的词表达;

查看所有别名命令

alias

alias定义在~/.bashrc文档里, /etc/profile.d里面的文档里;

  • 创建别名(重启后失效);

alias viens33=‘vi /etc/sysconfig/network-scripts/ifcfg-ens33’

  • 取消别名;

unalias viens33

  • 让别名可以多个帐户使用:(只在本帐户实施,修改到~/.bashrc文件)(重启后也有效);
[root@tanyvlinux ~]# echo "alias tany='ls -lia'" >> /etc/bashrc
[root@tanyvlinux ~]# source /etc/bashrc

通配符

  • 通配符*可代表一个或多个字符
    在这里插入图片描述
  • 通配符?代表一个任意字符
    在这里插入图片描述
  • 通配符[]
    在这里插入图片描述
  • 通配符{}
    在这里插入图片描述

输入输出重定向

cat 1.txt > 2.txt #将1.txt内容写入2.txt,原来内容被覆盖;
cat 1.txt >> 2.txt #将1.txt内容追加到2.txt里,原来内容还在;

  • 将错误信息重定向2>, 2>>;
    在这里插入图片描述

  • 将正确与错误信息同时重定向&>, &>>;

在这里插入图片描述

  • 将返回信息和错误返回信息分别重定向;
  • 输入重定向<, <左边必须为命令;
    在这里插入图片描述

管道符

管道符左边命令运行的结果,交给右边的命令处理(感觉右边都是文本处理工具,左边传过来的都是一行行的数据)
在这里插入图片描述
在这里插入图片描述

作业控制
  • 暂停一个工作,做其他操作,再恢复原来的工作
[root@tanyvlinux ~]# vi 11.txt[1]+  已停止               vi 11.txt				#按ctrl + z暂停工作;
[root@tanyvlinux ~]# fg					#恢复工作;
vi 11.txt[1]+  已停止               vi 11.txt				#按ctrl + z暂停工作;
[root@tanyvlinux ~]# vi aaa.txt		#再开始多一个工作;[2]+  已停止               vi aaa.txt			#按ctrl + z暂停工作;
[root@tanyvlinux ~]# jobs				#显示暂停的工作;
[1]-  已停止               vi 11.txt
[2]+  已停止               vi aaa.txt
[root@tanyvlinux ~]# fg				#恢复刚刚中断的工作;
vi aaa.txt[2]+  已停止               vi aaa.txt		#按ctrl + z暂停工作;
[root@tanyvlinux ~]# fg				#恢复vi aaa.txt,并退出;
vi aaa.txt											
[root@tanyvlinux ~]# vim aaa.txt		#再开始一个工作;[2]+  已停止               vim aaa.txt		#按ctrl + z暂停工作;
[root@tanyvlinux ~]# jobs				
[1]-  已停止               vi 11.txt
[2]+  已停止               vim aaa.txt
[root@tanyvlinux ~]# fg 1					#使用序号进入想要进入的工作;
vi 11.txt
  • jobs命令
    上面显示了jobs的用法;

  • 将一个工作放在后台运行,前台可以继续操作

[root@tanyvlinux ~]# sleep 10				#按ctrl + z暂停工作;
^Z
[4]+  已停止               sleep 10
[root@tanyvlinux ~]# bg 4				#转到后台工作,fg命令使用例子;
[4]+ sleep 10 &
[root@tanyvlinux ~]# date				#目前时间;
2019年 09月 10日 星期二 22:02:09 CST
[root@tanyvlinux ~]# date				#10秒后
2019年 09月 10日 星期二 22:02:20 CST
[4]   完成                  sleep 10				#显示在后台完成;
  • 新建的终端使用jobs命令不会显示当前终端暂停或后台运行的命令(可以用ps命令查看进程)

  • 直接让命令后台执行 + &

[root@tanyvlinux ~]# sleep 5 &
[4] 62764
[root@tanyvlinux ~]# date
2019年 09月 10日 星期二 22:07:33 CST
[root@tanyvlinux ~]# date
2019年 09月 10日 星期二 22:07:40 CST
[4]   完成                  sleep 5

这篇关于Linux Shell介绍,history, tab,alias, 通配符,重定向,管道符, 作业控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816247

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念