Karatasi ya kumbukumbu

Amri za Linux: karatasi ya kumbukumbu kwa wanaoanza na wasimamizi

Imesasishwa: · Skillaria.Top

Amri kuu za Linux zimegawanywa katika vikundi: urambazaji (pwd, ls, cd), kazi na faili (cp, mv, rm, mkdir), ruhusa (chmod, chown), vifurushi (apt), michakato (ps, top, kill), utafutaji na usindikaji wa maandishi (find, grep, sed, awk), mtandao (ip, ss, curl) na huduma (systemctl, journalctl). Hapa chini kuna jedwali za amri zenye mifano zinazoshughulikia sehemu kubwa ya kazi ya kila siku kwenye terminal.

Karatasi hii ya amri za Linux imepangwa kwa makundi ya kazi: kutafuta faili, kusakinisha kifurushi, kusimamisha mchakato uliokwama, kuchukua mstari mmoja kutoka kwenye kumbukumbu, au kuangalia port. Amri zimejaribiwa kwenye Ubuntu na Debian; karibu zote zinafanya kazi kwenye distro nyingine pia, tofauti kubwa ikiwa kwenye meneja wa vifurushi.

Msaada na vidokezo

AmriKazi yake
man lsmwongozo kamili wa amri, kutoka kwa q, kutafuta /neno
ls --helpmsaada mfupi wa chaguo
type cdni nini: amri ya ndani ya shell, alias, au faili
which python3njia ya faili inayoweza kutekelezwa
historyhistoria ya amri; !123 hurudia amri namba 123
Ctrl+Rkutafuta kwenye historia
Ctrl+C / Ctrl+Dkusimamisha amri / kufunga shell

Urambazaji wa mfumo wa faili

AmriKazi yake
pwdsaraka ya sasa
ls -lafaili zote pamoja na zilizofichwa, zikiwa na ruhusa na ukubwa
ls -lhukubwa katika muundo rahisi kusoma (K, M, G)
ls -ltkupanga kwa muda wa mabadiliko
cd /var/logkuhamia kwa njia kamili
cd .. / cd ~ / cd -ngazi moja juu / nyumbani / saraka iliyotangulia
tree -L 2mti wa saraka wa ngazi 2 (kifurushi tree)

Kazi na faili na saraka

AmriKazi yake
touch file.txtkuunda faili tupu au kusasisha muda wa mabadiliko
mkdir -p a/b/ckuunda saraka pamoja na za mzazi
cp file.txt backup.txtkunakili faili
cp -r src/ dst/kunakili saraka kwa kurudia
mv old.txt new.txtkubadilisha jina au kuhamisha
rm file.txtkufuta faili (bila recycle bin)
rm -r dir/kufuta saraka pamoja na yaliyomo; -f bila kuuliza, kuwa makini
rmdir dirkufuta saraka tupu
ln -s /opt/app/current appkiungo cha ishara (symbolic link)
stat file.txtmaelezo: ukubwa, ruhusa, inode, tarehe
file image.binkubaini aina ya faili kutoka yaliyomo

Kuangalia yaliyomo

AmriKazi yake
cat filekuonyesha faili lote
less filekusoma ukurasa kwa ukurasa, kutafuta /, kutoka q
head -n 20 filemistari 20 ya kwanza
tail -n 50 filemistari 50 ya mwisho
tail -f /var/log/syslogkufuatilia faili kwa wakati halisi
wc -l fileidadi ya mistari
diff a.conf b.conftofauti kati ya faili

Ruhusa na wamiliki

AmriKazi yake
chmod +x script.shkuruhusu kutekelezwa
chmod 644 filerw-r--r--: mmiliki anaandika, wengine wanasoma
chmod 755 dirrwxr-xr-x: ya kawaida kwa saraka na skripti
chmod 600 ~/.ssh/id_ed25519mmiliki pekee: kwa funguo binafsi
sudo chown www-data:www-data filekubadilisha mmiliki na kundi
sudo chown -R alice /srv/appkubadilisha mmiliki kwa kurudia
idUID, GID na makundi yako
sudo -ishell ya root
sudo usermod -aG docker alicekumwongeza mtumiaji kwenye kundi

Vifurushi (apt, Debian na Ubuntu)

