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
| Amri | Kazi yake |
man ls | mwongozo kamili wa amri, kutoka kwa q, kutafuta /neno |
ls --help | msaada mfupi wa chaguo |
type cd | ni nini: amri ya ndani ya shell, alias, au faili |
which python3 | njia ya faili inayoweza kutekelezwa |
history | historia ya amri; !123 hurudia amri namba 123 |
Ctrl+R | kutafuta kwenye historia |
Ctrl+C / Ctrl+D | kusimamisha amri / kufunga shell |
Urambazaji wa mfumo wa faili
| Amri | Kazi yake |
pwd | saraka ya sasa |
ls -la | faili zote pamoja na zilizofichwa, zikiwa na ruhusa na ukubwa |
ls -lh | ukubwa katika muundo rahisi kusoma (K, M, G) |
ls -lt | kupanga kwa muda wa mabadiliko |
cd /var/log | kuhamia kwa njia kamili |
cd .. / cd ~ / cd - | ngazi moja juu / nyumbani / saraka iliyotangulia |
tree -L 2 | mti wa saraka wa ngazi 2 (kifurushi tree) |
Kazi na faili na saraka
| Amri | Kazi yake |
touch file.txt | kuunda faili tupu au kusasisha muda wa mabadiliko |
mkdir -p a/b/c | kuunda saraka pamoja na za mzazi |
cp file.txt backup.txt | kunakili faili |
cp -r src/ dst/ | kunakili saraka kwa kurudia |
mv old.txt new.txt | kubadilisha jina au kuhamisha |
rm file.txt | kufuta faili (bila recycle bin) |
rm -r dir/ | kufuta saraka pamoja na yaliyomo; -f bila kuuliza, kuwa makini |
rmdir dir | kufuta saraka tupu |
ln -s /opt/app/current app | kiungo cha ishara (symbolic link) |
stat file.txt | maelezo: ukubwa, ruhusa, inode, tarehe |
file image.bin | kubaini aina ya faili kutoka yaliyomo |
Kuangalia yaliyomo
| Amri | Kazi yake |
cat file | kuonyesha faili lote |
less file | kusoma ukurasa kwa ukurasa, kutafuta /, kutoka q |
head -n 20 file | mistari 20 ya kwanza |
tail -n 50 file | mistari 50 ya mwisho |
tail -f /var/log/syslog | kufuatilia faili kwa wakati halisi |
wc -l file | idadi ya mistari |
diff a.conf b.conf | tofauti kati ya faili |
Ruhusa na wamiliki
| Amri | Kazi yake |
chmod +x script.sh | kuruhusu kutekelezwa |
chmod 644 file | rw-r--r--: mmiliki anaandika, wengine wanasoma |
chmod 755 dir | rwxr-xr-x: ya kawaida kwa saraka na skripti |
chmod 600 ~/.ssh/id_ed25519 | mmiliki pekee: kwa funguo binafsi |
sudo chown www-data:www-data file | kubadilisha mmiliki na kundi |
sudo chown -R alice /srv/app | kubadilisha mmiliki kwa kurudia |
id | UID, GID na makundi yako |
sudo -i | shell ya root |
sudo usermod -aG docker alice | kumwongeza mtumiaji kwenye kundi |
Vifurushi (apt, Debian na Ubuntu)
| Amri | Kazi yake |
sudo apt update | kusasisha orodha ya vifurushi kutoka kwenye hazina |
sudo apt upgrade | kusasisha vifurushi vilivyosakinishwa |
sudo apt install nginx | kusakinisha kifurushi |
sudo apt remove nginx | kuondoa, usanidi ukibaki; purge huondoa pamoja na usanidi |
sudo apt autoremove | kuondoa utegemezi usiohitajika tena |
apt search htop | kutafuta kifurushi |
apt show nginx | maelezo na toleo |
dpkg -l | grep nginx | kuangalia kama kifurushi kimesakinishwa |
dpkg -L nginx | faili ambazo kifurushi kilisakinisha |
Kwenye RHEL, Fedora na Rocky Linux, amri zinazolingana ni dnf install, dnf remove, dnf upgrade, na rpm -qa.
Mazingira na profaili
| Amri | Kazi yake |
echo $PATH | mahali shell inapotafuta programu |
env | variables zote za mazingira |
export APP_ENV=prod | kuweka variable kwa kipindi cha sasa na michakato yake ya ndani |
alias ll='ls -la' | kifupi cha amri |
source ~/.bashrc | kusoma upya profaili bila kutoka na kuingia tena |
crontab -e / crontab -l | kuhariri / kuonyesha kazi za cron |
Michakato
| Amri | Kazi yake |
ps aux | michakato yote pamoja na mtumiaji, CPU na kumbukumbu |
ps aux | grep nginx | kutafuta mchakato |
pgrep -a nginx | PID na mstari wa amri kwa jina |
top / htop | mzigo wa mfumo kwa wakati halisi |
kill 1234 | kuomba mchakato usimame (SIGTERM) |
kill -9 1234 | kuulazimisha usimame (SIGKILL) — suluhisho la mwisho |
pkill -f "python app.py" | kusimamisha kwa kulingana na mstari wa amri |
command &, jobs, fg | kuendesha nyuma na kusimamia kazi |
nohup ./job.sh & | mchakato utaendelea baada ya terminal kufungwa |
free -h | kumbukumbu na swap |
uptime | muda wa mfumo kuwa hai na wastani wa mzigo |
strace -p 1234 | system calls za mchakato |
Huduma na kumbukumbu (systemd)
| Amri | Kazi yake |
systemctl status nginx | hali ya huduma na mistari ya mwisho ya kumbukumbu |
sudo systemctl start|stop|restart nginx | kuanzisha, kusimamisha, kuanzisha upya |
sudo systemctl reload nginx | kusoma upya usanidi bila kusimamisha |
sudo systemctl enable --now nginx | kuwasha kuanza kiotomatiki na kuanzisha sasa |
systemctl --failed | vipengele (units) vilivyoshindwa |
journalctl -u nginx -f | kumbukumbu za huduma kwa wakati halisi |
journalctl -u nginx --since "1 hour ago" | kumbukumbu za saa moja iliyopita |
journalctl -p err -b | makosa tangu kuwasha mara ya mwisho |
Kutafuta faili
| Amri | Kazi yake |
find /var/log -name "*.log" | kutafuta kwa jina |
find . -type f -mtime -1 | faili zilizobadilishwa katika saa 24 zilizopita |
find / -size +500M 2>/dev/null | faili kubwa; makosa ya ufikiaji yamefichwa |
find . -name "*.tmp" -delete | kutafuta kisha kufuta |
du -sh * | ukubwa wa kila kitu kwenye saraka |
df -h | nafasi iliyobaki kwenye mifumo ya faili |
Utafutaji na usindikaji wa maandishi: grep, sed, awk, jq
| Amri | Kazi yake |
grep "error" app.log | mistari yenye neno hilo |
grep -i -n "error" app.log | bila kujali herufi kubwa/ndogo, pamoja na namba za mistari |
grep -r "listen" /etc/nginx/ | kwa kurudia ndani ya saraka |
grep -v "DEBUG" app.log | mistari ambayo neno halimo |
grep -c "500" access.log | idadi ya mechi |
grep -E "warn|error" app.log | usemi wa kawaida uliopanuliwa |
sed 's/old/new/g' file | kubadilisha na kuonyesha matokeo |
sed -i 's/8080/9090/' app.conf | kubadilisha moja kwa moja ndani ya faili |
sed -n '10,20p' file | kuonyesha mistari 10–20 |
awk '{print $1}' access.log | sehemu ya kwanza ya kila mstari |
awk -F: '{print $1}' /etc/passwd | majina ya watumiaji (kitenganishi :) |
awk '$9 == 500' access.log | mistari ambapo sehemu ya tisa ni 500 |
sort | uniq -c | sort -rn | kuhesabu marudio na kupanga kwa mara nyingi zaidi |
cut -d, -f2 data.csv | safu ya pili ya CSV |
jq '.items[].name' data.json | kutoa 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)
| Muundo | Kazi yake |
cmd > out.txt | kuandika matokeo kwenye faili (kubadilisha) |
cmd >> out.txt | kuongeza mwishoni mwa faili |
cmd 2> err.txt | kuelekeza makosa |
cmd > all.log 2>&1 | matokeo na makosa kwenye faili moja |
cmd1 | cmd2 | kupeleka matokeo ya amri moja kama ingizo la nyingine |
cmd | tee out.txt | kuonyesha skrini na kuhifadhi kwa wakati mmoja |
cmd1 && cmd2 | kutekeleza ya pili tu ikiwa ya kwanza imefanikiwa |
cmd1 || cmd2 | kutekeleza ya pili ikiwa ya kwanza imeshindwa |
Kuhifadhi na kubana faili (archives)
| Amri | Kazi yake |
tar -czf backup.tar.gz dir/ | kufungasha na kubana kwa gzip |
tar -xzf backup.tar.gz | kufungua |
tar -tzf backup.tar.gz | kuangalia yaliyomo |
zip -r site.zip site/ / unzip site.zip | kumbukumbu za zip |
Mtandao
| Amri | Kazi yake |
ip a | violesura na anwani za IP |
ip r | jedwali la njia (routes) |
ping -c 4 8.8.8.8 | kuangalia kama kompyuta inafikika |
ss -tulpn | port zilizo wazi na michakato inayozitumia |
dig example.com / nslookup example.com | ombi la DNS |
curl -I https://example.com | vichwa vya jibu tu |
curl -s https://api.example.com | jq | ombi kwa API na JSON iliyopangwa vizuri |
wget URL | kupakua faili |
traceroute example.com | njia ambayo pakiti hupitia hadi kwenye kompyuta |
ssh user@host | kuunganisha kwenye seva |
ssh-keygen -t ed25519 | kuunda 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 status | kanuni za firewall |
Mfumo na diski
| Amri | Kazi yake |
uname -a | kernel na aina ya usanifu |
cat /etc/os-release | distro na toleo lake |
hostnamectl | jina la kompyuta na taarifa za mfumo |
lsblk | diski na partitions |
sudo mount /dev/sdb1 /mnt | kuunganisha partition |
who / w | nani yuko kwenye mfumo sasa |
sudo reboot / sudo shutdown -h now | kuwasha 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.
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.