เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

ะ’ เช›เซ‡เชฒเซเชฒเซ‹ เชญเชพเช— เช…เชฎเซ‡ เชŸเชฐเซเชฎเช•เซเชธเชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เช†เชฆเซ‡เชถเซ‹เชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชฅเชฏเชพ, เชชเซ€เชธเซ€เชฎเชพเช‚ SSH เช•เชจเซ‡เช•เซเชถเชจ เชธเซ‡เชŸ เช•เชฐเซเชฏเซเช‚, เช‰เชชเชจเชพเชฎ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚ เชคเซ‡ เชถเซ€เช–เซเชฏเชพ เช…เชจเซ‡ เช˜เชฃเซ€ เช‰เชชเชฏเซ‹เช—เซ€ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€. เช† เชตเช–เชคเซ‡ เช…เชฎเชพเชฐเซ‡ เชตเชงเซ เช†เช—เชณ เชตเชงเชตเชพเชจเซเช‚ เช›เซ‡, เช…เชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เช›เซ€เช:

  • Termux:API เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‹
  • เชชเชพเชฏเชฅเซ‹เชจ เช…เชจเซ‡ เชจเซ‡เชจเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช…เชจเซ‡ "เชนเซ‡เชฒเซ‹, เชตเชฐเซเชฒเซเชก!" เชฒเช–เซ‹. เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚
  • เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‹ เช…เชจเซ‡ Termux:API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เซ‹
  • bash เชธเซเช•เซเชฐเชฟเชชเซเชŸ, Termux:API เช…เชจเซ‡ Python เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช†เชชเชฃเซ‡ เชเช• เชธเชฐเชณ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฒเช–เซ€เชถเซเช‚

เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชธเชฎเชœเซ€ เช—เชฏเชพ เช›เซ€เช เช•เซ‡ เช‡เชจเชชเซเชŸ เช•เชฎเชพเชจเซเชก เชถเซเช‚ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชชเช›เซ€เชจเชพ เชชเช—เชฒเชพเชฅเซ€ เชนเซเช‚ เชฆเชฐเซ‡เช• เช•เซเชฐเชฟเชฏเชพเชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเช‚ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชนเซเช‚ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชธเชฎเชœเชพเชตเซ€เชถ.

เชนเซเช‚ เช‰เชชเชจเชพเชฎเซ‹เชจเซ‹ เช˜เชฃเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚, เชคเซ‡เชฅเซ€ เช† เชญเชพเช—เชฎเชพเช‚ เชตเชชเชฐเชพเชฏเซ‡เชฒ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชถเชฌเซเชฆเซ‹ เช…เชนเซ€เช‚ เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:

alias updg='apt update && apt upgrade'
alias py='python'

เชฏเซ‹เชœเชจเชพ เชคเซˆเชฏเชพเชฐ เช›เซ‡, เชคเชฎเซ‡ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹! เช…เชจเซ‡ เช…เชฒเชฌเชคเซเชค, "เชœเชพเชฆเซเชˆ เชŸเซ‡เชฌ" เชตเชฟเชถเซ‡ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚ (เชญเชพเช— 1 เชœเซเช“).

เชชเช—เชฒเซเช‚ 4

เชŸเชฐเซเชฎเช•เซเชธ เชจเซ€เชšเซ‡ เชกเชพเช‡เชตเชฟเช‚เช—: API เชฐเซ‡เชฌเชฟเชŸ เชนเซ‹เชฒ

เช•เซ‹เชกเชฐเชจเชพ เชนเซƒเชฆเชฏ เชฎเชพเชŸเซ‡ เช† เชถเชฌเซเชฆเชฎเชพเช‚ API เช•เซ‡เชŸเชฒเซเช‚ เชญเชณเซ€ เช—เชฏเซเช‚ เช›เซ‡

เชœเซ‹ เช†เชชเชฃเซ‡ เชŸเชฐเซเชฎเช•เซเชธ: API เชจเชพ เชตเชฟเชทเชฏเชจเซ‡ เชธเซเชชเชฐเซเชถเชคเชพ เชจเชฅเซ€, เชคเซ‹ เชชเช›เซ€ เช…เชฎเชพเชฐเชพ เชฌเชงเชพ เชชเช—เชฒเชพเช‚ "เชกเชฎเซ€เช เชฎเชพเชŸเซ‡ เชฒเชฟเชจเช•เซเชธ" เชœเซ‡เชตเชพ เช•เซ‡เชŸเชฒเชพเช• เชฌเซเชฐเซ‹เชถเชฐเชจเชพ เชธเชฐเชณ เชชเซเชจเชƒ เช•เชนเซ‡เชตเชพ เชธเซเชงเซ€ เช˜เชŸเชพเชกเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชชเซเชฐเชฅเชฎ เชญเชพเช—เชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชจเซ‹เช‚เชงเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เชธเซŒเชชเซเชฐเชฅเชฎ, Google Play Market เชฎเชพเช‚เชฅเซ€ Termux:API เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ (เชคเซ‡ เชชเช›เซ€ เชŸเชฐเซเชฎเช•เซเชธเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฅเซ€ เชจเซเช•เชธเชพเชจ เชฅเชคเซเช‚ เชจเชฅเซ€):

เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

เช†เช—เชณ, เช…เชฎเชพเชฐเซ‡ เชŸเชฐเซเชฎเช•เซเชธ เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ API เชชเซ‡เช•เซ‡เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

updg # ะะต ะทะฐะฑั‹ะฒะฐะตะผ ะฟั€ะพ aliasโ€™ั‹
apt install termux-api

เชชเซเชฐเชฏเซ‹เช—เซ‹ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชเชจเซเชกเซเชฐเซ‹เช‡เชก 5.1.1 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚, เชเชจเซเชกเซเชฐเซ‹เช‡เชก 7 เชฎเชพเชฒเชฟเช•เซ‹ เชฎเชพเชŸเซ‡ "เชธเซ‡เชŸเชฟเช‚เช—เซเชธ' > 'เชชเซเชฐเซ‹เชŸเซ‡เช•เซเชŸเซ‡เชก เชเชชเซเชธ' เชชเชฐ เชœเชˆเชจเซ‡ เชŸเชฐเซเชฎเช•เซเชธ: API "เชธเช‚เชฐเช•เซเชทเชฟเชค" เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซเชฏเชฅเชพ API เช•เซ‰เชฒเซเชธ เชœเซ‡เชฎ เช•เซ‡ termux-battery-status, เช…เชŸเช•เซ€ เชœเชถเซ‡. (เชธเซ‡.เชฎเซ€. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชตเชฟเช•เชฟ)

