Klicken Sie auf das Bild, um eine größere Version anzuzeigen

1. tar

Eine neue tar-Datei erstellen

$ tar cvf archive_name.tar dirname/

Eine tar-Datei entpacken

$ tar xvf archive_name.tar

Eine tar-Datei anzeigen

$ tar tvf archive_name.tar

2. grep

Eine Zeichenkette in einer Datei finden (Groß-/Kleinschreibung wird nicht beachtet)

$ grep -i "the" demo_file

Die erfolgreich gefundene Zeile zusammen mit den drei darauffolgenden Zeilen ausgeben

$ grep -A 3 -i "example" demo_text

Rekursiv in einem Ordner nach Dateien suchen, die eine angegebene Zeichenkette enthalten

$ grep -r "ramesh" *

3. find

Dateien mit einem angegebenen Dateinamen finden (Groß-/Kleinschreibung wird nicht beachtet)

$ find -iname "MyProgram.c"

Einen Befehl für die gefundenen Dateien ausführen

$ find -iname "MyProgram.c" -exec md5sum {} \;

Alle leeren Dateien im Home-Verzeichnis finden

$ find ~ -empty

4. ssh

Bei einem Remote-Host anmelden

$ ssh -l jsmith remotehost.example.com

ssh-Client debuggen

$ ssh -v -l jsmith remotehost.example.com

ssh-Client-Version anzeigen

$ ssh -V

5. sed

Wenn Sie Dateien von einem DOS-System auf Unix/Linux kopieren, endet jede Zeile der Datei mit \r\n. sed kann sie leicht in eine Datei im Unix-Format umwandeln, die \n am Zeilenende verwendet.

$ sed 's/.$//' filename

Dateiinhalt umkehren und ausgeben

$ sed -n '1!G; h; p' filename

Zeilennummern zu nicht leeren Zeilen hinzufügen

$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'

6. awk

Doppelte Zeilen entfernen

$ awk '!($0 in array) { array[$0]; print}' temp

Alle Zeilen in /etc/passwd ausgeben, die die gleiche uid und gid enthalten

$ awk -F ':' '$3=$4' /etc/passwd

Angegebene Felder aus einer Datei ausgeben

$ awk '{print $2,$5;}' employee.txt

7. vim

Eine Datei öffnen und zur Zeile 10 springen

$ vim +10 filename.txt

Eine Datei öffnen und zur ersten passenden Zeile springen

$ vim +/search-term filename.txt

Eine Datei im schreibgeschützten Modus öffnen

$ vim -R /etc/passwd

8. diff

Leerzeichen beim Vergleichen ignorieren

$ diff -w name_list.txt name_list_new.txt

9. sort

Dateiinhalt in aufsteigender Reihenfolge sortieren

$ sort names.txt

Dateiinhalt in absteigender Reihenfolge sortieren

$ sort -r names.txt

Den Inhalt von /etc/passwd nach dem dritten Feld sortieren

$ sort -t: -k 3n /etc/passwd | more

10. export

Umgebungsvariablen ausgeben, die der Zeichenkette oracle entsprechen

$ export | grep ORCALE
declare -x ORACLE_BASE="/u01/app/oracle"
declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0"
declare -x ORACLE_SID="med"
declare -x ORACLE_TERM="xterm"

Globale Umgebungsvariablen setzen

$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0

11. xargs

Alle Bilddateien auf ein externes Laufwerk kopieren

$ ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

Alle jpd-Dateien im System komprimieren und paketieren

$ find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

Die Seiten herunterladen, die allen in der Datei aufgeführten URLs entsprechen

$ cat url-list.txt | xargs wget –c

12. ls

Dateigröße in einem menschenlesbaren Format anzeigen (angezeigt als MB, GB, ...)

$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

Dateien in aufsteigender Reihenfolge nach der letzten Änderungszeit auflisten

$ ls -ltr

Dateityp nach dem Dateinamen anzeigen

$ ls -F

13. pwd

Das aktuelle Arbeitsverzeichnis ausgeben

14. cd

cd - wechselt zwischen den beiden zuletzt verwendeten Verzeichnissen

Mit shopt -s cdspell kann die automatische Rechtschreibkorrektur für den cd-Befehl eingerichtet werden

15. gzip

Eine *.gz-komprimierte Datei erstellen

$ gzip test.txt

Eine *.gz-Datei dekomprimieren

$ gzip -d test.txt.gz

Das Komprimierungsverhältnis anzeigen

