Linux에서 느낌표(!)에 대한 10가지 팁
'!'
Linux의 기호 또는 연산자는 논리적 부정연산자로 사용하거나 기록에서 얻은 명령을 변경하거나 이전에 실행된 명령을 수정하여 사용할 수 있습니다. 다음 명령은 모두 bash 쉘에서 명시적으로 확인되었습니다. 확인하지는 않았지만 이들 중 대부분은 다른 쉘에서는 작동하지 않습니다.
- 명령 번호별로 기록에 있는 명령을 실행합니다.
으아악“
history 명령(이전에 실행되었거나 실행된 명령)에서 명령을 실행할 수 있다는 사실을 모르고 계실 수도 있습니다. 시작하려면 먼저 “history” 명령을 실행하여 명령 번호를 찾으세요.
”
으아악“
이제 history의 출력에서 history의 명령만 나타나는 숫자로 실행됩니다. 'history' 명령 출력에 나타나는 명령 번호 1551를 실행한다고 가정해 보겠습니다.
”
“
그리고 1551번에 나열된 명령을 실행합니다. 실행된 명령을 검색하는 이 방법은 특히 매우 긴 명령의 경우 매우 유용합니다. **!**를 사용하여 호출하면 됩니다.
”
- 이전에 실행한 명령을 마지막에서 두 번째 명령, 마지막에서 일곱 번째 명령 등으로 실행합니다.
“
이전에 실행했던 명령을 실행할 수 있으며, 실행할 명령은 마지막 명령이 **-1로 표시되고 두 번째 명령이 -2로 표시되고 일곱 번째 명령이 마지막으로 표시되도록 순서대로 실행됩니다. -7** ,…
”
“
首先运行history命令以获取上次执行命令的列表。有必要运行history命令,这样您就可以确保没有类似的命令
rm command > file
和其他命令,只是为了确保您不会意外运行任何危险的命令。然后检查第六个最后一个命令,八个最后一个命令和第十个最后一个命令。”
$ history $ !-6 $ !-8 $ !-10
“
按数字运行上次执行的命令
”
- 将我们运行的最后一个命令的参数传递给新命令,无需重新输入
“
我需要列出目录 “**/home/$USER/Binary/firefox**” 的内容。
”
$ ls /home/$USER/Binary/firefox
“
然后我意识到我应该触发 “ls -l” 以查看哪个文件在那里可执行?所以我应该再次输入整个命令!不,我不需要。我只需要将这个新命令的最后一个参数作为:
”
$ ls -l !$
“
这里
!$
将携带在最后一个命令中传递给这个新命令的参数。”
“
将上次执行命令的参数传递给新命令
”
- 如何使用 (!) 处理两个或多个参数
“
假设我在桌面上创建了一个文本文件1.txt。
”
$ touch /home/avi/Desktop/1.txt
“
然后使用cp命令在任一侧使用完整路径将其复制到 “**/home/avi/Downloads**”。
”
$ cp /home/avi/Desktop/1.txt /home/avi/downloads
“
现在我们已经使用cp命令传递了两个参数。第一个是 “**/home/avi/Desktop/1.txt”,第二个是 “/home/avi/Downloads**”,让我们以不同的方式处理它们,只需执行
echo [arguments]
以不同方式打印两个参数。”
$ echo "1st Argument is : !^" $ echo "2nd Argument is : !cp:2"
“
注意第一个参数可以打印为
“!^”
,其余参数可以通过执行“![Name_of_Command]:[Number_of_argument]”
.”
“
在上面的例子中,第一个命令是 “cp”,第二个参数需要打印。因此
“!cp:2”
,如果任何命令说xyz使用 5 个参数运行并且您需要获得第 4 个参数,您可以使用“!xyz:4”
,并根据需要使用它。所有参数都可以通过 访问“!*”
。”
“
处理两个或更多参数
”
- 根据关键字执行最后一条命令我们可以根据关键字执行上次执行的命令。我们可以这样理解:
$ ls /home > /dev/null [Command 1] $ ls -l /home/avi/Desktop > /dev/null [Command 2] $ ls -la /home/avi/Downloads > /dev/null [Command 3] $ ls -lA /usr/bin > /dev/null [Command 4]
“
在这里,我们使用了相同的命令**(ls),但使用了不同的开关和不同的文件夹。此外,我们已将每个命令的输出发送到 “/dev/null**”,因为我们不会处理命令的输出,控制台也保持干净。
”
“
现在根据关键字执行上次运行命令。
”
$ ! ls [Command 1] $ ! ls -l [Command 2] $ ! ls -la [Command 3] $ ! ls -lA [Command 4]
“
检查输出,您会惊讶地发现您只是通过
ls
关键字运行已执行的命令。”
“
根据关键字运行命令
”
-
神奇的
!!
“
您可以使用
(!!)
.它将在当前命令中使用 alter/tweak 调用最后一个运行命令。给你看场景”
“
最后一天我运行了一个单行脚本来获取我的私有 IP,所以我运行,
”
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/
“
然后我突然发现我需要将上面脚本的输出重定向到一个文件ip.txt,那我该怎么办?我应该再次重新输入整个命令并将输出重定向到文件吗?那么一个简单的解决方案是使用
UP
导航键并添加'> ip.txt'
将输出重定向到文件。”
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt
“
UP
键可以快速找到历史命令。现在考虑以下条件,下次我在单行脚本下运行时。”
$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
“
一旦我运行脚本,bash 提示符就会返回一个错误消息
“bash: ifconfig: command not found”
,我不难猜测我以用户身份运行此命令,而它应该以 root 身份运行。”
“
那么有什么解决办法呢?很难登录到 root 然后再次键入整个命令!此外,上一个示例中的(向上导航键)在这里也没有出现。所以?我们需要
“!!”
不带引号调用,这将调用该用户的最后一个命令。”
$ su -c !! root
“
这里su是切换用户,也就是 root,
-c
以用户身份运行特定的命令,最重要的部分!!
将被命令替换,最后运行的命令将在这里替换。是的!您需要提供 root 密码。”
!!
主要在以下场景中使用,
“
当我以普通用户身份运行apt-get命令时,我通常会收到一个错误,说您无权执行。
”
$ apt-get upgrade && apt-get dist-upgrade
“
Opps 错误… 不要担心执行以下命令以使其成功..
”
$ su -c !! $ service apache2 start or $ /etc/init.d/apache2 start or $ systemctl start apache2
“
OOPS 用户无权执行此类任务,所以我运行..
”
$ su -c 'service apache2 start' or $ su -c '/etc/init.d/apache2 start' or $ su -c 'systemctl start apache2'
- 运行影响除 ![FILE_NAME] 之外的所有文件的命令
“
该
!
(逻辑 NOT)可以用来运行所有命令的文件 / 文件扩展名,除了后面'!'
。”
A.**从目录中删除所有文件,但名称为**2.txt的文件除外。
$ rm !(2.txt)
B.从文件夹中删除所有文件类型,除了扩展名为 “pdf”的文件类型。
$ $ rm !(*.pdf)
- 检查一个目录(比如 / home/avi/Tecmint)是否存在?printf 如果所述目录存在与否。
“
在这里,我们将使用
'! -d'
来验证目录是否存在,然后使用逻辑 AND 运算符(&&)
来打印该目录不存在,然后使用逻辑 OR 运算符(||)
来打印目录是否存在。”
“
逻辑是,当输出
[ ! -d /home/rumenz ]
为0 时,它将执行超出 Logical 的内容,否则它将转到 Logical OR(||)
并执行超出 LogicalOR 的内容。”
$ [ ! -d /home/rumenz ] && printf '\nno such /home/rumenz directory exist\n' || printf '\n/home/rumenz directory exist\n'
- 检查目录是否存在?如果没有退出命令。与上述条件类似,但这里如果所需目录不存在,它将退出命令。
$ [ ! -d /home/rumenz ] && exit
- 如果它不存在,则在您的主目录中创建一个目录(比如 rumenz)。脚本语言中的一种通用实现,如果所需目录不存在,它将创建一个。
[ ! -d /home/rumenz ] && mkdir /home/rumenz
위 내용은 Linux에서 느낌표(!)에 대한 10가지 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