เชนเชตเซ‡ เชคเซ‡ เชนเชธเซเชคเช—เชค เชคเช•เซ‹ เชชเชฐ เชจเชœเซ€เช•เชฅเซ€ เชจเชœเชฐ เชฐเชพเช–เชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡. Termux:API เชจเซเช‚ เชจเชตเซ€เชจเชคเชฎ เช…เชจเซ‡ เชธเซŒเชฅเซ€ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เช…เชนเซ€เช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชตเชฟเช•เชฟ. เชนเซเช‚ เชธเซŒเชฅเซ€ เชตเชงเซ เชฆเซเชฐเชถเซเชฏ เช…เชจเซ‡ เชฐเชธเชชเซเชฐเชฆ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถ, เชœเซ‡ เชฎเชจเซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เชธเซเชตเชคเช‚เชคเซเชฐ เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชฎเชพเชฐเซ‹ เชนเชพเชฅ เชญเชฐเชตเชพ เชฆเซ‡เชถเซ‡.

เช•เซ‡เชŸเชฒเชพเช• Termux:API เช‰เชฆเชพเชนเชฐเชฃเซ‹

  • termux-battery-status
    เชฌเซ‡เชŸเชฐเซ€เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡
    เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)
  • เชŸเชฐเซเชฎเช•เซเชธ-เชคเซ‡เชœ
    เชธเซเช•เซเชฐเซ€เชจเชจเซ€ เชฌเซเชฐเชพเช‡เชŸเชจเซ‡เชธ 0 เชฅเซ€ 255 เชธเซเชงเซ€ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡
    เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)
  • เชŸเชฐเซเชฎเช•เซเชธ-เชŸเซ‹เชธเซเชŸ
    เช•เชพเชฎเชšเชฒเชพเช‰ เชŸเซ‹เชธเซเชŸ เชธเซ‚เชšเชจเชพ เชฌเชคเชพเชตเซ‡ เช›เซ‡
    เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)
  • เชŸเชฐเซเชฎเช•เซเชธ-เชŸเซ‹เชฐเซเชš
    เชซเซเชฒเซ‡เชถเชฒเชพเช‡เชŸเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡
    เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)
  • เชŸเชฐเซเชฎเช•เซเชธ-เชตเชพเช‡เชซเชพเช‡-เชธเซเช•เซ‡เชจ เชฎเชพเชนเชฟเชคเซ€
    Wi-Fi เชจเซ‡เชŸเชตเชฐเซเช•เซเชธเชจเชพ เช›เซ‡เชฒเซเชฒเชพ เชธเซเช•เซ‡เชจ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡
    เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

เชคเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เชธเชฐเชณ เช›เซ‡ เช•เซ‡ เชตเชณเชคเชฐ เชฎเซ‚เชฒเซเชฏเซ‹ เชถเชฌเซเชฆเชฎเชพเชณเชพเช“, เชถเชฌเซเชฆเช•เซ‹เชถเซ‹, เชถเชฌเซเชฆเช•เซ‹เชถเซ‹เชจเซ€ เชธเซ‚เชšเชฟเช“, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹ เช•เซ‡ เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช†เช—เชณเชจเซเช‚ เชชเช—เชฒเซเช‚ เชคเซ‡เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡.

เชชเช—เชฒเซเช‚ 5

เชชเชพเชฏเชฅเซ‹เชจ เช…เชจเซ‡ เชจเซ‡เชจเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹

เชชเชพเชฏเชฅเซ‹เชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เชฒเช–เซ‹:

updg
apt install python
apt install python2

เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเชตเซ‡ 2 เช…เชจเซ‡ 3 Python เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เช›เซ‡.

เชฒเซ‡เช– เชชเชฐ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชฎเชจเซ‡ เชฌเซ€เชœเซเช‚ เชจเซ‡เชจเซ‹ เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐ เชฎเชณเซเชฏเซเช‚ เชœเซ‡ เชฎเชจเซ‡ vim เช•เชฐเชคเชพเช‚ เชตเชงเซ เช—เชฎเซเชฏเซเช‚, เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€เช:

apt install nano

vim เช•เชฐเชคเชพเช‚ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชธเชฐเชณ เช›เซ‡, เช…เชจเซ‡ เชจเซ‡เชจเซ‹ เชชเชพเชธเซ‡ เชตเชงเซ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเซˆเชคเซเชฐเซ€เชชเซ‚เชฐเซเชฃ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช›เซ‡. Android เช‰เชชเช•เชฐเชฃ เชชเชฐ, vim เชนเชœเซ เชชเชฃ เชตเชงเซ เช…เชจเซเช•เซ‚เชณ เช›เซ‡.

เชŸเชฐเซเชฎเช•เซเชธ เช–เชพเชคเซ‡ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชนเซ‡เชฒเซ‹เชตเชฐเซเชฒเซเชก

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช† เช†เช‡เชŸเชฎ เชตเชฟเชจเชพ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชŸเชฐเซเชฎเช•เซเชธเชฎเชพเช‚ เชชเชพเชฏเชฅเซ‹เชจ เชฎเซ‚เช•เชตเซเช‚ เช…เชจเซ‡ เชนเซ‡เชฒเซ‹เชตเชฐเซเชฒเซเชก เชจ เชฒเช–เชตเซเช‚, เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช–เชฐเชพเชฌ เชฐเซ€เชคเชญเชพเชค เช›เซ‡.

เชฎเชพเชฐเซ‹ เช•เซ‹เชˆเชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชถเซ€เช–เชตเชตเชพเชจเซ‹ เชงเซเชฏเซ‡เชฏ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชœเซ‡เช“ เชœเชพเชฃเชคเชพ เชจเชฅเซ€ เชคเซ‡เช“ เช•เซ‹เชกเชจเซ€ เชจเช•เชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ (เช…เชฅเชตเชพ เชชเซ‚เชฐเชคเซเช‚ เชธเชพเชนเชฟเชคเซเชฏ เชนเซ‹เชตเชพเชฅเซ€ เชคเซ‡เช“ เชœเชพเชคเซ‡ เชถเซ€เช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡), เช…เชจเซ‡ เชœเซ‡เช“ เชœเชพเชฃเซ‡ เช›เซ‡ เชคเซ‡เช“ เชœเชพเชคเซ‡ เช•เช‚เชˆเช• เชฌเชจเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เชนเซเช‚ "เช†เชกเชฎเชพเช‚" เชนเชœเซ เชชเชฃ เชธเช‚เชชเชพเชฆเช• เชตเชฟเชจเชพ เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เชŸเซ‡เช•เซเชธเซเชŸ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช— เชฌเชคเชพเชตเซ€เชถ.