$ gzip -l *.gz
     compressed        uncompressed  ratio uncompressed_name
          23709               97975  75.8% asp-patch-rpms.txt

16. bzip2

Eine *.bz2-komprimierte Datei erstellen

$ bzip2 test.txt

Eine *.bz2-Datei dekomprimieren

bzip2 -d test.txt.bz2

17. uzip

Eine *.zip-Datei dekomprimieren

$ unzip test.zip

Den Inhalt einer *.zip-Datei anzeigen

$ unzip -l jasper.zip
Archive:  jasper.zip
Length     Date   Time    Name
--------    ----   ----    ----
40995  11-30-98 23:50   META-INF/MANIFEST.MF
32169  08-25-98 21:07   classes_
15964  08-25-98 21:07   classes_names
10542  08-25-98 21:07   classes_ncomp

18. shutdown

Das System sofort herunterfahren und ausschalten

$ shutdown -h now

Nach 10 Minuten herunterfahren

$ shutdown -h +10

Neustart

$ shutdown -r now

Eine Systemprüfung während des Neustarts erzwingen

$ shutdown -Fr now

19. ftp

Die Verwendung des ftp-Befehls und des sftp-Befehls ist grundsätzlich ähnlich: Verbindung zu einem FTP-Server herstellen und mehrere Dateien herunterladen

$ ftp IP/hostname
ftp> mget *.html

Die Liste der Dateien auf dem Remote-Host anzeigen

ftp> mls *.html -
/ftptest/features.html
/ftptest/index.html
/ftptest/othertools.html
/ftptest/samplereport.html
/ftptest/usage.html

20. crontab

Die crontab-Einträge eines Benutzers anzeigen

$ crontab -u john -l

Eine geplante Aufgabe einrichten, die alle zehn Minuten ausgeführt wird

*/10 * * * * /home/ramesh/check-disk-space

21. service

Der service-Befehl wird verwendet, um System-V-Init-Skripte auszuführen, die sich normalerweise in /etc/init.d befinden. Dieser Befehl kann Skripte in diesem Ordner direkt ausführen, ohne den Pfad anzugeben

Dienststatus anzeigen

$ service ssh status

Den Status aller Dienste anzeigen

$ service --status-all

Einen Dienst neu starten

$ service ssh restart

22. ps

Der Befehl ps wird verwendet, um Informationen über laufende Prozesse anzuzeigen. Der Befehl ps hat viele Optionen; hier werden nur einige aufgeführt

Alle aktuell laufenden Prozesse anzeigen

$ ps -ef | more

Aktuell laufende Prozesse in einer Baumstruktur anzeigen. Die Option H gibt an, dass die Prozesshierarchie angezeigt wird

$ ps -efH | more

23. free

Dieser Befehl wird verwendet, um die aktuelle Speichernutzung des Systems anzuzeigen, einschließlich verwendetem Speicher, verfügbarem Speicher und Swap-Speicher

Standardmäßig gibt free die Speichernutzung in bytes aus

$ free
             total       used       free     shared    buffers     cached
Mem:       3566408    1580220    1986188          0     203988     902960
-/+ buffers/cache:     473272    3093136
Swap:      4000176          0    4000176

Wenn Sie die Speichernutzung in anderen Einheiten ausgeben möchten, müssen Sie eine Option hinzufügen: -g für GB, -m für MB, -k für KB, -b für bytes

$ free -g
             total       used       free     shared    buffers     cached
Mem:             3          1          1          0          0          0
-/+ buffers/cache:          0          2
Swap:            3          0          3

Wenn Sie eine Zusammenfassung des gesamten Speichers anzeigen möchten, verwenden Sie die Option -t. Die Verwendung dieser Option fügt der Ausgabe eine Zusammenfassungszeile hinzu

$ free -t
             total       used       free     shared    buffers     cached
Mem:       3566408    1592148    1974260          0     204260     912556
-/+ buffers/cache:     475332    3091076
Swap:      4000176          0    4000176
Total:     7566584    1592148    5974436

24. top

Der Befehl top zeigt die Prozesse an, die derzeit die meisten Ressourcen im System belegen (standardmäßig nach CPU-Nutzung sortiert). Wenn Sie die Sortiermethode ändern möchten, können Sie in der Ergebnisliste O drücken (großes O), um alle für die Sortierung verfügbaren Spalten anzuzeigen, und dann die Spalte auswählen, nach der Sie sortieren möchten

