Verwalte Dateien Effektiv mam Kapp, Schwanz a Kaz Kommandoen am Linux


Et gi verschidde Kommandoen a Programmer vu Linux zur Verfügung gestallt fir den Inhalt vun der Datei ze gesinn. Mat Dateien ze schaffen ass eng vun den beängschtegend Aufgaben, déi meescht vun de Computerbenotzer sief et Newbie, regelméisseg Benotzer, fortgeschratt Benotzer, Entwéckler, Admin, etc. Mat Dateien effektiv an effizient ze schaffen ass eng Konscht.

Haut, an dësem Artikel wäerte mir iwwer déi populärste Kommandoen diskutéieren, genannt Kapp, Schwanz a Kaz, déi meescht vun eis si scho bewosst vun esou Kommandoen, awer ganz wéineg vun eis implementéieren se wann néideg.

1. Kapp Kommando

De Kappbefehl liest déi éischt zéng Zeilen vun engem bestëmmten Dateinumm. D'Basis Syntax vum Kapp Kommando ass:

head [options] [file(s)]

Zum Beispill gëtt de folgende Kommando déi éischt zéng Zeilen vun der Datei mam Numm '/etc/passwd'.

# head /etc/passwd 

root:x:0:0:root:/root:/bin/bash 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
bin:x:2:2:bin:/bin:/bin/sh 
sys:x:3:3:sys:/dev:/bin/sh 
sync:x:4:65534:sync:/bin:/bin/sync 
games:x:5:60:games:/usr/games:/bin/sh 
man:x:6:12:man:/var/cache/man:/bin/sh 
lp:x:7:7:lp:/var/spool/lpd:/bin/sh 
mail:x:8:8:mail:/var/mail:/bin/sh 
news:x:9:9:news:/var/spool/news:/bin/sh

Wann méi wéi ee Fichier gëtt, Kapp wäert weisen déi éischt zéng Zeilen vun all Fichier getrennt. Zum Beispill wäert de folgende Kommando zéng Zeilen vun all Datei weisen.

# head /etc/passwd /etc/shadow

==> /etc/passwd <== root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin ==> /etc/shadow <==
root:$6$85e1:15740:0:99999:7:::
bin:*:15513:0:99999:7:::
daemon:*:15513:0:99999:7:::
adm:*:15513:0:99999:7:::
lp:*:15513:0:99999:7:::
sync:*:15513:0:99999:7:::
shutdown:*:15513:0:99999:7:::
halt:*:15513:0:99999:7:::
mail:*:15513:0:99999:7:::
uucp:*:15513:0:99999:7:::

Wann et gewënscht ass méi Unzuel vun Zeilen ze recuperéieren wéi d'Standardzéng, da gëtt d'Optioun '-n' benotzt zesumme mat enger ganzer Zuel, déi d'Zuel vun den Zeilen erzielt. Zum Beispill gëtt de folgende Kommando déi éischt 5 Zeilen aus der Datei '/var/log/yum.log' Datei.

# head -n5 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

Tatsächlech ass et net néideg '-n' Optioun ze benotzen. Just den Bindestrich a spezifizéiert d'Ganzzuel ouni Plazen fir datselwecht Resultat ze kréien wéi de Kommando uewen.

# head  -5 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686
Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686
Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686
Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch
Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

De Kappbefehl kann och all gewënschte Zuel vu Bytes mat der '-c' Optioun weisen, gefollegt vun der Unzuel vun de Bytes déi ugewise ginn. Zum Beispill wäert de folgende Kommando déi éischt 45 Bytes vun der gegebener Datei weisen.

# head -c45 /var/log/yum.log

Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el

2. Schwäif Kommando

De Schwanzbefehl erlaabt Iech déi lescht zéng Zeilen vun all Textdatei ze weisen. Ähnlech wéi de Kappbefehl uewendriwwer, ënnerstëtzen de Schwanzkommando och Optiounen 'n' Zuel vun Zeilen an 'n' Zuel vun Zeechen.

D'Basis Syntax vum Schwanzbefehl ass:

# tail [options] [filenames]

Zum Beispill dréckt de folgende Kommando déi lescht zéng Zeilen vun enger Datei mam Numm 'access.log'.

# tail access.log 

1390288226.042      0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html
1390288226.198      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.210   1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html
1390288226.284     70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 -
1390288226.362    570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg 
1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Wa méi wéi eng Datei gëtt, dréckt Schwänz déi lescht zéng Zeilen vun all Datei wéi hei ënnendrënner.