cat >hello-world.py     
# ะ•ัะปะธ ะฝะต ัƒะบะฐะทั‹ะฒะฐั‚ัŒ ะธัั‚ะพั‡ะฝะธะบ (ะฝะฐะฟะพะผะธะฝะฐัŽ cat 1.txt > 2.txt)
# ั‚ะพ cat ะฑัƒะดะตั‚ ะฑั€ะฐั‚ัŒ ะดะฐะฝะฝั‹ะต ะธะท ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะณะพ ะฟะพั‚ะพะบะฐ ะฒะฒะพะดะฐ,
# ะฟั€ะพั‰ะต ะณะพะฒะพั€ั ะฒะฒะพะดะธะผะพะต ั ะบะปะฐะฒะธะฐั‚ัƒั€ั‹.

str = โ€˜Hello, world!โ€™ # ะฟั€ะธัะฒะฐะธะฒะฐะตะผ ะฟะตั€ะตะผะตะฝะฝะพะน str ะทะฝะฐั‡ะตะฝะธะต "Hello, world!"
print (str) # ะฒั‹ะฒะพะดะธะผ ะฝะฐ ัะบั€ะฐะฝ ะทะฝะฐั‡ะตะฝะธะต ะธะท ะฟะตั€ะตะผะตะฝะฝะพะน str

# Ctrl + D ะทะฐะบะพะฝั‡ะธั‚ัŒ ะฒะฒะพะด ะธ ะทะฐะฟะธัะฐั‚ัŒ ั„ะฐะนะป (hello-world.py)

py hello-world.py # ะทะฐะฟัƒัะบะฐะตะผ ั„ะฐะนะป (py ัั‚ะพ alias ะพั‚ python)

เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

เชœเซ‹ เชคเชฎเชจเซ‡ เช‡เชจเชชเซเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เซ‹เชˆ เชญเซ‚เชฒ เชœเซ‹เชตเชพ เชฎเชณเซ€ เชจ เชนเซ‹เชฏ เช…เชจเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ Enter เชฆเชฌเชพเชตเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช‰เชชเชฐเชจเซ€ เชฒเชพเช‡เชจ เชชเชฐ เชœเชˆ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚, เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, Ctrl + D เชฆเชฌเชพเชตเซ€เชจเซ‡ เช‡เชจเชชเซเชŸ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‹ (เชคเชฎเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ Ctrl + Z เช…เชตเชฐเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹) เช…เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฌเชงเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹. เช…เชฎเซ‡ '>' เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเซ‹เชตเชพเชฅเซ€ เชซเชพเชˆเชฒ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช“เชตเชฐเชฐเชพเชˆเชŸ เชฅเชˆ เชœเชถเซ‡. เช† เช•เชพเชฐเชฃเซ‹เชธเชฐ, เชนเซเช‚ เช† เช‡เชจเชชเซเชŸ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชคเซ‹ เชจเชฅเซ€ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เชจ เชนเซ‹เชฏ เช•เซ‡ เชคเชฎเซ‡ เชญเซ‚เชฒเซ‹ เชตเชฟเชจเชพ เชคเชฐเชค เชœ เช•เซ‹เชก เชฒเช–เชถเซ‹.

เชชเช—เชฒเซเช‚ 6

เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹

เชฌเซ…เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เช เชคเชฎเชพเชฐเชพ เชŸเชฐเซเชฎเชฟเชจเชฒ เช•เชพเชฐเซเชฏเชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชถเซเชฐเซ‡เชทเซเช  เชฐเซ€เชค เช›เซ‡. เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช .sh เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ (เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชตเซˆเช•เชฒเซเชชเชฟเช• เช›เซ‡) เชธเชพเชฅเซ‡เชจเซ€ เชซเชพเช‡เชฒ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชŸเชฐเซเชฎเชฟเชจเชฒ เช†เชฆเซ‡เชถเซ‹เชจเซ‹ เชธเชฎเซ‚เชน เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช•เชจเซ‹ เช†เชชเชฃเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชญเซเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เช›เซ‡. เช…เชนเซ€เช‚ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เช†เชฆเซ‡เชถเซ‹เชจเซ€ เชธเซ‚เชšเชฟ, เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช, เชชเชฐเช‚เชคเซ เชจเซ‹เช‚เชง เชฒเซ‹ เช•เซ‡ เช† "เชชเซเช–เซเชค" Linux เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชฟ เช›เซ‡, เชŸเชฐเซเชฎเช•เซเชธ เชฎเชพเชŸเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชฎเชพเชคเซเชฐ เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชชเชฐ เชฎเชนเชพเชจ เชธเชพเชฎเช—เซเชฐเซ€.

เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธเชจเซ€ เชฎเชฆเชฆเชฅเซ€, เชคเชฎเซ‡ เชฒเช—เชญเช— เชคเชฎเชพเชฎ เชเช•เชตเชฟเชง เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชšเชพเชฒเซ‹ เชธเซŒเชฅเซ€ เชธเชฐเชณ เชฌเชพเชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เซ€เช เชœเซ‡ เชคเซ‡เชฃเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชตเซ‡เชฐเซ€เชเชฌเชฒเชฎเชพเช‚เชฅเซ€ เชฎเซ‚เชฒเซเชฏ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡, เชนเซเช‚ เชซเชฐเซ€เชฅเซ€ เชฌเชฟเชฒเชพเชกเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถ, เชคเชฎเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช…เชจเซ‡ เชœเซ‡เช“ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชคเชพเชฒเซ€เชฎ เช†เชชเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡ เชคเซ‡เช“ เช‡เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

cat >test.sh

