Nahahati sa mga grupo ang pangunahing Linux commands: navigation (pwd, ls, cd), file (cp, mv, rm, mkdir), permission (chmod, chown), package (apt), process (ps, top, kill), paghahanap at pagproseso ng teksto (find, grep, sed, awk), network (ip, ss, curl), at serbisyo (systemctl, journalctl). Nasa ibaba ang mga talahanayan ng utos na may halimbawa, sapat para sa karamihan ng araw-araw na gawain sa terminal.
Inayos ayon sa gawain ang cheat sheet na ito ng Linux commands: maghanap ng file, mag-install ng package, pumatay ng process na nag-hang, kumuha ng linya mula sa log, o suriin ang port. Nasubukan ang mga utos sa Ubuntu at Debian; halos lahat ay gumagana rin sa ibang distribution, pangunahing nagkakaiba ang mga package manager.
Tulong at mga pahiwatig
| Utos | Ginagawa |
man ls | buong manwal ng utos; lumabas gamit ang q, maghanap gamit ang /salita |
ls --help | maikling tulong tungkol sa mga opsyon |
type cd | sinasabi kung built-in na utos, alias, o file |
which python3 | path ng executable file |
history | kasaysayan ng utos; ang !123 ay uulitin ang utos numero 123 |
Ctrl+R | maghanap sa kasaysayan |
Ctrl+C / Ctrl+D | itigil ang utos / isara ang shell |
Navigation sa file system
| Utos | Ginagawa |
pwd | kasalukuyang direktoryo |
ls -la | lahat ng file, kasama ang nakatagong file, kasama ang permission at laki |
ls -lh | laki sa madaling basahing anyo (K, M, G) |
ls -lt | pagsunod-sunurin ayon sa oras ng pagbabago |
cd /var/log | pumunta sa absolute path |
cd .. / cd ~ / cd - | isang antas pataas / home / nakaraang direktoryo |
tree -L 2 | puno ng direktoryo na 2 antas (package na tree) |
Pagtatrabaho sa file at direktoryo
| Utos | Ginagawa |
touch file.txt | gumawa ng blangkong file o i-update ang oras ng pagbabago |
mkdir -p a/b/c | gumawa ng mga direktoryo kasama ang parent directory |
cp file.txt backup.txt | kopyahin ang file |
cp -r src/ dst/ | kopyahin ang direktoryo nang recursive |
mv old.txt new.txt | palitan ang pangalan o ilipat |
rm file.txt | burahin ang file (walang recycle bin) |
rm -r dir/ | burahin ang direktoryo kasama ang laman; -f — walang tanong, mag-ingat |
rmdir dir | burahin ang walang lamang direktoryo |
ln -s /opt/app/current app | symbolic link |
stat file.txt | detalye: laki, permission, inode, petsa |
file image.bin | tukuyin ang uri ng file batay sa nilalaman |
Pagtingin sa nilalaman
| Utos | Ginagawa |
cat file | ipakita ang buong file |
less file | tingnan page-by-page, maghanap gamit ang /, lumabas gamit ang q |
head -n 20 file | unang 20 linya |
tail -n 50 file | huling 50 linya |
tail -f /var/log/syslog | subaybayan ang file nang real time |
wc -l file | bilang ng linya |
diff a.conf b.conf | pagkakaiba ng dalawang file |
Permission at may-ari
| Utos | Ginagawa |
chmod +x script.sh | payagan ang pagpapatakbo |
chmod 644 file | rw-r--r--: nakasusulat ang may-ari, nababasa ng iba |
chmod 755 dir | rwxr-xr-x: karaniwan para sa direktoryo at script |
chmod 600 ~/.ssh/id_ed25519 | may-ari lamang: para sa private key |
sudo chown www-data:www-data file | palitan ang may-ari at grupo |
sudo chown -R alice /srv/app | palitan ang may-ari nang recursive |
id | ang iyong UID, GID, at mga grupo |
sudo -i | magbukas ng shell bilang root |
sudo usermod -aG docker alice | idagdag ang user sa grupo |
Mga package (apt, Debian at Ubuntu)
| Utos | Ginagawa |
sudo apt update | i-refresh ang listahan ng package mula sa repository |
sudo apt upgrade | i-upgrade ang mga naka-install na package |
sudo apt install nginx | mag-install ng package |
sudo apt remove nginx | tanggalin, iiwan ang config; purge — kasama ang config |
sudo apt autoremove | burahin ang mga dependency na hindi na kailangan |
apt search htop | maghanap ng package |
apt show nginx | deskripsyon at bersyon |
dpkg -l | grep nginx | tingnan kung naka-install ang package |
dpkg -L nginx | anong mga file ang inilagay ng package |
Sa RHEL, Fedora, at Rocky Linux, ang katumbas ay dnf install, dnf remove, dnf upgrade, at rpm -qa.
Environment at profile
| Utos | Ginagawa |
echo $PATH | saang direktoryo hinahanap ng shell ang mga programa |
env | lahat ng environment variable |
export APP_ENV=prod | magtakda ng variable para sa kasalukuyang session at child process |
alias ll='ls -la' | shortcut para sa utos |
source ~/.bashrc | i-reload ang profile nang hindi nag-log out |
crontab -e / crontab -l | i-edit / ipakita ang mga cron job |
Mga process
| Utos | Ginagawa |
ps aux | lahat ng process kasama ang user, CPU, at memorya |
ps aux | grep nginx | hanapin ang process |
pgrep -a nginx | PID at command line ayon sa pangalan |
top / htop | load ng sistema sa real time |
kill 1234 | hilingin sa process na tapusin ang sarili (SIGTERM) |
kill -9 1234 | pilitin itong tapusin (SIGKILL) — huling paraan |
pkill -f "python app.py" | tapusin ayon sa tugma ng command line |
command &, jobs, fg | patakbuhin sa background at pamahalaan ang mga job |
nohup ./job.sh & | mabubuhay ang process kahit isara ang terminal |
free -h | memorya at swap |
uptime | tagal ng pagtakbo at average load |
strace -p 1234 | system call ng process |
Mga serbisyo at log (systemd)
| Utos | Ginagawa |
systemctl status nginx | estado ng serbisyo at mga huling linya ng log |
sudo systemctl start|stop|restart nginx | simulan, ihinto, o i-restart |
sudo systemctl reload nginx | i-reload ang config nang hindi humihinto |
sudo systemctl enable --now nginx | paganahin ang autostart at simulan agad |
systemctl --failed | mga unit na bumagsak |
journalctl -u nginx -f | log ng serbisyo sa real time |
journalctl -u nginx --since "1 hour ago" | log ng nakaraang oras |
journalctl -p err -b | mga error mula noong huling boot |
Paghahanap ng file
| Utos | Ginagawa |
find /var/log -name "*.log" | maghanap ayon sa pangalan |
find . -type f -mtime -1 | mga file na binago sa nakaraang 24 na oras |
find / -size +500M 2>/dev/null | malalaking file, nakatago ang mga access error |
find . -name "*.tmp" -delete | hanapin at burahin |
du -sh * | laki ng bawat item sa direktoryo |
df -h | bakanteng espasyo sa mga file system |
Paghahanap at pagproseso ng teksto: grep, sed, awk, jq
| Utos | Ginagawa |
grep "error" app.log | mga linyang may salitang hinahanap |
grep -i -n "error" app.log | walang pakialam sa malaki/maliit na titik, kasama ang numero ng linya |
grep -r "listen" /etc/nginx/ | recursive na paghahanap sa direktoryo |
grep -v "DEBUG" app.log | mga linyang walang salitang iyon |
grep -c "500" access.log | bilang ng mga tugma |
grep -E "warn|error" app.log | extended regular expression |
sed 's/old/new/g' file | palitan at ipakita ang resulta |
sed -i 's/8080/9090/' app.conf | palitan nang diretso sa file |
sed -n '10,20p' file | ipakita ang mga linya 10 hanggang 20 |
awk '{print $1}' access.log | unang field ng bawat linya |
awk -F: '{print $1}' /etc/passwd | mga pangalan ng user (separator ay :) |
awk '$9 == 500' access.log | mga linyang ang ikasiyam na field ay 500 |
sort | uniq -c | sort -rn | bilangin ang mga paulit-ulit at i-sort ayon sa dalas |
cut -d, -f2 data.csv | ikalawang column ng CSV |
jq '.items[].name' data.json | kunin ang mga field mula sa JSON |
Halimbawa ng pipeline: ang sampung IP address na pinakamaraming nag-request sa nginx.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Redirection at pipeline
| Konstruksyon | Ginagawa |
cmd > out.txt | isulat ang output sa file (i-overwrite) |
cmd >> out.txt | idagdag sa dulo ng file |
cmd 2> err.txt | i-redirect ang mga error |
cmd > all.log 2>&1 | output at error sa iisang file |
cmd1 | cmd2 | ipasa ang output ng isang utos bilang input ng isa pa |
cmd | tee out.txt | ipakita sa screen at i-save din |
cmd1 && cmd2 | patakbuhin ang pangalawa kung matagumpay ang una |
cmd1 || cmd2 | patakbuhin ang pangalawa kung bumagsak ang una |
Mga archive
| Utos | Ginagawa |
tar -czf backup.tar.gz dir/ | i-pack at i-compress gamit ang gzip |
tar -xzf backup.tar.gz | i-extract |
tar -tzf backup.tar.gz | tingnan ang laman |
zip -r site.zip site/ / unzip site.zip | zip archive |
Network
| Utos | Ginagawa |
ip a | mga interface at IP address |
ip r | routing table |
ping -c 4 8.8.8.8 | suriin kung maaabot ang host |
ss -tulpn | mga bukas na port at ang process na gumagamit nito |
dig example.com / nslookup example.com | DNS query |
curl -I https://example.com | header lamang ng response |
curl -s https://api.example.com | jq | tumawag sa API at ipakita nang maayos ang JSON |
wget URL | mag-download ng file |
traceroute example.com | ruta ng mga packet papunta sa host |
ssh user@host | kumonekta sa server |
ssh-keygen -t ed25519 | gumawa ng SSH key pair |
scp file user@host:/tmp/ | kopyahin ang file papunta sa server |
rsync -avz dir/ user@host:/srv/dir/ | i-sync ang direktoryo |
sudo ufw status | mga firewall rule |
Sistema at disk
| Utos | Ginagawa |
uname -a | kernel at arkitektura |
cat /etc/os-release | distribution at bersyon |
hostnamectl | hostname at impormasyon ng sistema |
lsblk | mga disk at partition |
sudo mount /dev/sdb1 /mnt | i-mount ang partition |
who / w | sino ang nasa sistema ngayon |
sudo reboot / sudo shutdown -h now | mag-reboot / mag-shutdown |
Buod
Para sa araw-araw na trabaho, sapat na ang ilang dosenang utos: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl, at ssh. I-save ang cheat sheet na ito ng Linux commands at balikan hanggang sumanib sa mga kamay mo ang mga utos. Itinuturo nang praktikal ang lahat ng pangkat ng utos sa kursong Linux.
Paano lumabas sa man o less?
Pindutin ang q. Para maghanap sa loob, i-type ang slash at ang salita; ang n ay papunta sa susunod na tugma.
Paano lumabas sa vim editor?
Pindutin ang Esc, i-type ang :q! at Enter para lumabas nang hindi nagse-save, o :wq para mag-save at lumabas. Mas madali para sa baguhan ang nano.
Bakit delikado ang rm -rf?
Binubura nito agad nang walang kumpirmasyon at walang recycle bin, kaya ang maling path (halimbawa, may dagdag na espasyo bago ang asterisk) ay maaaring makabura ng maling direktoryo. I-check muna ang path gamit ang ls bago patakbuhin.
Paano uulitin ang huling utos gamit ang sudo?
I-type ang sudo !! — ipapalit ng shell ang buong nakaraang utos.
Paano ihihinto ang utos na nag-hang sa terminal?
Ang Ctrl+C ay nagpapadala ng interrupt signal. Kung hindi pa rin tumutugon, hanapin ang PID gamit ang ps o pgrep sa ibang terminal at tapusin ito gamit ang kill.