Cheat sheet

Linux commands: cheat sheet para sa baguhan at administrator

Na-update: · Skillaria.Top

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

UtosGinagawa
man lsbuong manwal ng utos; lumabas gamit ang q, maghanap gamit ang /salita
ls --helpmaikling tulong tungkol sa mga opsyon
type cdsinasabi kung built-in na utos, alias, o file
which python3path ng executable file
historykasaysayan ng utos; ang !123 ay uulitin ang utos numero 123
Ctrl+Rmaghanap sa kasaysayan
Ctrl+C / Ctrl+Ditigil ang utos / isara ang shell
UtosGinagawa
pwdkasalukuyang direktoryo
ls -lalahat ng file, kasama ang nakatagong file, kasama ang permission at laki
ls -lhlaki sa madaling basahing anyo (K, M, G)
ls -ltpagsunod-sunurin ayon sa oras ng pagbabago
cd /var/logpumunta sa absolute path
cd .. / cd ~ / cd -isang antas pataas / home / nakaraang direktoryo
tree -L 2puno ng direktoryo na 2 antas (package na tree)

Pagtatrabaho sa file at direktoryo

UtosGinagawa
touch file.txtgumawa ng blangkong file o i-update ang oras ng pagbabago
mkdir -p a/b/cgumawa ng mga direktoryo kasama ang parent directory
cp file.txt backup.txtkopyahin ang file
cp -r src/ dst/kopyahin ang direktoryo nang recursive
mv old.txt new.txtpalitan ang pangalan o ilipat
rm file.txtburahin ang file (walang recycle bin)
rm -r dir/burahin ang direktoryo kasama ang laman; -f — walang tanong, mag-ingat
rmdir dirburahin ang walang lamang direktoryo
ln -s /opt/app/current appsymbolic link
stat file.txtdetalye: laki, permission, inode, petsa
file image.bintukuyin ang uri ng file batay sa nilalaman

Pagtingin sa nilalaman

UtosGinagawa
cat fileipakita ang buong file
less filetingnan page-by-page, maghanap gamit ang /, lumabas gamit ang q
head -n 20 fileunang 20 linya
tail -n 50 filehuling 50 linya
tail -f /var/log/syslogsubaybayan ang file nang real time
wc -l filebilang ng linya
diff a.conf b.confpagkakaiba ng dalawang file

Permission at may-ari

UtosGinagawa
chmod +x script.shpayagan ang pagpapatakbo
chmod 644 filerw-r--r--: nakasusulat ang may-ari, nababasa ng iba
chmod 755 dirrwxr-xr-x: karaniwan para sa direktoryo at script
chmod 600 ~/.ssh/id_ed25519may-ari lamang: para sa private key
sudo chown www-data:www-data filepalitan ang may-ari at grupo
sudo chown -R alice /srv/apppalitan ang may-ari nang recursive
idang iyong UID, GID, at mga grupo
sudo -imagbukas ng shell bilang root
sudo usermod -aG docker aliceidagdag ang user sa grupo

Mga package (apt, Debian at Ubuntu)

UtosGinagawa
sudo apt updatei-refresh ang listahan ng package mula sa repository
sudo apt upgradei-upgrade ang mga naka-install na package
sudo apt install nginxmag-install ng package
sudo apt remove nginxtanggalin, iiwan ang config; purge — kasama ang config
sudo apt autoremoveburahin ang mga dependency na hindi na kailangan
apt search htopmaghanap ng package
apt show nginxdeskripsyon at bersyon
dpkg -l | grep nginxtingnan kung naka-install ang package
dpkg -L nginxanong 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

UtosGinagawa
echo $PATHsaang direktoryo hinahanap ng shell ang mga programa
envlahat ng environment variable
export APP_ENV=prodmagtakda ng variable para sa kasalukuyang session at child process
alias ll='ls -la'shortcut para sa utos
source ~/.bashrci-reload ang profile nang hindi nag-log out
crontab -e / crontab -li-edit / ipakita ang mga cron job

Mga process

