首页 > 系统相关 >shell基础知识(历史命令)

shell基础知识(历史命令)

时间:2024-10-08 14:48:13浏览次数:9  
标签:shell alias -- 基础知识 命令 txt root localhost

1.2 历史命令

1.2.1 !在命令中的应用

当我们在linux中执行命令时,执行过的每一条命令都会被保存到家目录的.bash_history文件中,需要注意的是:只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中

!!:连续两个!表示执行上一条指令

[root@localhost ~]# pwd

/root

[root@localhost ~]# !!

pwd

/root

!n:表示执行命令历史中的第n条指令

[root@localhost ~]# history |grep 90

   90  bash 1.sh

  155  history |grep 90

[root@localhost ~]# !90

bash 1.sh

bash: 1.sh: 没有那个文件或目录

!字符串:表示执行命令历史中最近执行的一次以其开头的命令

[root@localhost ~]# !bash

bash 1.sh

bash: 1.sh: 没有那个文件或目录

1.2.2补全

一次TAB键可以补全一个指令、一个路径、一个文件名;连续两次TAB键,系统列出所有命令或文件名

1.2.3别名

在shell中,别名(alias)是一种将一个或多个命令绑定到一个自定义名称上的方法

创建别名: alias 别名=“实际命令”

[root@localhost ~]# alias ll="ls -l"

[root@localhost ~]# ll

总用量 552

-rw-------. 1 root root   1257 9月  21 17:25 anaconda-ks.cfg

drwxr-xr-x. 4 root root     75 10月  8 08:42 shell1

-rw-r--r--. 1 root root 560272 7月  13 09:34 wget-1.14-18.el7_6.1.x86_64.rpm

查看已有别名:alias