export str="ะŸั€ะธะฒะตั‚, ะฅะฐะฑั€!"
# export ัะพะทะดะฐะตั‚ ะฟะตั€ะตะผะตะฝะฝัƒัŽ str
# ะธ ะฟั€ะธัะฒะฐะธะฒะฐะตั‚ ะตะน ะทะฝะฐั‡ะตะฝะธะต "ะŸั€ะธะฒะตั‚, ะฅะฐะฑั€!"
# ะะต ัั‚ะฐะฒัŒั‚ะต ะฟั€ะพะฑะตะปั‹ ะดะพ ะธ ะฟะพัะปะต โ€˜=โ€™

echo $str # ะ”ะปั ะพะฑั€ะฐั‰ะตะฝะธั ะบ ะฟะตั€ะตะผะตะฝะฝั‹ะผ ะฟะตั€ะตะด ะฝะธะผะธ ัั‚ะฐะฒะธั‚ัั โ€˜$โ€™

# Ctrl + D

# ./test.sh ะดะปั ะทะฐะฟัƒัะบะฐ ัะบั€ะธะฟั‚ะฐ, ะฝะพ ะตัะปะธ ัั‚ะพ ัะดะตะปะฐั‚ัŒ ัะตะนั‡ะฐั ั‚ะพ ะฑัƒะดะตั‚ ะพัˆะธะฑะบะฐ
# ะดะปั ะธะทะฑะฐะฒะปะตะฝะธั ะพั‚ ะพัˆะธะฑะบะธ ะฝัƒะถะฝะพ ัะดะตะปะฐั‚ัŒ ั„ะฐะนะป test.sh ะธัะฟะพะปะฝัะตะผั‹ะผ

chmod +x test.sh
# chmod ะธะทะผะตะฝัะตั‚ ะฟั€ะฐะฒะฐ ะดะพัั‚ัƒะฟะฐ (+ ะดะพะฑะฐะฒะธั‚ัŒ / - ัƒะฑั€ะฐั‚ัŒ)
# โ€˜+xโ€™ ะพะทะฝะฐั‡ะฐะตั‚ ั‡ั‚ะพ ะผั‹ ะดะตะปะฐะตะผ ั„ะฐะนะป ะธัะฟะพะปะฝัะตะผั‹ะผ

./test.sh # ะ—ะฐะฟัƒัะบะฐะตะผ ะฒั‹ะฟะพะปะฝะตะฝะธะต ะฝะฐัˆะตะณะพ ัะบั€ะธะฟั‚ะฐ

เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

Termux:API เชธเชพเชฅเซ‡ เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸ

เชšเชพเชฒเซ‹ เช•เซเช–เซเชฏเชพเชค HelloWorlds เชฅเซ€ เช•เช‚เชˆเช• เชœเซเชฆเซเช‚ เชฒเช–เซ€เช, เชชเชฃ เชเชŸเชฒเซเช‚ เชœ เชจเช•เชพเชฎเซเช‚. เช…เชฎเชพเชฐเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชนเชถเซ‡:

  1. termux-battery-status API เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‹
  2. เชชเซเชฐเชพเชชเซเชค เชกเซ‡เชŸเชพเชจเซ‡ test.txt เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชพเชšเชตเซ‹
  3. เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เชกเซ‡เชŸเชพ เช›เชพเชชเซ‹
  4. เช…เช—เชพเช‰ เชฒเช–เซ‡เชฒเชพ hello-world.py เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเซ‹
  5. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชณเชตเซ‡เชฒ เชกเซ‡เชŸเชพ test.txt เชซเชพเช‡เชฒเชฎเชพเช‚ เชฒเช–เซ‹
  6. เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เชกเซ‡เชŸเชพ เช›เชพเชชเซ‹
  7. เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก เชชเชฐ เชกเซ‡เชŸเชพ เช–เชธเซ‡เชกเซ‹
  8. เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชกเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเซ‹
  9. เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชกเชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เชชเซ‹เชชเช…เชช เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเซ‹

เชชเซเชฐเชฅเชฎ, เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชเช• เชซเซ‹เชฒเซเชกเชฐ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ hello-world.py เชจเซ‡ test.py เชคเชฐเซ€เช•เซ‡ เช•เซ‰เชชเชฟ เช•เชฐเซ‹, เช† เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ test.sh เช…เชจเซ‡ test.txt เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเซ‹:

mkdir bashscript

cat hello-world.py >> bashscript/test.py

cd bashscript/

touch test.sh test.txt # touch ัะพะทะดะฐะตั‚ ั„ะฐะนะปั‹

chmod +x test.sh

เชนเชตเซ‡, เช•เซ‹เชˆเชชเชฃ เช…เชจเซเช•เซ‚เชณ เชฐเซ€เชคเซ‡, test.sh เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เซ‹:

#!/bin/bash

# ะ’ ะฝะฐั‡ะฐะปะต ะบะฐะถะดะพะณะพ ัะบั€ะธะฟั‚ะฐ ะฟั€ะธะฝัั‚ะพ ัั‚ะฐะฒะธั‚ัŒ #! (ะฝะฐะทั‹ะฒะฐะตั‚ัั ัˆะตะฑะฐะฝะณ)
# ะฟะพัะปะต ะธะดะตั‚ ัƒะบะฐะทะฐะฝะธะต ะฝะฐ ัˆะตะปะป ะดะปั ะบะพั‚ะพั€ะพะน ะฝะฐะฟะธัะฐะฝ ัะบั€ะธะฟั‚

clear # ะพั‡ะธัั‚ะธะผ ะพะบะฝะพ ั‚ะตั€ะผะธะฝะฐะปะฐ

termux-battery-status > test.txt # ะฟัƒะฝะบั‚ั‹ 1 ะธ 2 ะธะท ะฝะฐะผะตั‡ะตะฝะฝะพะณะพ ั„ัƒะฝะบั†ะธะพะฝะฐะปะฐ

cat test.txt # ะฟัƒะฝะบั‚ 3

python test.py > test.txt # ะฟัƒะฝะบั‚ 4 ะธ 5

cat test.txt # ะฟัƒะฝะบั‚ 6

cat test.txt | termux-clipboard-set # ะฟัƒะฝะบั‚ 7
# | ัั‚ะพ ะบะพะฝะฒะตะนะตั€. ะฟะตั€ะตะฝะพัะธั‚ ะดะฐะฝะฝั‹ะต ั ะฒั‹ั…ะพะดะฐ ะพะดะฝะพะณะพ ะฟะพั‚ะพะบะฐ ะฝะฐ ะฒั…ะพะด ะดั€ัƒะณะพะณะพ

termux-clipboard-get # ะฟัƒะฝะบั‚ 8