UtosGinagawa
ps auxlahat ng process kasama ang user, CPU, at memorya
ps aux | grep nginxhanapin ang process
pgrep -a nginxPID at command line ayon sa pangalan
top / htopload ng sistema sa real time
kill 1234hilingin sa process na tapusin ang sarili (SIGTERM)
kill -9 1234pilitin itong tapusin (SIGKILL) — huling paraan
pkill -f "python app.py"tapusin ayon sa tugma ng command line
command &, jobs, fgpatakbuhin sa background at pamahalaan ang mga job
nohup ./job.sh &mabubuhay ang process kahit isara ang terminal
free -hmemorya at swap
uptimetagal ng pagtakbo at average load
strace -p 1234system call ng process

Mga serbisyo at log (systemd)

UtosGinagawa
systemctl status nginxestado ng serbisyo at mga huling linya ng log
sudo systemctl start|stop|restart nginxsimulan, ihinto, o i-restart
sudo systemctl reload nginxi-reload ang config nang hindi humihinto
sudo systemctl enable --now nginxpaganahin ang autostart at simulan agad
systemctl --failedmga unit na bumagsak
journalctl -u nginx -flog ng serbisyo sa real time
journalctl -u nginx --since "1 hour ago"log ng nakaraang oras
journalctl -p err -bmga error mula noong huling boot

Paghahanap ng file

UtosGinagawa
find /var/log -name "*.log"maghanap ayon sa pangalan
find . -type f -mtime -1mga file na binago sa nakaraang 24 na oras
find / -size +500M 2>/dev/nullmalalaking file, nakatago ang mga access error
find . -name "*.tmp" -deletehanapin at burahin
du -sh *laki ng bawat item sa direktoryo
df -hbakanteng espasyo sa mga file system

Paghahanap at pagproseso ng teksto: grep, sed, awk, jq

UtosGinagawa
grep "error" app.logmga linyang may salitang hinahanap
grep -i -n "error" app.logwalang 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.logmga linyang walang salitang iyon
grep -c "500" access.logbilang ng mga tugma
grep -E "warn|error" app.logextended regular expression
sed 's/old/new/g' filepalitan at ipakita ang resulta
sed -i 's/8080/9090/' app.confpalitan nang diretso sa file
sed -n '10,20p' fileipakita ang mga linya 10 hanggang 20
awk '{print $1}' access.logunang field ng bawat linya
awk -F: '{print $1}' /etc/passwdmga pangalan ng user (separator ay :)
awk '$9 == 500' access.logmga linyang ang ikasiyam na field ay 500
sort | uniq -c | sort -rnbilangin ang mga paulit-ulit at i-sort ayon sa dalas
cut -d, -f2 data.csvikalawang column ng CSV
jq '.items[].name' data.jsonkunin 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

KonstruksyonGinagawa
cmd > out.txtisulat ang output sa file (i-overwrite)
cmd >> out.txtidagdag sa dulo ng file
cmd 2> err.txti-redirect ang mga error
cmd > all.log 2>&1output at error sa iisang file
cmd1 | cmd2ipasa ang output ng isang utos bilang input ng isa pa
cmd | tee out.txtipakita sa screen at i-save din
cmd1 && cmd2patakbuhin ang pangalawa kung matagumpay ang una
cmd1 || cmd2patakbuhin ang pangalawa kung bumagsak ang una

Mga archive

UtosGinagawa
tar -czf backup.tar.gz dir/i-pack at i-compress gamit ang gzip
tar -xzf backup.tar.gzi-extract
tar -tzf backup.tar.gztingnan ang laman
zip -r site.zip site/ / unzip site.zipzip archive

Network

UtosGinagawa
ip amga interface at IP address
ip rrouting table
ping -c 4 8.8.8.8suriin kung maaabot ang host
ss -tulpnmga bukas na port at ang process na gumagamit nito
dig example.com / nslookup example.comDNS query
curl -I https://example.comheader lamang ng response
curl -s https://api.example.com | jqtumawag sa API at ipakita nang maayos ang JSON
wget URLmag-download ng file
traceroute example.comruta ng mga packet papunta sa host
ssh user@hostkumonekta sa server
ssh-keygen -t ed25519gumawa 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 statusmga firewall rule

Sistema at disk

UtosGinagawa
uname -akernel at arkitektura
cat /etc/os-releasedistribution at bersyon
hostnamectlhostname at impormasyon ng sistema
lsblkmga disk at partition
sudo mount /dev/sdb1 /mnti-mount ang partition
who / wsino ang nasa sistema ngayon
sudo reboot / sudo shutdown -h nowmag-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.

Mga madalas itanong

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.