OVERSIGT
Denne artikel er en introduktion til at finde din vej rundt på din server i SSH.
- Tryk på Enter eller Return efter hver kommando, medmindre andet er angivet.
- Domæner skal altid erstattes med dit eget domænenavn.
- Eksempelstier og filnavne skal også erstattes med dine egne serveroplysninger.
KRAV
Denne artikel antager, at:
- Du har aktiveret en SSH-bruger. Dette er normalt root eller en sudo-bruger.
- Du har brugt Terminal (Mac) eller PuTTY (Windows) til at logge på serveren. Du skal have adgang til en kommandoprompt.
Hvis du har brug for hjælp til disse trin, skal du se: Tilslut server via SSH
ADVARSEL
Denne artikel leveres som høflighed. Installation, konfiguration og fejlfinding er uden for rækkevidden af denne artikel.
HJEM OG NAVIGATION
Når du først logger ind på din server, befinder du dig i dit hjemmekatalog.
- For root-brugeren er dette “/root/”.
- Alle andre bruger ligger i stien “/home/”.
Linux-mappestruktur
Linux bruger en indlejret mappestruktur til at gemme forskellige filer. Kataloget på øverste niveau betragtes som rodkataloget og er udpeget af “/”. Mapper under rodniveauet adskilles med skråstreg. For eksempel findes alt dit webstedsindhold på “/var/www/domain/public_html” (eller lignende afhængig af din serveropsætning). Nogle serverudbydere (specielt ved delt hosting) tillader kun SSH-brugere adgang til denne og stien over, selvom man måske kan se andre mapper på systemet.
TIP:
Husk, at “/” ikke er det samme som “/root/”. Serveren er rodniveauet. Du kan ikke komme højere end det. Hjemmekataloget for den bruger, der kaldes root, er /root/, mens andre bruger vil ligge under “/home/brugernavn”.
Almindelige stier:
- “/var/www/domain/public_html” – webstedsmappe
- “/etc/” – konfigurationsfiler
- “/etc/init.d/” – startfiler til softwaredemon
Gå ind i et andet bibliotek
Brug denne kommando til at flytte ind i et bibliotek:
cd
Du kan angive den fulde sti fra rodens server:
cd /var/www/domain/public_html
Du kan indtaste stien, hvorfra du er nu (udelade begyndelsen “/”):
cd mappe/
Du kan gå op ét katalogniveau:
cd ..
Du kan gå til dit hjemmekatalog:
cd ~
Hvor er jeg?
At arbejde med din server uden et GUI kan tage lidt at vænne sig til. Hvis du nogensinde har brug for at se nøjagtigt hvilken mappe du befinder dig i, skal du bruge følgende kommando:
pwd
Det står for udskrivningskatalog. Det viser dig i hvilken mappe du befinder dig i forhold til resten af systemet.
Hvad er der her?
Dernæst ønsker vi at se en liste over filer og mapper i vores nuværende mappe:
ls -alh
ls er listekommandoen, og -alh ændrer standardlisten på tre måder. a betyder, at alle filer, også skjulte filer, skal vises. l betyder, at det lange format bruges – det viser ting som filstørrelse og den dato, hvor hver fil sidst blev ændret. h gør størrelserne vist i praktiske enheder. Her er nogle eksempler output:
drwxr-x — 10 brugernavn psaserv 4,0K 20. oktober 19:51.
drwxr-xr-x 14 root root 4.0K 17. august 22:16 ..
-rw-r – r– 1 brugernavn psacln 58 31. maj 22:49. Htaccess
-rw-r – r– 1 brugernavn psacln 2.1K 20. april 2010 about.php
-rw-r – r– 1 brugernavn psacln 907 25. februar 2010 archive.php
drwxr-xr-x 2 brugernavn psacln 4.0K 2. jul 2. 16:43 billede
-rw-r – r– 1 brugernavn psacln 1.9K 5. mar. 2010 index.php
FILER OG FILTILLADELSER
Lad os nedbryde elementerne i en fil, der vises, når du kører kommandoen “ls-alh” fra det foregående afsnit.
-rw-r – r– 1 bruger psacln 1.9K 5. mar. 2010 index.php
- -rw-r – r– – Dette er tilladelserne til denne fil. r står for “læs”, w står for “skriv”, og x står for “udfør.” Den første karakter er uafhængig, og de næste ni er i grupper på tre: den første triplet (rw-) gælder for ejeren, den anden (r–) for gruppen, og den tredje (r–) for alle. Så i dette eksempel har ejeren læse- og skriveadgang, gruppen har bare læseadgang, og alle har læse adgang.
- 1 – Antal links til denne fil.
- brugernavn – Ejeren af denne fil.
- psacln – Gruppen denne fil tilhører.
- 1,9K – Størrelsen på denne fil i kilobytes.
- 5. mar 2010 – Datoen for denne fil blev senest ændret.
- index.php – Navnet på denne fil med endelsen .php.
Skift tilladelser, ejer og gruppe
Dette afsnit viser grundlæggende kommandoer til ændring af adgangsindstillingerne i en fil. Det anbefales stærkt, at du læser dette afsnit, før du foretager ændringer, så du ved, hvilke slags ændringer der er gode, og hvad der kan være en sikkerhedsrisiko.
Sådan ændrer du tilladelser:
chmod 755 index.php
chmod er kommandoen. 755 er en kode, der fortæller, hvilke type læse, skrive og udføre tilladelser, du vil have til filen. index.php er et eksempel – du skal erstatte med dit filnavn.
Vejledning til hurtig tilladelse:
7 = Læs + Skriv + Udfør
6 = Læs + Skriv
5 = Læs + udfør
4 = Læs
3 = Skriv + Udfør
2 = Skriv
1 = Udfør
0 = Al adgang nægtet
Første nummer er for ejeren, andet for gruppen og tredje for alle.
Sådan skifter du ejer:
chown brugernavn index.php
chown er kommandoen, forkortet til “skift ejer.” Brugernavn er et eksempel på et muligt ejernavn – du skal erstatte dette med dit ønskede ejernavn. Bemærk, at ejeren skal eksistere på serveren. index.php er et eksempel – du skal erstatte med dit filnavn.
Sådan skifter du gruppe:
chgrp psacln index.php
chgrp er kommandoen, forkortet til “skift gruppe.” psacln er et eksempel på en almindelig Plesk-gruppe – du bør erstatte dette med det ønskede gruppnavn. Bemærk, at gruppen skal eksistere på serveren.
Skift ejer og gruppe på én gang:
chown brugernavn: psacln index.php
Denne kommando er nøjagtigt som det forrige chown-eksempel, bortset fra at gruppen også er specificeret efter et kolon (:).
Kopier fil
Brug denne kommando til at kopiere en fil til en anden placering (første eksempel) eller til den samme mappe, men med et nyt navn (andet eksempel):
cp logo.png image / logo.png
cp index.php index.php_old
cp er kommandoen. Den første listede fil er den, du vil kopiere. Den anden fil er det nye navn på den kopierede version af filen, inklusive alle sti-informationer, hvor kopien skal placeres. Du kan bruge en relativ sti som i eksemplet ovenfor (det vil sige, der er en billedmappe i din nuværende mappe allerede), eller du kan bruge en komplet serversti, der starter med /.
Du kan også kopiere en hel mappe (sammen med alle undermapper) vha -R:
cp -R billede / image2
Flyt eller omdøb fil
Formatet for flytningskommandoen ligner meget det for kopikommandoen. Her er et eksempel:
mv logo.png image / logo.png
mv er den grundlæggende kommando. Dette flytter logo.png ind i image / undermappen.
Du kan også bruge den til at omdøbe en fil:
mv index.php index.php_old
Dette omdøber index.php til index.php_old.
Endelig kan du flytte en mappe lige så let som en enkelt fil. Dette eksempel viser, hvordan man flytter mappebilledet / et niveau op (.. betyder “et niveau op”):
mv image / ..
Komprimering og dekomprimering af en fil ved hjælp af zip
Brug denne kommando til at komprimere en fil:
zip -r archive_name.zip folder_to_compress
Brug denne kommando til at dekomprimere en fil:
unzip arkivnavn.zip .
I disse eksempler er zip og unzip kommandoerne. Muligheden -r fortæller kommandoen at arbejde rekursivt. Det listede arkivnavn.zip er navnet på filen. Til sidst er folder_to_compress det bibliotek, du vil komprimere. “.” er placeringen hvor filen skal pakkes ud. I dette tilfælde i samme mappe.
rsync
Rsync-kommandoen kan bruges i stedet for cp-kommandoen og fungerer på alle platforme i Linux. Rsync kan bruges på samme måde som cp med ekstra fordele som filtilladelse og ejerskabsbevaring, komprimering under overførsel og sammenligning mellem filer til opdateringer til sikkerhedskopier.
rsync -a logo.png images / logo.png
rsync -a index.php index.php_old
rsync er kommandoen, efterfulgt af “-a“-flagget, der lader systemet vide, om at bevare tilladelser, ejerskab, tidsstempel, og hvis rsynkroniserer et bibliotek, for at gøre det rekursivt. Den næste del, ‘logo.png’ er kildefilen efterfulgt af destinationen for den fil, der skal kopieres til.
En anden anvendelse til rsync er muligheden for at kopiere filer og mapper over et netværk til en anden server. Dette kan være meget nyttigt, hvis du vil køre nogle sikkerhedskopier eller migrere fra en server til en anden. Dette første eksempel viser dig, hvordan du kopierer hele dokumentroden for example.com til en anden server ved hjælp af SSH-loginoplysninger.
rsync -avz eksempel.com brugernavn@vært: /sti/til/destination
Når du trykker Enter, bliver du bedt om at indtaste adgangskoden til brugeren på fjernserveren. Dette vil flytte hele kataloget, eksempel.com, og dets indhold over til destinationen på fjernserveren. Valgmulighederne, ‘-avz‘ fortæller rsync, at du vil arkivere filtilladelser, ejerskab, få en fuldstændig aflæsning af hvilken fil, der behandles, og du vil gerne komprimere filerne for at bruge mindre båndbredde.
Du kan også vende dette for at downloade en kopi af filer fra en ekstern server til din lokale maskine.
rsync -avz brugernavn@vært: /sti/til/kilde/
Endnu en gang bliver du bedt om at få adgangskoden til brugerkontoen på fjernserveren. Dette kopierer den specificerede fil fra den eksterne server til det aktuelle arbejdsmappe på din lokale maskine.
Opret eller rediger en fil:
vi (eller nano, hvis installeret) file.html
Hvis dette er en ny fil, vil den være tom, når du åbner den, og du kan begynde at tilføje indhold. Hvis dette er en eksisterende fil, ser du dens indhold, som du nu kan redigere.
Tip: Tryk på “i” for at gå ind i “insert mode”, så du kan skrive og kopiere / indsætte. Brug piletasterne til at bevæge sig frem og tilbage i filen. Tryk på “Esc” for at afslutte “indsættelsestilstand”, når du er færdig med at ændre filen. Skriv “:wq” for at gemme og afslutte.
Opret en tom fil (som du senere kan åbne til redigering):
touch på new_file.html
Hvis du bruger et eksisterende filnavn, vil det i stedet “røre” den fil og opdatere den sidst ændrede dato.
Filer oprettes med ejeren og gruppen af din SSH-bruger. Når du har oprettet en ny fil, er det en god ide at køre ls -alh for at sikre, at dens ejerskab matcher resten af filerne i biblioteket. Hvis ikke, skal du køre chown-kommandoen fra det tidligere afsnit.
Læs eller søg i en fil
Hvis du har brug for at gennemse en fil, er den hurtigste måde at få alt indholdet på din skærm kat:
cat index.html
<Html>
<Head>
<Title> Hjem </ title>
</ Head>
<Body>
<p> Hello, world! </p>
</ Body>
</ Html>
Dette kan dog være overvældende, hvis du har en stor fil. I dette tilfælde kan du bruge “less” eller “|more” for nemt at rulle gennem indholdet. less bruger piletasterne, og more bruger Enter. Skriv q for at afslutte en af dem.
less log
cat log | more
Søg efter filer efter en bestemt sætning:
cat error_log | egrep “permission”
Dette viser kun de linjer, der indeholder ordet “tilladelse.” kat viser indholdet. Skriv derefter navnet på filen. “|” betyder, at output skal filtreres gennem den næste kommando. egrep gør søgningen. Dit søgeudtryk skal være med citatmærker, hvis det har specialtegn.
Slet fil
Du kan også slette en fil ved hjælp af SSH. Sørg for, at du ikke har brug for det mere, før du sletter det, da filen slettes permanent.
rm index.php_old
Du modtager output på følgende måde:
rm: remove regular file ‘index.php_old’ ?
Skriv y for at bekræfte, eller n for at annullere. Hvis du ikke ønsker at blive bedt om det, tilføj -f til kommandoen, for at gennemtvinge sletningen:
rm -rf index.php_old
Tilføj også -r, hvis du vil fjerne et helt bibliotek og alt dets indhold, inklusive undermapper rekursivt. Det kan hurtigt blive trættende at godkende enhver sletning i et bibliotek, så -f bruges ofte.
OBS: Vær forsigtig med kommandoen rm -rf. Det vil uigenkaldeligt slette en mappe og alle filer og undermapper deri!
For at sikre, at du sletter den rigtige ting, kan du altid køre en listekommando først. For eksempel:
ls-alh /sti/til/uønsket/mappe/
Her er den rekursive sletningskommando:
rm -rf /sti/til/uønsket/mappe/
Diskbrug
Samlet brug af serverdisk:
df -h
Du vil se output som dette med en anvendt pladsmængde og en procent, der bruges:
Filesystem Size Used Avail Use% Mounted on
/dev/vzfs 20G 3.1G 17G 17% /
simfs 20G 3.1G 17G 17% /tmp
simfs 20G 3.1G 17G 17% /var/tmp
Vis alle mappestørrelser for det aktuelle bibliotek rekursivt med deres størrelser:
du -h
Hvis du kører dette fra et bibliotek på højt niveau, kan det tage et stykke tid at gennemføre.
Vis et diskbrugsoversigt for det aktuelle bibliotek:
du -sh
Igen kan dette tage lidt tid, hvis du kører det i et bibliotek på højt niveau.
Her er en avanceret find-kommando, du kan køre for at finde filer over 10 MB (ingen variabler i denne, bare kopier og indsæt):
find / -mount -noleaf -type f -size +10000k -print0 | xargs -0 ls -lhSr | awk '{printf "%*s %s\n",7,$5":",$9}'
MySQL-adgang
MySQL har en simpel genvej til at logge ind på MySQL:
my
Skriv quit for at afslutte.
Hvis du vil eksportere eller importere en database, kan du læse mere andre steder.
Processer og systemtjenester
Vis aktuelle serverprocesser:
ps -auxf
Vis processer og hukommelsesbrug live:
top
Start / Stop-tjenester:
/etc/init.d/httpd restart
Dette eksempel genstarter Apache (webserver). Du kan også bruge start og stop.
Logfiler
Logfiler kan fortælle dig meget om, hvad der sker på din server. Logfiler er generelt meget lange, så du skal bruge en af disse kommandoer til let at sortere gennem dem:
Vis de seneste 100 linjer i filen:
tail -n 100 /logs/error_log
Se denne fil live. Interagere med din server (ved at prøve at gengive fejlen eller navigere på dit websted), mens dette kører, og se logfilopdateringen. Brug CTRL-C for at afslutte.
tail -f /logs/access_log
Log placeringer
OBS: placeringer kan variere mellem systemer.
Serverfejllog:
/var/log/messages
Apache-fejllogg:
/var/log/httpd/error_log
MySQL-logfiler:
/var/log/mysqld.log
E-mail logfiler:
/usr/local/var/log/maillog
SSH-historie – skriv bare:
history
- Det er normalt at have hundredvis af mislykkede SSH- og FTP-forbindelsesforsøg; det er en påmindelse om, at vi alle har brug for stærke adgangskoder.
- Indstil logrotation for at forhindre, at logfilerne vokser for store.
- Mail-logfilerne er fremragende til at se spamaktivitet og til at spore levering / fiasko af meddelelser.
SLUTTIPS
- Når du skriver en sti eller filnavn, skal du trykke på “Tab” efter de første par bogstaver. Hvis det er den eneste fil eller mappe, der matcher de bogstaver, du har skrevet, udfyldes resten af den automatisk.
- Tryk på pil op for at rulle tilbage gennem tidligere kommandoer – spar dig selv at skrive!
- Lav altid en sikkerhedskopi af den fungerende version af en fil, inden du redigerer den.
- q eller CTRL-C får dig normalt ud af enhver speciel tilstand, du måtte være i.
- Hvis du har fundet en ukendt kommando, skal du skrive “man” og derefter kommandonavnet for at lære mere om det. (Eksempel: man ls) Dette viser dig også specielle indstillinger som indstillingen -alh til listekommandoen.