termux-clipboard-get | termux-toast # ะฟัƒะฝะบั‚ 9

เชนเชตเซ‡, bashscript เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เชฒเช–เซ€เช เช›เซ€เช ./test.sh เช…เชฎเซ‡ Android เช‰เชชเช•เชฐเชฃ เชชเชฐ เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ€เช เช›เซ€เช:

เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช (เชญเชพเช— 2)

เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เช†เชฏเซ‹เชœเชฟเชค เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เซ€. เชคเชฎเซ‡ เชฆเชฐเซ‡เช• เช•เซเชฐเชฟเชฏเชพเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ (เช‡เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡) เชฎเชพเชนเชฟเชคเซ€เชจเชพ เช•เชจเซเชธเซ‹เชฒ เชชเชฐ เช†เช‰เชŸเชชเซเชŸ เชธเชพเชฅเซ‡ เชคเซ‡เชจเซ‡ เชชเชพเชคเชณเซเช‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชนเซเช‚ เช†เชจเซ‡ เชตเชพเชšเช•เซ‹ เชฎเชพเชŸเซ‡ เช›เซ‹เชกเซ€เชถ.

เชชเช—เชฒเซเช‚ 7

เชšเชพเชฒเซ‹ เช•เช‚เชˆเช• เช‰เชชเชฏเซ‹เช—เซ€ เช•เชฐเซ€เช

เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เซ€

เชšเชพเชฒเซ‹ เชธเช‚เชฆเชฐเซเชญเชจเซ€ เชถเชฐเชคเซ‹ เชฌเชจเชพเชตเซ€เช
เชฒเซ‹เชจเซเชš เชฅเชฏเชพ เชชเช›เซ€, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‡ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก เชชเชฐ เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชฐเซ‡เชจเซเชกเชฎ เชฒเชพเช‡เชจ เชฎเซ‚เช•เชตเซ€ เชœเซ‹เชˆเช เช…เชจเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชชเซ‹เชช-เช…เชช เชธเช‚เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชธเซ‚เชšเชฟเชค เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช.

เช…เชฎเซ‡ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡ bash เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเชˆเชถเซเช‚, เช…เชฎเซ‡ Python เชธเชฌเชฐเซ‚เชŸเชฟเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชซเชพเชˆเชฒเชฎเชพเช‚เชฅเซ€ เชฐเซ‡เชจเซเชกเชฎ เชฒเชพเชˆเชจ เช•เชพเชขเซ€เชถเซเช‚. เชšเชพเชฒเซ‹ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชตเชฐเซเช• เชชเซเชฒเชพเชจ เชฌเชจเชพเชตเซ€เช:

  1. เชธเชฌเชฐเซ‚เชŸเชฟเชจ เชšเชฒเชพเชตเซ‹
  2. เชธเชฌเชฐเซ‚เชŸเชฟเชจเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹
  3. เชชเซ‹เชชเช…เชช เชธเช‚เชฆเซ‡เชถ เชฆเชฐเซเชถเชพเชตเซ‹

เชšเชพเชฒเซ‹ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชซเชพเชˆเชฒเซ‹เชจเชพ เชจเชพเชฎเซ‹ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€เช:

  • เชนเซ‹เชฎ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ rndstr เชซเซ‹เชฒเซเชกเชฐ
    • เชธเซเชคเซเชฐเซ‹เชค - เชซเชพเช‡เชฒ เช•เซ‡ เชœเซ‡เชฎเชพเช‚เชฅเซ€ เช†เชชเชฃเซ‡ เชฒเซ€เชŸเซ€เช“ เชฒเชˆเชถเซเช‚
    • rndstr.py - เชเช• เชธเชฌเชฐเซ‚เชŸเชฟเชจ เช•เซ‡ เชœเซ‡ เชธเซเชคเซเชฐเซ‹เชค เชซเชพเช‡เชฒเชฅเซ€ เช•เชจเซเชธเซ‹เชฒ เชธเซเชงเซ€ เชฐเซ‡เชจเซเชกเชฎ เชฒเชพเช‡เชจ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡
    • rndstr.sh - เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชซเชพเช‡เชฒ

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชœเชพเช“ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเซ‹.

เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชชเซเชฒเชพเชจเชจเชพ เชชเซเชฐเชฅเชฎ เชฌเซ‡ เชฎเซเชฆเซเชฆเชพเช“เชจเซ‡ เชชเชพเช‡เชชเชฒเชพเช‡เชจ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเชฐเชฟเชฃเชพเชฎเซ‡, Termux: API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชฎเชจเซ‡ เชฎเชณเซ‡ เช›เซ‡:

#!/bin/bash

python ~/rndstr/rndstr.py | termux-clipboard-set # 1 ะธ 2 ะฟัƒะฝะบั‚ั‹ ะฟะปะฐะฝะฐ ั€ะฐะฑะพั‚ั‹

termux-toast "OK" # 3 ะฟัƒะฝะบั‚. ะ’ั‹ะฒะพะดะธะผ ะฒัะฟะปั‹ะฒะฐัŽั‰ะตะต ัะพะพะฑั‰ะตะฝะธะต "ะžะš"

เชธเซเชฐเซ‹เชค เชซเชพเช‡เชฒเชฎเชพเช‚, เชคเชฎเซ‡ เช•เซ‹เชˆเชชเชฃ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ‡ เชคเชพเชฐเซเช•เชฟเช• เชฐเซ€เชคเซ‡ เชฐเซ‡เช–เชพเช“เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชฎเซ‡เช‚ เชเชซเซ‹เชฐเชฟเชเชฎเซเชธ เชฎเซ‚เช•เชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช›เซ‡:

เชธเซเชฐเซ‹เชค เชซเชพเช‡เชฒ เชธเซ‚เชšเชฟ

