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
- Benutzerbefehle
- Systemaufrufe
- C-Bibliotheksfunktionen
- Geräte und Netzwerkschnittstellen
- Dateiformate
- Spiele und Bildschirmschoner
- Umgebung, Tabellen und Makros
- Befehle für Systemadministratoren und im Hintergrund laufende Befehle
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/