많은 사용자에게 Android TV 박스를 해킹하는 것은 어려운 일로 들립니다. 그러나 개발자 Murray R. Van Luyn은 Broadcom 칩 부족으로 인해 Raspberry Pi에 대한 적절한 대안을 찾아야 하는 과제에 직면했습니다. Armbia와의 협력 노력

DeepSeek은 웹 버전과 공식 웹 사이트의 두 가지 액세스 방법을 제공하는 강력한 지능형 검색 및 분석 도구입니다. 웹 버전은 편리하고 효율적이며 설치없이 사용할 수 있습니다. 개인이든 회사 사용자이든, DeepSeek를 통해 대규모 데이터를 쉽게 얻고 분석하여 업무 효율성을 향상시키고 의사 결정을 지원하며 혁신을 촉진 할 수 있습니다.

Docker 컨테이너를 사용하여 사전 컴파일 된 패키지 (Windows 사용자의 경우)를 사용하여 소스 (숙련 된 개발자)를 컴파일하는 것을 포함하여 DeepSeek를 설치하는 방법에는 여러 가지가 있습니다. 공식 문서는 신중하게 문서를 작성하고 불필요한 문제를 피하기 위해 완전히 준비합니다.

BitPie Bitpie Wallet 앱을 다운로드하는 방법은 무엇입니까? 단계는 다음과 같습니다. AppStore(Apple 기기) 또는 Google Play Store(Android 기기)에서 "BitPie Bitpie Wallet"을 검색하세요. 앱을 다운로드하려면 "받기" 또는 "설치" 버튼을 클릭하세요. 컴퓨터 버전의 경우 공식 BitPie 지갑 웹사이트를 방문하여 해당 소프트웨어 패키지를 다운로드하세요.