ะ˜ัะบั€ะตะฝะฝะพัั‚ัŒ ะฝะต ะตัั‚ัŒ ะธัั‚ะธะฝะฐ. ะ›. ะ›ะฐะฒะตะปัŒ
ะขะตั€ะฟะธ ะธ ะฒะพะทะดะตั€ะถะธะฒะฐะนัั. ะญะฟะธะบั‚ะตั‚
ะ‘ะปะฐะณะพั€ะพะดะฝะพ ั‚ะพะปัŒะบะพ ั‚ะพ, ั‡ั‚ะพ ะฑะตัะบะพั€ั‹ัั‚ะฝะพ. ะ–. ะ›ะฐะฑั€ัŽะนะตั€
ะ‘ัƒะดัŒ ะฑะปะฐะณะพั€ะฐะทัƒะผะฝะพ ะพั‚ะฒะฐะถะฝั‹ะผ. ะ‘. ะ“ั€ะฐัะธะฐะฝ
ะ”ะพะฑั€ะพั‚ะฐ ะปัƒั‡ัˆะต ะบั€ะฐัะพั‚ั‹. ะ“. ะ“ะตะนะฝะต
ะ”ะปั ะฒะตะปะธะบะธั… ะดะตะป ะฝะตะพะฑั…ะพะดะธะผะพ ะฝะตัƒั‚ะพะผะธะผะพะต ะฟะพัั‚ะพัะฝัั‚ะฒะพ. ะค.ะ’ะพะปัŒั‚ะตั€
ะ•ัะปะธ ั‚ั‹ ั…ะพั‡ะตัˆัŒ, ั‡ั‚ะพะฑั‹ ั‚ะตะฑะต ะฒัะตะณะดะฐ ัƒะณะพะถะดะฐะปะธ, ะฟั€ะธัะปัƒะถะธะฒะฐะน ัะตะฑะต ัะฐะผ. ะ‘. ะคั€ะฐะฝะบะปะธะฝ
ะงั€ะตะทะผะตั€ะฝะฐั ัะบั€ะพะผะฝะพัั‚ัŒ ะตัั‚ัŒ ะฝะต ั‡ั‚ะพ ะธะฝะพะต, ะบะฐะบ ัะบั€ั‹ั‚ะฐั ะณะพั€ะดะพัั‚ัŒ. ะ. ะจะตะฝัŒะต
ะžั‡ะตะฝัŒ ัƒะผะฝั‹ะผ ะปัŽะดัะผ ะฝะฐั‡ะธะฝะฐัŽั‚ ะฝะต ะดะพะฒะตั€ัั‚ัŒ, ะตัะปะธ ะฒะธะดัั‚ ะธั… ัะผัƒั‰ะตะฝะธะต. ะค. ะะธั†ัˆะต
ะ‘ะตะดะฝะพัั‚ัŒ ัƒะบะฐะทั‹ะฒะฐะตั‚ ะฝะฐ ะพั‚ััƒั‚ัั‚ะฒะธะต ัั€ะตะดัั‚ะฒ, ะฐ ะฝะต ะฝะฐ ะพั‚ััƒั‚ัั‚ะฒะธะต ะฑะปะฐะณะพั€ะพะดัั‚ะฒะฐ. ะ”. ะ‘ะพะบะบะฐั‡ั‡ะพ
ะัƒะถะฝะพ ะพัั‚ะตั€ะตะณะฐั‚ัŒัั ะดะพะฒะตะดะตะฝะธั ัะบั€ะพะผะฝะพัั‚ะธ ะดะพ ัั‚ะตะฟะตะฝะธ ัƒะฝะธะถะตะฝะธั. ะ. ะ‘ะฐะบะธั…ะฐะฝะพะฒ
ะšั‚ะพ ะพั‚ะบะฐะทั‹ะฒะฐะตั‚ัั ะพั‚ ะผะฝะพะณะพะณะพ, ะผะพะถะตั‚ ะผะฝะพะณะพะต ัะตะฑะต ะฟะพะทะฒะพะปะธั‚ัŒ. ะ–. ะจะฐั€ะดะพะฝ
ะšะพะณะดะฐ ะฝะฐะผ ะฟะปะฐั‚ัั‚ ะทะฐ ะฑะปะฐะณะพั€ะพะดะฝั‹ะน ะฟะพัั‚ัƒะฟะพะบ, ะตะณะพ ัƒ ะฝะฐั ะพั‚ะฝะธะผะฐัŽั‚. ะ. ะจะฐะผั„ะพั€
ะะต ะฟะพะปัƒั‡ะธั‚ัŒ ะฒะพะฒัะต - ะฝะต ัั‚ั€ะฐัˆะฝะพ, ะฝะพ ะปะธัˆะธั‚ัŒัั ะฟะพะปัƒั‡ะตะฝะฝะพะณะพ ะพะฑะธะดะฝะพ. ะšะปะฐะฒะดะธะน ะญะปะธะฐะฝ
ะ›ะตะณั‡ะต ะฟะตั€ะตะฝะพัะธั‚ัŒ ั‚ะตั€ะฟะตะปะธะฒะพ ั‚ะพ, ั‡ั‚ะพ ะฝะฐะผ ะฝะต ะดะฐะฝะพ ะธัะฟั€ะฐะฒะธั‚ัŒ. ะ“ะพั€ะฐั†ะธะน
ะฃัั‚ะฐะตัˆัŒ ะถะดะฐั‚ัŒ, ะฝะพ ะฝะฐัะบะพะปัŒะบะพ ั…ัƒะถะต ะฑั‹ะปะพ ะฑั‹, ะตัะปะธ ะฑั‹ ะถะดะฐั‚ัŒ ัั‚ะฐะปะพ ะฝะตั‡ะตะณะพ. ะ‘. ะจะพัƒ
ะ’ัะต ะฟั€ะธั…ะพะดะธั‚ ะฒะพะฒั€ะตะผั, ะตัะปะธ ะปัŽะดะธ ัƒะผะตัŽั‚ ะถะดะฐั‚ัŒ. ะค. ะ ะฐะฑะปะต
ะกะฒะพะธะผ ั‚ะตั€ะฟะตะฝะธะตะผ ะผั‹ ะผะพะถะตะผ ะดะพัั‚ะธั‡ัŒ ะฑะพะปัŒัˆะตะณะพ, ั‡ะตะผ ัะธะปะพะน. ะญ. ะ‘ะตั€ะบ
ะะฐะดะพ ัƒะผะตั‚ัŒ ะฟะตั€ะตะฝะพัะธั‚ัŒ ั‚ะพ, ั‡ะตะณะพ ะฝะตะปัŒะทั ะธะทะฑะตะถะฐั‚ัŒ. ะœ. ะœะพะฝั‚ะตะฝัŒ
ะšั‚ะพ ะฒ ะดะตะปะต ัะผะตะป, ั‚ะพั‚ ัะปะพะฒ ะฝะต ัƒัั‚ั€ะฐัˆะธั‚ัั. ะกะพั„ะพะบะป
ะฏ ะฝะต ะปัŽะฑะปัŽ ัั€ะฐะถะฐั‚ัŒัั, ั ะปัŽะฑะปัŽ ะฟะพะฑะตะถะดะฐั‚ัŒ. ะ‘. ะจะพัƒ
ะ—ะฐั‚ั€ะฐะฒะปะตะฝะฝั‹ะน ะธ ะฟั€ะธะถะฐั‚ั‹ะน ะบ ัั‚ะตะฝะต ะบะพั‚ ะฟั€ะตะฒั€ะฐั‰ะฐะตั‚ัั ะฒ ั‚ะธะณั€ะฐ. ะœ. ะกะตั€ะฒะฐะฝั‚ะตั
ะ”ะพัั‚ะพะนะฝั‹ะน ั‡ะตะปะพะฒะตะบ ะฝะต ะธะดะตั‚ ะฟะพ ัะปะตะดะฐะผ ะดั€ัƒะณะธั… ะปัŽะดะตะน. ะšะพะฝั„ัƒั†ะธะน
ะ’ะตะปะธะบะธะน ัƒะผ ะฟั€ะพัะฒะธั‚ ัะฒะพัŽ ัะธะปัƒ ะฝะต ั‚ะพะปัŒะบะพ ะฒ ัƒะผะตะฝะธะธ ะผั‹ัะปะธั‚ัŒ, ะฝะพ ะธ ะฒ ัƒะผะตะฝะธะธ ะถะธั‚ัŒ. ะ . ะญะผะตั€ัะพะฝ
ะกะปะฐะฒะฐ - ั‚ะพะฒะฐั€ ะฝะตะฒั‹ะณะพะดะฝั‹ะน. ะกั‚ะพะธั‚ ะดะพั€ะพะณะพ, ัะพั…ั€ะฐะฝัะตั‚ัั ะฟะปะพั…ะพ. ะž. ะ‘ะฐะปัŒะทะฐะบ
ะกะดะตั€ะถะฐะฝะฝะพัั‚ัŒ ะธ ัƒะผะตัั‚ะฝะพัั‚ัŒ ะฒ ั€ะฐะทะณะพะฒะพั€ะฐั… ัั‚ะพัั‚ ะฑะพะปัŒัˆะต ะบั€ะฐัะฝะพั€ะตั‡ะธั. ะค. ะ‘ัะบะพะฝ
ะšั‚ะพ ะผะพะปั‡ะฐั‚ัŒ ะฝะต ัƒะผะตะตั‚, ั‚ะพั‚ ะธ ะณะพะฒะพั€ะธั‚ัŒ, ะฝะต ัะฟะพัะพะฑะตะฝ. ะกะตะฝะตะบะฐ ะœะปะฐะดัˆะธะน
ะฅะพั€ะพัˆะธะต ะผะฐะฝะตั€ั‹ ัะพัั‚ะพัั‚ ะธะท ะผะฐะปะตะฝัŒะบะธั… ะถะตั€ั‚ะฒ. ะค. ะงะตัั‚ะตั€ั„ะธะปะด
ะ”ะพะฑั€ั‹ะน ั‡ะตะปะพะฒะตะบ ะฝะต ั‚ะพั‚, ะบั‚ะพ ัƒะผะตะตั‚ ะดะตะปะฐั‚ัŒ ะดะพะฑั€ะพ, ะฐ ั‚ะพั‚, ะบั‚ะพ ะฝะต ัƒะผะตะตั‚ ะดะตะปะฐั‚ัŒ ะทะปะฐ. ะ’. ะšะปัŽั‡ะตะฒัะบะธะน
ะะต ะฟั€ะพะธะทะฝะพัะธั‚ะต ะฑะตัะฟะพะฒะพั€ะพั‚ะฝั‹ั… ััƒะถะดะตะฝะธะน! ะะฒะณัƒัั‚ะธะฝ
ะะธั‡ะตะณะพ ัะปะธัˆะบะพะผ! ะกะพะปะพะฝ