Current Sort Field:  P  for window 1:Def
Select sort field via field letter, type any other key to return

  a: PID        = Process Id              v: nDRT       = Dirty Pages count
  d: UID        = User Id                 y: WCHAN      = Sleeping in Function
  e: USER       = User Name               z: Flags      = Task Flags
  ........

Wenn Sie nur Prozesse eines bestimmten Benutzers anzeigen möchten, können Sie die Option -u verwenden

$ top -u oracle

25. df

Zeigt die Festplattennutzung des Dateisystems an. Standardmäßig gibt df -k die Festplattennutzung in Bytes aus

$ df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             29530400   3233104  24797232  12% /
/dev/sda2            120367992  50171596  64082060  44% /home

Mit der Option -h wird die Festplattennutzung in einem besser menschenlesbaren Format angezeigt

$ df -h
Filesystem                  Size   Used  Avail Capacity  iused      ifree %iused  Mounted on
/dev/disk0s2               232Gi   84Gi  148Gi    37% 21998562   38864868   36%   /
devfs                      187Ki  187Ki    0Bi   100%      648          0  100%   /dev
map -hosts                   0Bi    0Bi    0Bi   100%        0          0  100%   /net
map auto_home                0Bi    0Bi    0Bi   100%        0          0  100%   /home
/dev/disk0s4               466Gi   45Gi  421Gi    10%   112774  440997174    0%   /Volumes/BOOTCAMP
//app@izenesoft.cn/public  2.7Ti  1.3Ti  1.4Ti    48%        0 18446744073709551615    0%   /Volumes/public

Verwenden Sie die Option -T, um den Dateisystemtyp anzuzeigen

$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda1     ext4    29530400   3233120  24797216  12% /
/dev/sda2     ext4   120367992  50171596  64082060  44% /home

26. kill

kill wird verwendet, um einen Prozess zu beenden. Im Allgemeinen verwenden wir zuerst ps -ef, um einen Prozess zu finden und seine Prozessnummer zu erhalten, und dann kill -9 Prozessnummer, um ihn zu beenden. Sie können auch killall, pkill oder xkill verwenden, um Prozesse zu beenden

$ ps -ef | grep vim
ramesh    7243  7222  9 22:43 pts/2    00:00:00 vim

$ kill -9 7243

27. rm

Vor dem Löschen einer Datei bestätigen

$ rm -i filename.txt

Die Verwendung von Shell-Metazeichen in Dateinamen kann sehr nützlich sein. Geben Sie die Dateinamen aus und bestätigen Sie, bevor Sie sie löschen

$ rm -i file*

Alle Dateien unter einem Ordner rekursiv löschen und auch den Ordner selbst löschen

$ rm -r example

28. cp

file1 nach file2 kopieren, wobei die Berechtigungen, der Eigentümer und der Zeitstempel der Datei erhalten bleiben

$ cp -p file1 file2

file1 nach file2 kopieren. Wenn file2 existiert, wird gefragt, ob überschrieben werden soll

$ cp -i file1 file2

29. mv

Benennen Sie file1 in file2 um. Wenn file2 existiert, wird abgefragt, ob überschrieben werden soll

$ mv -i file1 file2

Beachten Sie, dass bei Verwendung der Option -f keine Aufforderung angezeigt wird

-v gibt den Umbenennungsvorgang aus. Diese Option ist sehr praktisch, wenn Dateinamen Platzhalter enthalten

$ mv -v file1 file2

30. cat

Sie können den Inhalt mehrerer Dateien gleichzeitig anzeigen. Der folgende Befehl gibt zuerst den Inhalt von file1 und dann den Inhalt von file2 aus

$ cat file1 file2

Die Option -n fügt Zeilennummern am Anfang jeder Zeile hinzu

$ cat -n /etc/logrotate.conf
/var/log/btmp {
missingok
3        monthly
4        create 0660 root utmp
5        rotate 1
6 }

31. mount

Um ein Dateisystem einzuhängen, müssen Sie zuerst ein Verzeichnis erstellen und dann das Dateisystem in dieses Verzeichnis einhängen

# mkdir /u01

# mount /dev/sdb1 /u01

Sie können es auch zu fstab hinzufügen, um es automatisch einzuhängen, sodass das Dateisystem bei jedem Neustart des Systems geladen wird

/dev/sdb1 /u01 ext2 defaults 0 2

32. chmod

chmod wird verwendet, um die Berechtigungen von Dateien und Verzeichnissen zu ändern