# tail access.log error.log

==> access.log <== 1390288226.042      0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html 1390288226.198      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.210   1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html 1390288226.284     70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 - 1390288226.362    570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg  1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html ==> error_log <==
[Sun Mar 30 03:16:03 2014] [notice] Digest: generating secret for digest authentication ...
[Sun Mar 30 03:16:03 2014] [notice] Digest: done
[Sun Mar 30 03:16:03 2014] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations

Ähnlech kënnt Dir och déi lescht Zeilen drécken mat der '-n' Optioun wéi hei ënnendrënner.

# tail -5 access.log

1390288226.402      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.437    145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.445      0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html
1390288226.605      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html
1390288226.808      0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Dir kënnt och d'Zuel vun den Zeechen drécken mat '-c' Argument wéi hei ënnendrënner.

# tail -c5 access.log

ymantec.com:443 - NONE/- text/html

3. Kaz Kommando

De Kommando 'cat' ass am meeschte verbreet, universal Tool. Et kopéiert Standard Input op Standard Output. De Kommando ënnerstëtzt Scrollen, wann Textdatei net op den aktuellen Écran passt.

D'Basis Syntax vum Cat Kommando ass:

# cat [options] [filenames] [-] [filenames]

Déi heefegst Notzung vu Kaz ass den Inhalt vun de Dateien ze liesen. Alles wat erfuerderlech ass fir eng Datei opzemaachen fir ze liesen ass Cat ze tippen gefollegt vun engem Raum an den Dateinumm.

# cat /etc/passwd 

root:x:0:0:root:/root:/bin/bash 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
bin:x:2:2:bin:/bin:/bin/sh 
sys:x:3:3:sys:/dev:/bin/sh 
sync:x:4:65534:sync:/bin:/bin/sync 
games:x:5:60:games:/usr/games:/bin/sh 
man:x:6:12:man:/var/cache/man:/bin/sh 
lp:x:7:7:lp:/var/spool/lpd:/bin/sh 
…

D'Katzebefehl huet och benotzt fir d'Zuel vu Dateien zesummen ze verbannen.

# echo 'Hi Tecmint-Team' > 1 
# echo 'Keep connected' > 2 
# echo 'Share your thought' > 3 
# echo 'connect us [email ' > 4
# cat 1 2 3 4 > 5
# cat 5 

Hi Tecmint-Team 
Keep connected 
Share your thought 
connect us [email 

Et kann och benotzt ginn fir Dateien ze kreéieren. Et gëtt erreecht andeems Dir Cat ausféiert, gefollegt vum Ausgangsvirleedungsoperateur an de Dateinumm, deen erstallt gëtt.

# cat > tecmint.txt

Tecmint is the only website fully dedicated to Linux.

Mir kënne personaliséierten Enn Hiersteller fir 'Katze' Kommando hunn. Hei gëtt et ëmgesat.

# cat > test.txt << end 

I am Avishek 
Here i am writing this post 
Hope your are enjoying 
end
# cat test.txt 

I am Avishek 
Here i am writing this post 
Hope your are enjoying

Ënnerschätzt ni d'Kraaft vum 'cat' Kommando a kann nëtzlech si fir Dateien ze kopéieren.

# cat avi.txt

I am a Programmer by birth and Admin by profession
# cat avi.txt > avi1.txt
# cat avi1.txt

I am a Programmer by birth and Admin by profession

Elo wat ass de Géigendeel vu Kaz? Jo et ass 'Tac'. 'tac' ass e Kommando ënner Linux. Et ass besser e Beispill vun Tac ze weisen wéi eppes doriwwer ze schwätzen.

Erstellt eng Textdatei mat den Nimm vum ganze Mount, sou datt ee Wuert op enger Zeil steet.

# cat month

January
February
March
April
May
June
July
August
September
October
November
December
# tac month

December
November
October
September
August
July
June
May
April
March
February
January

Fir méi Beispiller vu Kaz Kommando Notzung, kuckt op d'13 Cat Command Usage

Dat ass alles fir elo. Ech wäert erëm hei mat engem aneren Interessante Artikel sinn, derwäert ze wëssen. Bis dann bleift ofgeschloss a verbonne mat Tecmint. Vergiesst net eis Äre wäertvolle Feedback an eiser Kommentarsektioun ze ginn.