[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'

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'

删除别名:unalias 别名

[root@localhost ~]# unalias ll

[root@localhost ~]# ll

-bash: ll: 未找到命令

1.2.4通配符

在shell中,通配符是一种特殊的字符,用于匹配文件名或路径中的特定模式,以下是常用通配符及其含义:

(1)星号*:代表零个或多个任意字符

例:

◎*.txt匹配所有扩展名为.txt的文件

◎a*匹配以字母a开头的所有文件

◎*b*匹配任何包含字母b的文件

  1. 问号?:代表一个单一的任意字符

例:

◎?.txt匹配单个字符后跟.txt扩展名的文件,如a.txt或1.txt

◎file?.log匹配file1.log,file2.log.不匹配file10.log

  1. 方括号[]:代表括号内的任何一个字符,可以指定范围

例:

◎[abc]匹配文件名中包含a、b、c中任意一个字符的文件

◎[a-c]同上,等价于[abc]

◎[0-9]匹配文件名中包含0到9之间任何一个数字的文件

◎[!abc]或[^abc]匹配不在a、b、c范围内的字符

1.2.5输入/输出重定向

在Shell中,输入/输出重定向是一种强大的功能,它允许你改变命令的标准输入(stdin)、标准输出(stdout)和标准错误(stderr)的流向。这可以让你将命令的输出保存到文件中,或者从文件读取输入,甚至可以将一个命令的输出作为另一个命令的输入。

输出重定向

◎>:将命令的输出写入到指定的文件中,如果文件已经存在,则会覆盖文件内容

[root@localhost ~]# echo "Hello,World" > output.txt

[root@localhost ~]# cat output.txt

Hello,World

◎>>:将命令的输出追加到指定的文件中,不会覆盖文件原有内容

[root@localhost ~]# echo "Another line" >> output.txt

[root@localhost ~]# cat output.txt

Hello,World

Another line

◎&>或>&:将标准输出和标准错误都重定向到同一个文件中

[root@localhost ~]# some_command &> combined_output.txt

[root@localhost ~]# cat combined_output.txt

-bash: some_command: 未找到命令

◎2>:将标准错误单独重定向到一个文件中

[root@localhost ~]# some_command 2> error_output.txt

[root@localhost ~]# cat error_output.txt

-bash: some_command: 未找到命令

输入重定向

◎<:从指定的文件中读取输入

假设input.txt文件中有如下未排序的行

[root@localhost ~]# vi input.txt

banana

apple

cherry

date

elderberry

执行命令

[root@localhost ~]# sort < input.txt

apple

banana

cherry

date

elderberry

输出的内容将会按字母顺序排序后输出到终端

1.2.6管道符

在shell中,管道符(|)允许你将一个命令的输出作为另一个命令的输入

[root@localhost ~]# cat /etc/passwd |wc -l

19

1.2.7作业控制

当运行进程时,你可以使它暂停(Ctrl+Z),然后使用fg(foreground的简写)命令恢复它,或者是使用bg(background的简写)命令使它到后台运行。此外,你也可以使它终止(Ctrl+C)

[root@localhost ~]# vi test1.txt

Testtestetstetste

#随便输入一些内容,按Esc键,使用Ctrl+Z暂停任务

  1. +  已停止               vi test1.txt

#此时提示进程已经停止,使用fg命令恢复,输入jobs,可以查看被暂停或在后台运行的任务

[root@localhost ~]# jobs

  1. +  已停止               vi test1.txt

#如果想把暂停的任务放在后台重新运行,就使用bg命令

[root@localhost ~]# bg

[1]+ vi test1.txt &

  1. +  已停止               vi test1.txt

#可以看出vi不支持在后台运行,换一个命令查看

[root@localhost ~]# vmstat 1 > /tmp/1.log

^Z

[2]+  已停止               vmstat 1 > /tmp/1.log

[root@localhost ~]# jobs

[1]-  已停止               vi test1.txt

[2]+  已停止               vmstat 1 > /tmp/1.log

[root@localhost ~]# bg 2

  1. + vmstat 1 > /tmp/1.log &

#在上面的例子中,出现一个新的知识点,就是多个被暂停的任务会有编号,使用jobs命令可以看到两个任务,使用bg命令或者fg命令时,需要在后面加上编号

[root@localhost ~]# jobs

[2]+  运行中               vmstat 1 > /tmp/1.log &

[root@localhost ~]# ps aux|grep vmstat

root       1591  0.0  0.1 152576  1376 pts/0    S    13:22   0:00 vmstat 1

root       1594  0.0  0.0 112720   968 pts/0    R+   13:25   0:00 grep --color=auto vmstat

[root@localhost ~]# kill -9 1591

#在kill命令后面直接加pid即可

标签:shell,alias,--,基础知识,命令,txt,root,localhost
From: https://blog.csdn.net/2301_82330629/article/details/142759015

相关文章

  • Linux下操作Nginx相关命令
    1、查看Nginx进程ps-aux|grepnginx圈出的就是Nginx的二进制文件2、测试Nginx配置文件/usr/sbin/nginx-t可以看到nginx配置文件位置3、nginx的使用(启动、重启、关闭)首先利用配置文件启动nginx。nginx-c/usr/local/nginx/conf/nginx.conf重启服务:servicenginxrestar......
  • day02_基本的DOS命令
    电脑常用快捷键常用快捷键快捷键作用CTRL+c复制CTRL+v粘贴CTRL+x剪切CTRL+z撤销CTRL+s保存alt+f4关闭窗口del删除shift+del强制删除Windows+r打开“运行”窗口windows+e打开“我的文档”ctrl+alt+d......
  • 【PHP代码审计】命令执行
    RemoteCodeExecute远程代码执行原理:应用程序在调用一些能够将字符串转换为代码的函数(例如php中的eval中),没有考虑用户是否控制这个字符串,将造成代码执行漏洞。函数eval()//把字符串作为PHP代码执行assert()//检查一个断言是否为FALSE,可用来执行代码preg_replace()//......
  • 在Windows 10中,您可以使用以下命令来转换系统版本(例如,从家庭版升级到专业版)。主要使用
    在Windows10中,您可以使用以下命令来转换系统版本(例如,从家庭版升级到专业版)。主要使用的是slmgr和DISM工具。以下是相关命令:1. 查看当前版本和激活状态bashCopyCodeslmgr/dli2. 输入新产品密钥bashCopyCodeslmgr/ipk<新产品密钥>请将<新产品密钥>替换为您要升......
  • Python 字符串基础知识
    字符串是计算机编程中非常重要的数据类型。在Python中,字符串是一系列字符的集合,可以包含字母、数字、符号和空格。Python提供了强大的字符串处理功能,使得操作字符串变得简单而直观。本文将深入探讨Python字符串的基本知识,包括字符串的创建、操作、常用方法以及字符串格式......
  • # 基本的Dos命令
    开启Dos控制台的几种方式开始+系统+命令提示符![截图](D:\img\day01\Dos1.png)Win键+R输入cmd打开控制台(推荐使用)![截图](D:\img\day01!Dos2.png)在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口![截图](D:\img\day01\Dos3.png)资源管......
  • Linux基础命令uptime详解
    uptime 命令在Linux中用于显示系统的运行时间、当前登录用户数以及系统负载信息。这个命令非常简单,但是它提供的信息对系统管理员和用户来说非常有用。基本语法uptime[OPTION...]输出说明当你运行 uptime 命令时,输出通常包含以下几个部分:当前时间:系统当前的时间。......
  • linux中的source命令和bash命令各有什么作用
    在Linux中,`source`命令和`bash`命令都是用来执行shell脚本或者设置环境变量的,它们在Shell编程和日常的系统管理任务中经常被用到。下面我简要解释一下这两个命令的作用:1.`source`命令:使用`source`命令可以读取并执行一个shell脚本文件中的命令,就好像脚本中的命令是直接在当......
  • jvm相关命令
    jpsjps打印当前java进程jinfojinfo进程id,获取当前java进程的jvm参数jinfo-flagPrintGC进程id查看当前java进程是否开启打印GC的选项jinfo-flags进程id查看当前java进程的所有jvm配置参数jinfo-flag+PrintGC进程id为当前java进程开启打印gc日志 jmapjmap-......
  • Redis终极入门指南:万字解析帮你从零基础到掌握命令与五大数据结构
    目录命令学习:一、Redis基础操作二、Redis常用命令三、五种数据结构及其常用命令3.1String(字符串)3.2List(列表)3.3Set(集合)3.4Hash(哈希)3.5Zset(有序集合) 前言:  Redis是一款开源内存数据库,以高性能和多样数据结构广泛应用于缓存和消息队列等场景。本文为新......