Gib dem Eigentümer und der Gruppe der angegebenen Datei alle Berechtigungen (einschließlich Lesen, Schreiben und Ausführen)

$ chmod ug+rwx file.txt

Entferne alle Berechtigungen der Gruppe der angegebenen Datei

$ chmod g-rwx file.txt

Ändere die Berechtigungen eines Verzeichnisses und ändere rekursiv die Berechtigungen aller Dateien und Unterverzeichnisse unter diesem Verzeichnis

$ chmod -R ug+rwx file.txt

33. chown

chown wird verwendet, um den Eigentümer und die Gruppe einer Datei zu ändern

Ändere gleichzeitig den Eigentümer einer Datei in oracle und die Gruppe in db

$ chown oracle:dba dbora.sh

Verwende die Option -R, um ein Verzeichnis und die darin enthaltenen Dateien rekursiv zu ändern

$ chown -R oracle:dba /home/oracle

34. passwd

passwd wird verwendet, um ein Passwort in der Befehlszeile zu ändern. Bei Verwendung dieses Befehls musst du zuerst das alte Passwort eingeben und dann ein neues Passwort eingeben

$ passwd

Der Superuser kann diesen Befehl verwenden, um die Passwörter anderer Benutzer zu ändern. In diesem Fall muss das Passwort des Benutzers nicht eingegeben werden

# passwd USERNAME

passwd kann auch das Passwort eines Benutzers löschen. Dieser Befehl kann nur vom root-Benutzer ausgeführt werden. Nachdem das Passwort gelöscht wurde, kann sich der Benutzer ohne Eingabe eines Passworts am System anmelden

# passwd -d USERNAME

35. mkdir

Erstellen Sie ein Verzeichnis namens temp im Home-Verzeichnis

$ mkdir ~/temp

Verwenden Sie die Option -p, um alle nicht vorhandenen Verzeichnisse entlang eines Pfads zu erstellen

$ mkdir -p dir1/dir2/dir3/dir4/

36. ifconfig

ifconfig wird verwendet, um Netzwerkschnittstellen eines Linux-Systems anzuzeigen und zu konfigurieren

Alle Netzwerkschnittstellen und deren Status anzeigen

$ ifconfig -a

Verwenden Sie die Befehle up und down, um eine Schnittstelle zu starten oder zu stoppen

$ ifconfig eth0 up
$ ifconfig eth0 down

37. uname

uname kann einige wichtige Systeminformationen anzeigen, wie Kernelname, Hostname, Kernelversion, Prozessortyp und so weiter

$ uname -a Linux john-laptop 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux

38. whereis

Wenn Sie den Speicherort eines Befehls nicht kennen, können Sie den Befehl whereis verwenden. Das Folgende verwendet whereis, um den Speicherort von ls zu finden

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Wenn Sie den Speicherort eines ausführbaren Programms finden möchten, das Programm sich jedoch nicht in den Standardverzeichnissen von whereis befindet, können Sie die Option -B verwenden und ein Verzeichnis als Argument für diese Option angeben. Der folgende Befehl sucht nach dem Befehl lsmk im Verzeichnis /tmp

$ whereis -u -B /tmp -f lsmk
lsmk: /tmp/lsmk

39. whatis

whatis zeigt Beschreibungsinformationen für einen Befehl an

$ whatis ls
ls        (1)  - list directory contents

$ whatis ifconfig
ifconfig (8)         - configure a network interface

40. locate

Der Befehl locate kann den Pfad einer angegebenen Datei (oder Gruppe von Dateien) anzeigen. Er verwendet eine von updatedb erstellte Datenbank

Der folgende Befehl zeigt alle Dateien im System an, die die Zeichenkette crontab enthalten

$ locate crontab
/etc/anacrontab
/etc/crontab
/usr/bin/crontab
/usr/share/doc/cron/examples/crontab2english.pl.gz
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/anacrontab.5.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim72/syntax/crontab.vim

41. man

Die Manpage für einen Befehl anzeigen

$ man crontab

Einige Befehle können mehrere Manpages haben; jede Manpage entspricht einem Befehlstyp

$ man SECTION-NUMBER commandname

