20 avancerede kommandoer til Linux-brugere på mellemniveau
Du har måske fundet den første artikel meget nyttig, denne artikel er en udvidelse af de 20 nyttige kommandoer til Linux-nybegyndere. Den første artikel var beregnet til nybegyndere, og denne artikel er til brugere på mellemniveau og avancerede brugere. Her finder du, hvordan du tilpasser søgning, kender de processer, der kører guide til at dræbe dem, hvordan du gør din Linux-terminal produktiv, er et vigtigt aspekt, og hvordan du kompilerer c, c ++, java-programmer i nix.
21. Kommando: Find
Søg efter filer i det givne bibliotek, start hierarkisk ved det overordnede bibliotek og flyt til underkataloger.
[email :~# find -name *.sh ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
Bemærk: Indstillingen \ "- navn‘ gør søgningen stor og følsom. Du kan bruge indstillingen \ "- iname‘ til at finde noget uanset tilfældet. (* er et jokertegn og søger i hele filen med udvidelsen '.sh', du kan bruge filnavn eller en del af filnavnet til at tilpasse output).
[email :~# find -iname *.SH ( find -iname *.Sh / find -iname *.sH) ./Desktop/load.sh ./Desktop/test.sh ./Desktop/shutdown.sh ./Binary/firefox/run-mozilla.sh ./Downloads/kdewebdev-3.5.8/quanta/scripts/externalpreview.sh ./Downloads/kdewebdev-3.5.8/admin/doxygen.sh ./Downloads/kdewebdev-3.5.8/admin/cvs.sh ./Downloads/kdewebdev-3.5.8/admin/ltmain.sh ./Downloads/wheezy-nv-install.sh
[email :~# find -name *.tar.gz /var/www/modules/update/tests/aaa_update_test.tar.gz ./var/cache/flashplugin-nonfree/install_flash_player_11_linux.i386.tar.gz ./home/server/Downloads/drupal-7.22.tar.gz ./home/server/Downloads/smtp-7.x-1.0.tar.gz ./home/server/Downloads/noreqnewpass-7.x-1.2.tar.gz ./usr/share/gettext/archive.git.tar.gz ./usr/share/doc/apg/php.tar.gz ./usr/share/doc/festival/examples/speech_pm_1.0.tar.gz ./usr/share/doc/argyll/examples/spyder2.tar.gz ./usr/share/usb_modeswitch/configPack.tar.gz
Bemærk: Ovenstående kommando søger efter al den fil, der har udvidelsen ‘tar.gz’ i rodmappen og alle underkataloger inklusive monterede enheder.
Læs flere eksempler på Linux 'find' -kommando på 35 Find kommandoeksempler i Linux
22. Kommando: grep
Kommandoen ‘grep’ søger i den givne fil efter linjer, der indeholder et match til de givne strenge eller ord. Søg efter '/ etc/passwd' efter 'tecmint' bruger.
[email :~# grep tecmint /etc/passwd tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Ignorer ordbogstav og alle andre kombinationer med '-i' mulighed.
[email :~# grep -i TECMINT /etc/passwd tecmint:x:1000:1000:Tecmint,,,:/home/tecmint:/bin/bash
Søg rekursivt (-r), dvs. læs alle filer under hvert bibliotek efter en streng “127.0.0.1“.
[email :~# grep -r "127.0.0.1" /etc/ /etc/vlc/lua/http/.hosts:127.0.0.1 /etc/speech-dispatcher/modules/ivona.conf:#IvonaServerHost "127.0.0.1" /etc/mysql/my.cnf:bind-address = 127.0.0.1 /etc/apache2/mods-available/status.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/ldap.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/info.conf: Allow from 127.0.0.1 ::1 /etc/apache2/mods-available/proxy_balancer.conf:# Allow from 127.0.0.1 ::1 /etc/security/access.conf:#+ : root : 127.0.0.1 /etc/dhcp/dhclient.conf:#prepend domain-name-servers 127.0.0.1; /etc/dhcp/dhclient.conf:# option domain-name-servers 127.0.0.1; /etc/init/network-interface.conf: ifconfig lo 127.0.0.1 up || true /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# http.nonProxyHosts=localhost|127.0.0.1 /etc/java-6-openjdk/net.properties:# localhost & 127.0.0.1). /etc/java-6-openjdk/net.properties:# ftp.nonProxyHosts=localhost|127.0.0.1 /etc/hosts:127.0.0.1 localhost
Bemærk: Du kan bruge disse følgende muligheder sammen med grep.
- -w for word (egrep -w ‘word1 | word2‘/sti/til/fil).
- -c for optælling (dvs. det samlede antal gange mønsteret matchede) (grep -c 'ord'/sti/til/fil).
- –farve til farvet output (grep –farveserver/etc/passwd).
23. Kommando: mand
'Manden' er systemets manuelle personsøger. Man leverer online dokumentation for alle mulige muligheder med en kommando og dens anvendelser. Næsten al kommando kommer med deres tilsvarende manuelle sider. For eksempel,
[email :~# man man MAN(1) Manual pager utils MAN(1) NAME man - an interface to the on-line reference manuals SYNOPSIS man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page ...] ... man -k [apropos options] regexp ... man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ... man -f [whatis options] page ... man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ... man -w|-W [-C file] [-d] [-D] page ... man -c [-C file] [-d] [-D] page ... man [-hV]
Manuel side til selve mandsiden, på samme måde 'mandkat' (manuel side til kattekommando) og 'mand ls' (manuel side til kommando ls).
Bemærk: mandesiden er beregnet til kommandereference og læring.
24. Kommando: ps
ps (Process) giver status for kørende processer med en unik Id kaldet PID.
[email :~# ps PID TTY TIME CMD 4170 pts/1 00:00:00 bash 9628 pts/1 00:00:00 ps
Hvis du vil liste status for alle processer sammen med proces-id og PID, skal du bruge indstillingen '-A'.
[email :~# ps -A PID TTY TIME CMD 1 ? 00:00:01 init 2 ? 00:00:00 kthreadd 3 ? 00:00:01 ksoftirqd/0 5 ? 00:00:00 kworker/0:0H 7 ? 00:00:00 kworker/u:0H 8 ? 00:00:00 migration/0 9 ? 00:00:00 rcu_bh ....
Bemærk: Denne kommando er meget nyttig, når du vil vide, hvilke processer der kører eller muligvis har brug for PID nogle gange for at processen bliver dræbt. Du kan bruge den med kommandoen 'grep' til at finde tilpasset output. For eksempel,
[email :~# ps -A | grep -i ssh 1500 ? 00:09:58 sshd 4317 ? 00:00:00 sshd
Her er 'ps' pipelined med 'grep' kommando for at finde tilpasset og relevant output af vores behov.
25. Kommando: dræb
OK, du har måske forstået, hvad denne kommando er til, fra navnet på kommandoen. Denne kommando bruges til at dræbe en proces, der ikke er relevant nu eller ikke reagerer. Det er meget nyttigt kommando, snarere en meget meget nyttig kommando. Du er måske bekendt med hyppige genstart af windows på grund af det faktum, at en kørende proces oftest ikke kan dræbes, og hvis den dræbes, har den brug for windows for at få genstart, så ændringer kan træde i kraft, men i Linux-verdenen, der er ingen sådanne ting. Her kan du dræbe en proces og starte den uden at genstarte hele systemet.
Du har brug for en procestid (ps) for at dræbe den.
Lad os antage, at du vil dræbe programmet 'apache2', der muligvis ikke reagerer. Kør 'ps -A' sammen med grep-kommandoen.
[email :~# ps -A | grep -i apache2 1285 ? 00:00:00 apache2
Find proces 'apache2', bemærk dens pid og dræb den. For eksempel er 'apache2' pid i mit tilfælde '1285'.
[email :~# kill 1285 (to kill the process apache2)
Bemærk: Hver gang du kører en proces igen eller starter et system, genereres der en ny pid til hver proces, og du kan vide om de aktuelle kørende processer og dens pid ved hjælp af kommandoen ‘ps’.
En anden måde at dræbe den samme proces på er.
[email :~# pkill apache2
Bemærk: Kill kræver job-id/proces-id til afsendelse af signaler, hvor du som i pkill har mulighed for at bruge mønster, angive procesindehaver osv.
26. Kommando: hvor er
'Whereis' kommandoen bruges til at lokalisere kommandoens binære sider, kilder og manuelle sider. For eksempel for at finde de binære sider, kilder og manuelle sider for kommandoen 'ls' og 'kill'.
[email :~# whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz
[email :~# whereis kill kill: /bin/kill /usr/share/man/man2/kill.2.gz /usr/share/man/man1/kill.1.gz
Bemærk: Dette er nyttigt at vide, hvor binærfilerne nogle gange er installeret til manuel redigering.
27. Kommando: tjeneste
Kommandoen 'service' styrer start, stop eller genstart af en 'service'. Denne kommando gør det muligt at starte, genstarte eller stoppe en tjeneste uden at genstarte systemet, for at ændringerne kan træde i kraft.
[email :~# service apache2 start * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (pid 1285) already running [ OK ]
[email :~# service apache2 restart * Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]
[email :~# service apache2 stop * Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName ... waiting [ OK ]
Bemærk: Alt proces script ligger i '/etc/init.d', og stien skal muligvis medtages på bestemte systemer, dvs. på trods af at køre "service apache2 start" bliver du bedt om at køre "/ etc/init.d/apache2 start ”.
28. Kommando: alias
alias er en indbygget shell-kommando, der giver dig mulighed for at tildele navn til en lang kommando eller ofte brugt kommando.
Jeg bruger kommandoen ‘ls -l’ ofte, som inkluderer 5 tegn inklusive mellemrum. Derfor oprettede jeg et alias for dette til 'l'.
[email :~# alias l='ls -l'
Kontroller, om det fungerer eller ej.
[email :~# l total 36 drwxr-xr-x 3 tecmint tecmint 4096 May 10 11:14 Binary drwxr-xr-x 3 tecmint tecmint 4096 May 21 11:21 Desktop drwxr-xr-x 2 tecmint tecmint 4096 May 21 15:23 Documents drwxr-xr-x 8 tecmint tecmint 4096 May 20 14:56 Downloads drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Music drwxr-xr-x 2 tecmint tecmint 4096 May 20 16:17 Pictures drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Public drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Templates drwxr-xr-x 2 tecmint tecmint 4096 May 7 16:58 Videos
For at fjerne alias 'l' skal du bruge følgende kommando 'unalias'.
[email :~# unalias l
tjek, om 'l' stadig er alias eller ej.
[email :~# l bash: l: command not found
Gør lidt sjov ud af denne kommando. Lav alias for en bestemt vigtig kommando til en anden vigtig kommando.
alias cd='ls -l' (set alias of ls -l to cd) alias su='pwd' (set alias of pwd to su) .... (You can create your own) ....
Når din ven nu skriver 'cd', skal du bare tænke på, hvor sjovt det ville være, når han får katalogoversigt og ikke biblioteksændring. Og når han prøver at være 'su', er alt hvad han får placeringen af arbejdsmappen. Du kan fjerne aliaset senere ved hjælp af kommandoen 'unalias' som forklaret ovenfor.
29. Kommando: df
Rapporter diskbrug af filsystem. Nyttigt for bruger såvel som systemadministrator til at holde styr på deres diskbrug. ‘Df’ fungerer ved at undersøge biblioteksposter, som normalt kun opdateres, når en fil lukkes.
[email :~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 47929224 7811908 37675948 18% / none 4 0 4 0% /sys/fs/cgroup udev 1005916 4 1005912 1% /dev tmpfs 202824 816 202008 1% /run none 5120 0 5120 0% /run/lock none 1014120 628 1013492 1% /run/shm none 102400 44 102356 1% /run/user /dev/sda5 184307 79852 94727 46% /boot /dev/sda7 95989516 61104 91045676 1% /data /dev/sda8 91953192 57032 87218528 1% /personal
For flere eksempler på kommandoen ‘df’, kan du læse artiklen 12 df Kommandoeksempler i Linux.
30. Kommando: du
Anslå brug af filplads. Output resuméet af diskbrug ved altid at filere hierarkisk, dvs. på rekursiv måde.
[email :~# du 8 ./Daily Pics/wp-polls/images/default_gradient 8 ./Daily Pics/wp-polls/images/default 32 ./Daily Pics/wp-polls/images 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/langs 8 ./Daily Pics/wp-polls/tinymce/plugins/polls/img 28 ./Daily Pics/wp-polls/tinymce/plugins/polls 32 ./Daily Pics/wp-polls/tinymce/plugins 36 ./Daily Pics/wp-polls/tinymce 580 ./Daily Pics/wp-polls 1456 ./Daily Pics 36 ./Plugins/wordpress-author-box 16180 ./Plugins 12 ./May Articles 2013/Xtreme Download Manager 4632 ./May Articles 2013/XCache
Bemærk: 'df' rapporterer kun brugsstatistikker på filsystemer, mens 'du' på den anden side måler bibliotekets indhold. For flere 'du' kommandoeksempler og brug, læs 10 du (Disk Usage) -kommandoer.
31. Kommando: rm
Kommandoen 'rm' står for fjern. rm bruges til at fjerne filer og mapper.
[email :~# rm PassportApplicationForm_Main_English_V1.0 rm: cannot remove `PassportApplicationForm_Main_English_V1.0': Is a directory
Kataloget kan ikke fjernes blot ved kommandoen 'rm', du skal bruge '-rf' -kontakten sammen med 'rm'.
[email :~# rm -rf PassportApplicationForm_Main_English_V1.0
Advarsel: "rm -rf" kommando er en destruktiv kommando, hvis du ved et uheld kommer til den forkerte mappe. Når du først har 'rm -rf' en mappe, går alle filer og selve mappen tabt for evigt, pludselig. Brug det med forsigtighed.
32. Kommando: ekko
ekko som navnet antyder ekko en tekst på standardoutput. Det har intet at gøre med shell, og shell læser heller ikke output af ekkokommandoen. Imidlertid videregiver ekko meddelelsen til brugeren via et interaktivt script via terminalen. Det er en af kommandoen, der ofte bruges i scripting, interaktiv scripting.
[email :~# echo "linux-console.net is a very good website" linux-console.net is a very good website
1. Opret en fil, der hedder 'interactive_shell.sh' på skrivebordet. (Husk '.sh' udvidelse er must).
2. kopier og indsæt nedenstående script, nøjagtigt det samme som nedenfor.
#!/bin/bash echo "Please enter your name:" read name echo "Welcome to Linux $name"
Indstil derefter udførelsestilladelse og kør scriptet.
[email :~# chmod 777 interactive_shell.sh
[email :~# ./interactive_shell.sh Please enter your name: Ravi Saive Welcome to Linux Ravi Saive
Bemærk: '#!/Bin/bash' fortæller shell, at det er et script, og det er altid en god ide at medtage det øverst i scriptet. 'Læs' læser det givne input.
33. Kommando: passwd
Dette er en vigtig kommando, der er nyttig til at ændre eget kodeord i terminalen. Det er klart, at du har brug for at kende din nuværende passowrd af sikkerhedsmæssige årsager.
[email :~# passwd Changing password for tecmint. (current) UNIX password: ******** Enter new UNIX password: ******** Retype new UNIX password: ******** Password unchanged [Here was passowrd remians unchanged, i.e., new password=old password] Enter new UNIX password: ##### Retype new UNIX password:#####
34. Kommando: lpr
Denne kommando udskriver filer navngivet på kommandolinjen til den navngivne printer.
[email :~# lpr -P deskjet-4620-series 1-final.pdf
Bemærk: Med kommandoen ‘lpq’ kan du se status på en printer (hvad enten den er op eller ej) og de job (filer), der venter på at blive udskrevet.
35. Kommando: cmp
sammenligne to filer af enhver type og skrive resultaterne til standardoutput. Som standard returnerer 'cmp' 0, hvis filerne er ens; hvis de adskiller sig, rapporteres det byte og linjenummer, hvor den første forskel opstod.
For at give eksempler på denne kommando, lad os overveje to filer:
[email :~# cat file1.txt Hi My name is Tecmint
[email :~# cat file2.txt Hi My name is tecmint [dot] com
Lad os nu sammenligne to filer og se output af kommandoen.
[email :~# cmp file1.txt file2.txt file1.txt file2.txt differ: byte 15, line 1
36. Kommando: wget
Wget er et gratis værktøj til ikke-interaktiv (dvs. kan arbejde i baggrunden) download af filer fra Internettet. Det understøtter HTTP, HTTPS, FTP-protokoller og HTTP-proxyer.
[email :~# wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 --2013-05-22 18:54:52-- http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59 Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 [following] --2013-05-22 18:54:54-- http://kaz.dl.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2 Resolving kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)... 92.46.53.163 Connecting to kaz.dl.sourceforge.net (kaz.dl.sourceforge.net)|92.46.53.163|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 275557 (269K) [application/octet-stream] Saving to: ‘ffmpeg-php-0.6.0.tbz2’ 100%[===========================================================================>] 2,75,557 67.8KB/s in 4.0s 2013-05-22 18:55:00 (67.8 KB/s) - ‘ffmpeg-php-0.6.0.tbz2’ saved [275557/275557]
37. Kommando: monter
Mount er en vigtig kommando, der bruges til at montere et filsystem, der ikke monterer sig selv. Du har brug for rodtilladelse for at montere en enhed.
Kør først 'lsblk' efter tilslutning af dit filsystem og identificer din enhed, og noter dit enheds tildelte navn.
[email :~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 931.5G 0 disk ├─sda1 8:1 0 923.6G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 7.9G 0 part [SWAP] sr0 11:0 1 1024M 0 rom sdb 8:16 1 3.7G 0 disk └─sdb1 8:17 1 3.7G 0 part
Fra denne skærm var det klart, at jeg tilsluttede en 4 GB pendrive, så 'sdb1' er mit filsystem, der skal monteres. Bliv en rod for at udføre denne handling og skift til/dev-biblioteket, hvor hele filsystemet er monteret.
[email :~# su Password:
[email :~# cd /dev
Opret en mappe med navnet alt, men skal være relevant for reference.
[email :~# mkdir usb
Monter nu filsystemet 'sdb1' til biblioteket 'usb'.
[email :~# mount /dev/sdb1 /dev/usb
Nu kan du navigere til/dev/usb fra terminal- eller X-windows-system og adgangsfil fra det monterede bibliotek.
38. Kommando: gcc
gcc er den indbyggede kompilator til 'c' sprog i Linux-miljø. Et simpelt c-program, gem det på dit skrivebord som Hello.c (husk '.c' udvidelse er must).
#include <stdio.h> int main() { printf("Hello world\n"); return 0; }
[email :~# gcc Hello.c
[email :~# ./a.out Hello world
Bemærk: Ved kompilering af et c-program genereres output automatisk til en ny fil "a.out", og hver gang du kompilerer et c-program, bliver den samme fil "a.out" ændret. Derfor er det et godt råd at definere en outputfil under kompilering, og der er således ingen risiko for overskrivning til outputfil.
[email :~# gcc -o Hello Hello.c
Her sender '-o' output til 'Hello' -fil og ikke 'a.out'. Kør det igen.
[email :~# ./Hello Hello world
39. Kommando: g ++
g ++ er den indbyggede kompilator til ‘C ++’, det første objektorienterede programmeringssprog. Et simpelt c ++ - program, gem det på dit skrivebord som Add.cpp (husk '.cpp' udvidelse er must).
#include <iostream> using namespace std; int main() { int a; int b; cout<<"Enter first number:\n"; cin >> a; cout <<"Enter the second number:\n"; cin>> b; cin.ignore(); int result = a + b; cout<<"Result is"<<" "<<result<<endl; cin.get(); return 0; }
[email :~# g++ Add.cpp
[email :~# ./a.out Enter first number: ... ...
Bemærk: Ved kompilering af et c ++ - program genereres output automatisk til en ny fil "a.out", og hver gang du kompilerer et c ++ - program, bliver den samme fil "a.out" ændret. Derfor er det et godt råd at definere en outputfil under kompilering, og der er således ingen risiko for overskrivning til outputfil.
[email :~# g++ -o Add Add.cpp
[email :~# ./Add Enter first number: ... ...
40. Kommando: java
Java er et af verdens mest anvendte programmeringssprog og betragtes som hurtigt, sikkert og pålideligt. Det meste af den internetbaserede service i dag kører på java.
Opret et simpelt java-program ved at indsætte nedenstående test i en fil, der hedder tecmint.java (husk '.java' udvidelse er must).
class tecmint { public static void main(String[] arguments) { System.out.println("Tecmint "); } }
[email :~# javac tecmint.java
[email :~# java tecmint
Bemærk: Næsten hver distribution leveres fyldt med gcc-kompilator, stort antal distroer har indbygget g ++ og java-kompilator, mens nogle måske ikke har. Du kan apt eller yum den nødvendige pakke.
Glem ikke at nævne din værdifulde kommentar og den type artikel, du vil se her. Jeg vil snart være tilbage med et interessant emne om de mindre kendte fakta om Linux.