AmriKazi yake
sudo apt updatekusasisha orodha ya vifurushi kutoka kwenye hazina
sudo apt upgradekusasisha vifurushi vilivyosakinishwa
sudo apt install nginxkusakinisha kifurushi
sudo apt remove nginxkuondoa, usanidi ukibaki; purge huondoa pamoja na usanidi
sudo apt autoremovekuondoa utegemezi usiohitajika tena
apt search htopkutafuta kifurushi
apt show nginxmaelezo na toleo
dpkg -l | grep nginxkuangalia kama kifurushi kimesakinishwa
dpkg -L nginxfaili ambazo kifurushi kilisakinisha

Kwenye RHEL, Fedora na Rocky Linux, amri zinazolingana ni dnf install, dnf remove, dnf upgrade, na rpm -qa.

Mazingira na profaili

AmriKazi yake
echo $PATHmahali shell inapotafuta programu
envvariables zote za mazingira
export APP_ENV=prodkuweka variable kwa kipindi cha sasa na michakato yake ya ndani
alias ll='ls -la'kifupi cha amri
source ~/.bashrckusoma upya profaili bila kutoka na kuingia tena
crontab -e / crontab -lkuhariri / kuonyesha kazi za cron

Michakato

AmriKazi yake
ps auxmichakato yote pamoja na mtumiaji, CPU na kumbukumbu
ps aux | grep nginxkutafuta mchakato
pgrep -a nginxPID na mstari wa amri kwa jina
top / htopmzigo wa mfumo kwa wakati halisi
kill 1234kuomba mchakato usimame (SIGTERM)
kill -9 1234kuulazimisha usimame (SIGKILL) — suluhisho la mwisho
pkill -f "python app.py"kusimamisha kwa kulingana na mstari wa amri
command &, jobs, fgkuendesha nyuma na kusimamia kazi
nohup ./job.sh &mchakato utaendelea baada ya terminal kufungwa
free -hkumbukumbu na swap
uptimemuda wa mfumo kuwa hai na wastani wa mzigo
strace -p 1234system calls za mchakato

Huduma na kumbukumbu (systemd)

AmriKazi yake
systemctl status nginxhali ya huduma na mistari ya mwisho ya kumbukumbu
sudo systemctl start|stop|restart nginxkuanzisha, kusimamisha, kuanzisha upya
sudo systemctl reload nginxkusoma upya usanidi bila kusimamisha
sudo systemctl enable --now nginxkuwasha kuanza kiotomatiki na kuanzisha sasa
systemctl --failedvipengele (units) vilivyoshindwa
journalctl -u nginx -fkumbukumbu za huduma kwa wakati halisi
journalctl -u nginx --since "1 hour ago"kumbukumbu za saa moja iliyopita
journalctl -p err -bmakosa tangu kuwasha mara ya mwisho

Kutafuta faili

AmriKazi yake
find /var/log -name "*.log"kutafuta kwa jina
find . -type f -mtime -1faili zilizobadilishwa katika saa 24 zilizopita
find / -size +500M 2>/dev/nullfaili kubwa; makosa ya ufikiaji yamefichwa
find . -name "*.tmp" -deletekutafuta kisha kufuta
du -sh *ukubwa wa kila kitu kwenye saraka
df -hnafasi iliyobaki kwenye mifumo ya faili

Utafutaji na usindikaji wa maandishi: grep, sed, awk, jq

AmriKazi yake
grep "error" app.logmistari yenye neno hilo
grep -i -n "error" app.logbila kujali herufi kubwa/ndogo, pamoja na namba za mistari
grep -r "listen" /etc/nginx/kwa kurudia ndani ya saraka
grep -v "DEBUG" app.logmistari ambayo neno halimo
grep -c "500" access.logidadi ya mechi
grep -E "warn|error" app.logusemi wa kawaida uliopanuliwa
sed 's/old/new/g' filekubadilisha na kuonyesha matokeo
sed -i 's/8080/9090/' app.confkubadilisha moja kwa moja ndani ya faili
sed -n '10,20p' filekuonyesha mistari 10–20
awk '{print $1}' access.logsehemu ya kwanza ya kila mstari
awk -F: '{print $1}' /etc/passwdmajina ya watumiaji (kitenganishi :)
awk '$9 == 500' access.logmistari ambapo sehemu ya tisa ni 500
sort | uniq -c | sort -rnkuhesabu marudio na kupanga kwa mara nyingi zaidi
cut -d, -f2 data.csvsafu ya pili ya CSV
jq '.items[].name' data.jsonkutoa sehemu kutoka JSON

