Gentag kommando-argumenter

Gentag kommando-argumenter

Vi bruger ofte de samme argumenter fra en foregående kommando.

Hvis du har et langt argument, vil du sandsynligvis gentage det med den næste kommando. Lad os se på nogle bash bang-kommandoer, der kan gøre dette for os.

Først, Hvis vi skriver !:n repeater den det nth argument fra sidste kommando med 0 Som er kommandoen selv:

$ ls -a -l 
total 32
drwxrwxr-x  7 user user 4096 Sep  9 20:30 .
drwx------ 16 user user 4096 Sep  9 20:10 ..
drwxrwxr-x  2 user user 4096 Sep  9 16:02 dir
drwxrwxr-x  2 user user 4096 Sep  9 16:02 dir1
drwxrwxr-x  2 user user 4096 Sep  9 16:02 dir2
drwxrwxr-x  2 user user 4096 Sep  9 20:30 dir3
-rw-rw-r--  1 user user    0 Sep  9 16:02 file
-rw-rw-r--  1 user user    0 Sep  5 16:07 .file
-rw-rw-r--  1 user user    0 Sep  9 16:01 file1
-rw-rw-r--  1 user user    0 Sep  9 16:01 file2
-rw-rw-r--  1 user user   16 Sep  9 16:03 hello.txt
drwxrwxr-x  2 user user 4096 Sep  5 16:08 .hidden_dir
-rw-rw-r--  1 user user    0 Sep  5 16:08 .hidden_file
~/project $ ls !:1
ls -a
.  ..  dir  dir1  dir2  dir3  file  .file  file1  file2  hello.txt  .hidden_dir  .hidden_file

Nr to, !!:$ repeater det sidste argument fra forrige kommando. Du kan forkorte det til  !$ og $_:

$ mkdir dir3
project $ cd !$
cd dir3
project/dir3 $ 

Du tænker sikkert, “Hvad hvis jeg vil bruge denne teknik med en kommando, jeg har udstedt tidligere, men ikke den seneste?” Du kan gøre det med et par kommandoer:

!<kommando du udførte tidligere >:$ 

$ mkdir -p hello/test1/test2
$ ls !mkdir:$
ls hello/test1/test2

Eller:

!<Sidste kommando >:n

$ ls !mk:2
ls hello/test1/test2

Vis kommando.

Nogle gange vil du bare vise den kommando og ikke udføre den. Det kan lade sig gøre med !:p:

$ cat hello.txt 
Hello world ..!
$ !:p
cat hello.txt 
$ 

Faktisk kan du vise enhver kommando på din historie liste uden at udføre den. Udfør bare et af følgende:

$ !<command>:p

$ !mkdir:p
mkdir -p hello/test1/test2

$ !<string>:p

$ !su:p
sudo yum check-update
$ !mk:p
mkdir -p hello/test1/test2

Husk kommandoer med reverse orden

Som sysadmin udføre du sandsynligvis hundredvis af kommandoer hver dag. Du har måske svært ved at huske nogle kommandoer eller huske en del af dem. Her er en anden mulighed for at finde den, du har brug for.

(reverse-i-search)`cd': cd /etc

CTRL+R aktivere reverse-i-search, hvor du kan søge i din history.

 

Author:

Jeg er en professionel system administrator og grundlægger af linuxboxen.dk Jeg er en ivrig Linux-elsker og open source-entusiast. Jeg bruger Ubuntu og tror på at dele viden. Bortset fra Linux, elsker musik og dyr. Jeg er en stor fan af Dire straits.

Skriv et svar