เช†เชชเชฃเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชธเชฌเชฐเซ‚เชŸเชฟเชจ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชธเซเชคเซเชฐเซ‹เชค เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชฐเซ‡เชจเซเชกเชฎ เชธเซเชŸเซเชฐเชฟเช‚เช— เช•เชพเชขเซ‡ เช›เซ‡.
เชšเชพเชฒเซ‹ เชธเชฌเชฐเซ‚เชŸเชฟเชจเชจเซเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชฒเช–เซ€เช:

  1. เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชซเชพเช‡เชฒ
  2. เช–เซเชฒเซเชฒเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚ เชฒเซ€เชŸเซ€เช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช—เชฃเชตเซ€
  3. เชซเชพเช‡เชฒ เชฌเช‚เชง เช•เชฐเซ‹ (เชคเซ‡เชจเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เช–เซเชฒเซเชฒเซ€ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆ เชจเชฅเซ€)
  4. เช…เชฎเซ‡ เชธเซเชฐเซ‹เชค เชซเชพเช‡เชฒเชจเซ€ เชฒเชพเช‡เชจเชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ€ เช…เช‚เชฆเชฐ เชฐเซ‡เชจเซเชกเชฎ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช
  5. เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชซเชพเช‡เชฒ
  6. เช†เชชเชฃเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เชจเช‚เชฌเชฐเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชนเซ‡เช เชณ เชเช• เชฒเซ€เชŸเซ€ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเซ€เช เช›เซ€เช
  7. เชซเชพเชˆเชฒ เชฌเช‚เชง เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เช…เชฎเซ‡ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ€เช เช›เซ€เช (เชนเซเช‚ เชชเชพเชฏเชฅเซ‹เชจ 3.7 เชนเซ‡เช เชณ เชฒเช–เซเช‚ เช›เซเช‚):

import random  #  ะธะผะฟะพั€ั‚ะธั€ัƒะตะผ ะดะปั ะณะตะฝะตั€ะฐั†ะธะธ ัะปัƒั‡ะฐะนะฝั‹ั… ั‡ะธัะตะป
import os  #  ะดะปั ะฟะพะปัƒั‡ะตะฝะธั ะฟัƒั‚ะธ

path = os.path.abspath(__file__)  #  ะฟะพะปัƒั‡ะฐะตะผ ะฟั€ัะผะพะน ะฟัƒั‚ัŒ ะดะพ ั„ะฐะนะปะฐ rndstr.py
path = os.path.dirname(path)  #  ะฟั€ะตะพะฑั€ะฐะทัƒะตะผ ะฒ ะฟัƒั‚ัŒ ะดะพ ะดะธั€ะตะบั‚ะพั€ะธะธ
path = path  + '/source'  #  ะฟั€ะตะพะฑั€ะฐะทัƒะตะผ ะฒ ะฟัƒั‚ัŒ ะดะพ ั„ะฐะนะปะฐ source