Bitget은 스팟 거래, 계약 거래 및 파생 상품을 포함한 다양한 거래 서비스를 제공하는 Cryptocurrency 교환입니다. 2018 년에 설립 된이 교환은 싱가포르에 본사를두고 있으며 사용자에게 안전하고 안정적인 거래 플랫폼을 제공하기 위해 노력하고 있습니다. Bitget은 BTC/USDT, ETH/USDT 및 XRP/USDT를 포함한 다양한 거래 쌍을 제공합니다. 또한 Exchange는 보안 및 유동성으로 유명하며 프리미엄 주문 유형, 레버리지 거래 및 24/7 고객 지원과 같은 다양한 기능을 제공합니다.

1. 설치 환경(Hyper-V 가상 머신): $hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualization:microsoftOperatingSystem:CentOS Linux7(Co 다시)CPEOS이름:cpe:

세계 최고의 디지털 자산 거래소 인 Ouyi Okx는 이제 안전하고 편리한 거래 경험을 제공하기 위해 공식 설치 패키지를 시작했습니다. OUYI의 OKX 설치 패키지는 브라우저를 통해 액세스 할 필요가 없습니다. 설치 프로세스는 간단하고 이해하기 쉽습니다. 사용자는 최신 버전의 설치 패키지를 다운로드하고 설치를 단계별로 완료하면됩니다.

Gate.io는 사용자가 설치 패키지를 다운로드하여 장치에 설치하여 사용할 수있는 인기있는 cryptocurrency 교환입니다. 설치 패키지를 얻는 단계는 다음과 같습니다. Gate.io의 공식 웹 사이트를 방문하고 "다운로드"를 클릭하고 해당 운영 체제 (Windows, Mac 또는 Linux)를 선택하고 컴퓨터에 설치 패키지를 다운로드하십시오. 설치 중에 항 바이러스 소프트웨어 또는 방화벽을 일시적으로 비활성화하여 원활한 설치를 보장하는 것이 좋습니다. 완료 후 사용자는 GATE.IO 계정을 만들려면 사용을 시작해야합니다.