Manpages lassen sich im Allgemeinen in 8 Befehlstypen unterteilen

  1. Benutzerbefehle
  2. Systemaufrufe
  3. C-Bibliotheksfunktionen
  4. Geräte und Netzwerkschnittstellen
  5. Dateiformate
  6. Spiele und Bildschirmschoner
  7. Umgebung, Tabellen und Makros
  8. Befehle für Systemadministratoren und im Hintergrund laufende Befehle
  9. Wenn wir beispielsweise whatis crontab ausführen, sehen Sie, dass crontab zwei Befehlstypen hat, 1 und 5. Wir können also den folgenden Befehl verwenden, um die Manpage für Befehlstyp 5 anzuzeigen

    $ whatis crontab
    crontab (1)          - maintain crontab files for individual users (V3)
    crontab (5)          - tables for driving cron
    
    $ man 5 crontab

    42. tail

    Der Befehl tail zeigt standardmäßig die letzten 10 Textzeilen in einer Datei an

    $ tail filename.txt

    Mit der Option -n können Sie die Anzahl der anzuzeigenden Zeilen angeben

    $ tail -n N filename.txt

    Sie können auch die Option -f verwenden, um in Echtzeit anzuzeigen. Nachdem dieser Befehl ausgeführt wurde, wartet er. Wenn neue Zeilen am Ende der Datei hinzugefügt werden, gibt er weiterhin die neuen Zeilen aus. Diese Option ist sehr nützlich, wenn Sie Logs anzeigen. Sie können den Befehl mit CTRL-C beenden.

    $ tail -f log-file

    43. less

    Dieser Befehl kann den Dateiinhalt anzeigen, ohne die gesamte Datei zu laden, was sehr nützlich ist, wenn Sie große Logdateien anzeigen.

    $ less huge-log-file.log

    Wenn Sie eine Datei mit dem Befehl less öffnen, werden Ihnen die folgenden zwei Tasten sehr helfen; mit ihnen können Sie vorwärts und rückwärts blättern.

    CTRL+F – forward one window
    CTRL+B – backward one window

    44. su

    su命令用于切换用户账号,超级用户使用这个命令可以切换到任何其他用户而不用输入密码
    $ su - USERNAME

    Führen Sie einen Befehl unter einem anderen Benutzernamen aus. Im folgenden Beispiel führt der Benutzer john den Befehl ls unter dem Benutzernamen raj aus und kehrt nach der Ausführung zum Konto von john zurück.

    [john@dev-server]$ su - raj -c 'ls'
    
    [john@dev-server]$

    Melden Sie sich als angegebener Benutzer an und verwenden Sie das angegebene Shell-Programm anstelle des Standardprogramms.

    $ su -s 'SHELLNAME' USERNAME

    45. mysql

    MySQL ist möglicherweise die am weitesten verbreitete Datenbank unter Linux. Selbst wenn Sie MySQL nicht auf Ihrem Server installiert haben, können Sie trotzdem den MySQL-Client verwenden, um eine Verbindung zu einem entfernten MySQL-Server herzustellen.

    Um eine Verbindung zu einer entfernten Datenbank herzustellen, müssen Sie das Passwort eingeben.

    $ mysql -u root -p -h 192.168.1.2

    Stellen Sie eine Verbindung zu einer lokalen Datenbank her.

    $ mysql -u root -p

    Sie können das Datenbankpasswort auch in der Befehlszeile eingeben. Fügen Sie das Passwort einfach als Argument nach -p hinzu. Es kann direkt nach p ohne Leerzeichen geschrieben werden.

    46. yum

    Apache mit yum installieren.

    $ yum install httpd

    Apache aktualisieren.

    $ yum update httpd

    Apache deinstallieren/entfernen.

    $ yum remove httpd

    47. rpm

    Apache mit rpm installieren.

    # rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm

    Apache aktualisieren.

    # rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm

    Apache deinstallieren/entfernen.

    # rpm -ev httpd

    48. ping

    Pingen Sie einen entfernten Host an und senden Sie nur 5 Datenpakete.

    $ ping -c 5 gmail.com

    49. date

    Stellen Sie das Systemdatum ein.

    # date -s "01/31/2010 23:59:53"

    Wenn Sie die Systemzeit geändert haben, müssen Sie die Hardwarezeit und die Systemzeit synchronisieren.

    # hwclock –systohc
    
    # hwclock --systohc –utc

    50. wget

    Verwenden Sie wget, um Software, Musik und Videos aus dem Internet herunterzuladen.

    $ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz

    Laden Sie eine Datei herunter und speichern Sie sie unter einem angegebenen Dateinamen.

    $ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

    Übersetzung: https://zhuanlan.zhihu.com/p/28674639

    Original: http://www.thegeekstuff.com/2010/11/50-linux-commands/