Mfano wa mnyororo: anwani kumi za IP zenye maombi mengi zaidi kwa nginx.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

Kuelekeza upya na mabomba (pipes)

MuundoKazi yake
cmd > out.txtkuandika matokeo kwenye faili (kubadilisha)
cmd >> out.txtkuongeza mwishoni mwa faili
cmd 2> err.txtkuelekeza makosa
cmd > all.log 2>&1matokeo na makosa kwenye faili moja
cmd1 | cmd2kupeleka matokeo ya amri moja kama ingizo la nyingine
cmd | tee out.txtkuonyesha skrini na kuhifadhi kwa wakati mmoja
cmd1 && cmd2kutekeleza ya pili tu ikiwa ya kwanza imefanikiwa
cmd1 || cmd2kutekeleza ya pili ikiwa ya kwanza imeshindwa

Kuhifadhi na kubana faili (archives)

AmriKazi yake
tar -czf backup.tar.gz dir/kufungasha na kubana kwa gzip
tar -xzf backup.tar.gzkufungua
tar -tzf backup.tar.gzkuangalia yaliyomo
zip -r site.zip site/ / unzip site.zipkumbukumbu za zip

Mtandao

AmriKazi yake
ip aviolesura na anwani za IP
ip rjedwali la njia (routes)
ping -c 4 8.8.8.8kuangalia kama kompyuta inafikika
ss -tulpnport zilizo wazi na michakato inayozitumia
dig example.com / nslookup example.comombi la DNS
curl -I https://example.comvichwa vya jibu tu
curl -s https://api.example.com | jqombi kwa API na JSON iliyopangwa vizuri
wget URLkupakua faili
traceroute example.comnjia ambayo pakiti hupitia hadi kwenye kompyuta
ssh user@hostkuunganisha kwenye seva
ssh-keygen -t ed25519kuunda jozi ya funguo za SSH
scp file user@host:/tmp/kunakili faili kwenda kwenye seva
rsync -avz dir/ user@host:/srv/dir/kusawazisha saraka
sudo ufw statuskanuni za firewall

Mfumo na diski

AmriKazi yake
uname -akernel na aina ya usanifu
cat /etc/os-releasedistro na toleo lake
hostnamectljina la kompyuta na taarifa za mfumo
lsblkdiski na partitions
sudo mount /dev/sdb1 /mntkuunganisha partition
who / wnani yuko kwenye mfumo sasa
sudo reboot / sudo shutdown -h nowkuwasha upya / kuzima

Muhtasari

Kwa kazi ya kila siku, amri chache kadhaa zinatosha: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl na ssh. Hifadhi karatasi hii ya amri za Linux na uitazame mara kwa mara hadi amri hizi ziwe za kawaida kwako. Makundi yote ya amri haya yanafundishwa kwa vitendo katika kozi ya Linux.

Maswali ya mara kwa mara

Nitoke vipi kwenye man au less?

Bonyeza q. Kutafuta ndani ya ukurasa, andika kistari cha mbele (/) ikifuatiwa na neno; n inaenda kwenye mechi inayofuata.

Nitoke vipi kwenye kihariri cha vim?

Bonyeza Esc, kisha andika :q! na Enter ili utoke bila kuhifadhi, au :wq kuhifadhi na kutoka. Wanaoanza wanaweza kuhariri faili kwa nano kwa urahisi zaidi.

Kwa nini rm -rf ni hatari?

Amri hii hufuta bila kuuliza na bila recycle bin, kwa hiyo kosa moja la njia (kwa mfano nafasi isiyotakiwa kabla ya nyota) linaweza kufuta saraka isiyokusudiwa. Kagua njia kwa ls kabla ya kuendesha.

Nitarudiaje amri ya mwisho na sudo?

Andika sudo !! — shell itaweka amri iliyotangulia yote.

Nitasimamishaje amri iliyokwama kwenye terminal?

Ctrl+C hutuma ishara ya kusimamisha. Amri isipoitikia, tafuta PID yake kwa ps au pgrep kwenye terminal nyingine, kisha isimamishe kwa kill.