f = open(path)  #  ะพั‚ะบั€ั‹ะฒะฐะตะผ ั„ะฐะนะป
i = 0  #  ะพะฑะฝัƒะปัะตะผ ัั‡ะตั‚ั‡ะธะบ
for str in f: i+=1  #  ัั‡ะธั‚ะฐะตะผ ัั‚ั€ะพะบะธ ั„ะฐะนะปะฐ
f.close  #  ะทะฐะบั€ั‹ะฒะฐะตะผ ั„ะฐะนะป

j = int(round(i * random.random()))  #  ะณะตะฝะตั€ะธั€ัƒะตะผ ั†ะตะปะพะต ัะปัƒั‡ะฐะนะฝะพะต ั‡ะธัะปะพ ะพั‚ 0 ะดะพ i

f = open(path)  #  ะพั‚ะบั€ั‹ะฒะฐะตะผ ั„ะฐะนะป
i = 0  #  ะพะฑะฝัƒะปัะตะผ ัั‡ะตั‚ั‡ะธะบ
for str in f:  #  ะฟะตั€ะตะฑะธั€ะฐะตะผ ัั‚ั€ะพะบะธ ะธะท ั„ะฐะนะปะฐ
    if i == j:  #  ะตัะปะธ ัั‡ะตั‚ั‡ะธะบ ัั‚ั€ะพะบ ั€ะฐะฒะตะฝ ัะณะตะฝะตั€ะธั€ะพะฒะฐะฝะฝะพะผัƒ ั‡ะธัะปัƒ
        print (str, end='')  #  ะฒั‹ะฒะพะดะธะผ ัั‚ั€ะพะบัƒ ะฑะตะท ะฟะตั€ะตั…ะพะดะฐ ะฝะฐ ะฝะพะฒัƒัŽ
        break  #  ะฒั‹ั…ะพะดะธะผ ะธะท ั†ะธะบะปะฐ
    i+=1  #  ัƒะฒะตะปะธั‡ะธะฒะฐะตะผ ัั‡ะตั‚ั‡ะธะบ ะฝะฐ 1
f.close  #  ะทะฐะบั€ั‹ะฒะฐะตะผ ั„ะฐะนะป

เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช…เชจเซ‡ เชฒเช–เซเชฏเชพ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชซเชพเช‡เชฒ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชชเชฐเชตเชพเชจเช—เซ€เช“ เช†เชชเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ rndstr.sh, เช…เชจเซ‡ เชเชกเชชเซ€ เชฒเซ‹เช‚เชš เชฎเชพเชŸเซ‡ เช‰เชชเชจเชพเชฎ เชฌเชจเชพเชตเซ‹.

alias rnst="~/rndstr/rndstr.sh"

เชนเชตเซ‡ เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เชŸเชพเชˆเชช เช•เชฐเซ‹ rnst เช…เชฎเชจเซ‡ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก เชชเชฐ เชฐเซ‡เชจเซเชกเชฎ เชเชซเซ‹เชฐเชฟเชเชฎ เชฎเชณเชถเซ‡, เชœเซ‡ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชคเซเชฐเชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชตเชพเชชเชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เช…เชนเซ€เช‚ เช…เชฎเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เช•เช‚เชˆเช• เช‰เชชเชฏเซ‹เช—เซ€ เชฒเช–เซเชฏเซเช‚ เช›เซ‡. เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เซ€.

เชชเซ€เชเชธ

เช›เซ‡เชฒเซเชฒเชพ เชชเช—เชฒเชพเชฎเชพเช‚, เชฎเซ‡เช‚ เชˆเชฐเชพเชฆเชพเชชเซ‚เชฐเซเชตเช• เชธเซเช•เซเชฐเซ€เชจเชถเซ‰เชŸเซเชธ เช†เชชเซเชฏเชพ เชจเชฅเซ€ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชฐเชฟเชฏเชพเช“เชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€, เชซเช•เซเชค เชซเชพเช‡เชฒเซ‹เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชฒเช–เซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ เชตเชพเชšเช•เซ‹เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชคเช• เชฎเชณเซ‡.

เช† "เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช" เชชเชฐ, เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เช…เชฒเชฌเชคเซเชค, เช† เชซเช•เซเชค เชชเซเชฐเชฅเชฎ เชชเช—เชฒเชพเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เช†เช—เชณ เชตเชงเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เชฎเซ‡เช‚ เช† เชšเช•เซเชฐเชฎเชพเช‚ nmap, sqlmap เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เชคเซ‡ เชฌเชคเชพเชตเชตเชพเชจเซเช‚ เช†เชฏเซ‹เชœเชจ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชฎเชพเชฐเชพ เชตเชฟเชจเชพ เช† เชตเชฟเชทเชฏ เชชเชฐ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช˜เชฃเชพ เชฌเชงเชพ เชฒเซ‡เช–เซ‹ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เช‡เชšเซเช›เซ‹ เช›เซ‹ เช•เซ‡ เชนเซเช‚ "เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช" เชšเช•เซเชฐ เชšเชพเชฒเซ เชฐเชพเช–เซเช‚, เชคเซ‹ เชจเซ€เชšเซ‡ เชเช• เชธเชฐเซเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชคเชฎเซ‡ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชฒเช–เชตเซเช‚ เชคเซ‡ เชธเซ‚เชšเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เชซเช•เซเชค เชจเซ‹เช‚เชงเชพเชฏเซ‡เชฒเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชœ เชธเชฐเซเชตเซ‡เชฎเชพเช‚ เชญเชพเช— เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. เชธเชพเช‡เชจ เช‡เชจ เช•เชฐเซ‹, เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡.

"เชŸเชฐเซเชฎเช•เซเชธ เชธเซเชŸเซ‡เชช เชฌเชพเชฏ เชธเซเชŸเซ‡เชช" เชšเชพเชฒเซ เชฐเชพเช–เซ€เช?

  • เชนเชพ

  • เช•เซ‹เชˆ

2 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เช เชฎเชค โ€‹โ€‹เช†เชชเซเชฏเซ‹. เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชคเซเชฏเชพเช— เชจเชฅเซ€.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