Nā kauoha Linux kumu no nā mea hōʻike a ʻoi aku

Kauwehe

Aloha kākou! ʻO Sasha koʻu inoa, a ke hoʻāʻo nei au i ka backend (Linux services and API) no ʻeono makahiki. Ua hiki mai iaʻu ka manaʻo no ka ʻatikala ma hope o kahi noi hou mai kahi hoa hoʻāʻo e haʻi iā ia i ka mea hiki iā ia ke heluhelu e pili ana i nā kauoha Linux ma mua o kahi ninaninau. ʻO ka maʻamau, koi ʻia kahi moho no kahi kūlana ʻenekini QA e ʻike i nā kauoha kumu (inā, ʻoiaʻiʻo, pili lākou i ka hana ʻana me Linux), akā pehea ʻoe e ʻike ai i nā kauoha kūpono e heluhelu ai i ka wā e hoʻomākaukau ai no kahi ninaninau inā he liʻiliʻi kāu. a i ʻole ʻike me Linux?

No laila, ʻoiai ua kākau ʻia kēia e pili ana i nā manawa he nui, ua hoʻoholo wau e kākau i kahi ʻatikala ʻē aʻe "Linux no ka poʻe hoʻomaka" a papa inoa ma aneʻi i nā kauoha kumu e pono ai ʻoe e ʻike ma mua o kekahi nīnauele ma kahi keʻena (a i ʻole hui) e hoʻohana ana i Linux. Noʻonoʻo wau e pili ana i nā kauoha a me nā pono hana a me nā ʻāpana aʻu e hoʻohana pinepine ai, hōʻiliʻili i nā manaʻo mai kaʻu mau hoa hana, a hōʻuluʻulu i nā mea āpau i hoʻokahi ʻatikala. Hoʻokaʻawale ʻia ka ʻatikala i 3 mau ʻāpana: ʻo ka mua, ka ʻike pōkole e pili ana i nā kumu o ka I/O ma ke kikowaena Linux, a laila ka ʻike o nā kauoha kumu loa, a ʻo ka hapakolu e wehewehe i ka hoʻoponopono ʻana i nā pilikia maʻamau ma Linux.

He nui nā koho o kēlā me kēia kauoha, ʻaʻole lākou e helu ʻia ma aneʻi. Hiki iā ʻoe ke komo mau 'kanaka <kauoha>` ole `<kauoha> --kōkua` e aʻo hou e pili ana i ka hui.

Pākuhi:

[user@testhost ~]$ mkdir --help
Usage: mkdir [OPTION]... DIRECTORY...
Create the DIRECTORY(ies), if they do not already exist.

Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask
  -p, --parents     no error if existing, make parent directories as needed
  -v, --verbose     print a message for each created directory
  -Z                   set SELinux security context of each created directory
                         to the default type
      --context[=CTX]  like -Z, or if CTX is specified then set the SELinux
                         or SMACK security context to CTX
      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mkdir invocation'

Inā lōʻihi ka hoʻopau ʻana o kahi kauoha, hiki iā ʻoe ke hoʻopau iā ia ma ke kaomi ʻana i ka console Ctrl + C (hoʻouna ʻia kahi hōʻailona i ke kaʻina hana KAKAU).

He wahi liʻiliʻi e pili ana i ka hoʻopuka kauoha

Ke hoʻomaka kahi kaʻina hana ma Linux, hana ʻia nā kahawai ʻikepili maʻamau 3 no kēlā kaʻina hana: stdin, stdout и stderr. Ua helu ʻia lākou he 0, 1 a me 2. Akā i kēia manawa ua hoihoi mākou stdout a ma kahi liʻiliʻi loa. stderr. Mai nā inoa he maʻalahi ke koho stdout hoʻohana ʻia e hoʻopuka i ka ʻikepili, a stderr - e hōʻike i nā memo hewa. Ma ka paʻamau i ka holo ʻana i kahi kauoha ma Linux stdout и stderr e hoʻopuka i nā ʻike a pau i ka console, akā naʻe, inā nui ka hoʻopuka kauoha, maʻalahi paha ia e hoʻihoʻi i kahi faila. Hiki ke hana i kēia, no ka laʻana, e like me kēia:

[user@testhost ~]$ man signal > man_signal

Inā mākou e hoʻopuka i nā mea o ka faila man_signal, a laila e ʻike mākou ua like ia me ke ʻano inā e holo wale mākou i ke kauoha ʻhoailona kanaka`.

Hoʻihoʻi hou i ka hana ʻ>` paʻamau i stdout. Hiki iā ʻoe ke kuhikuhi i kahi redirect stdout me ka maopopo: `1>`. Pēlā nō, hiki iā ʻoe ke kuhikuhi i ka kuhikuhi hou ʻana stderr:`2>`. Hiki iā ʻoe ke hoʻohui i kēia mau hana a pēlā e hoʻokaʻawale ai i ka puka kauoha maʻamau a me ka hoʻopuka memo hewa:

[user@testhost ~]$ man signal 1> man_signal 2> man_signal_error_log

E kuhikuhi hou a stdouta stderr i hoʻokahi faila penei:

[user@testhost ~]$ man signal > man_signal 2>&1

Hoʻihoʻi hou i ka hana ʻ2> & 1ʻo ia hoʻi ke kuhikuhi hou ʻana stderr i kahi e like me ka mea i kuhikuhi ʻia stdout.

ʻO kekahi mea hana maʻalahi no ka hana ʻana me I/O (a i ʻole, he mea maʻalahi ia no ke kamaʻilio interprocess). paipu (ai ole mea lawe lawe). Hoʻohana pinepine ʻia nā pipeline e kamaʻilio i nā kauoha he nui: stdout kuhikuhi ʻia nā kauoha i stdin aʻe, a pēlā aku ma ke kaulahao.

[user@testhost ~]$ ps aux | grep docker | tail -n 2
root     1045894  0.0  0.0   7512  3704 ?        Sl   16:04   0:00 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/2fbfddaf91c1bb7b9a0a6f788f3505dd7266f1139ad381d5b51ec1f47e1e7b28 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc
531      1048313  0.0  0.0 110520  2084 pts/2    S+   16:12   0:00 grep --color=auto docker

Nā Kauoha Linux Kumu

pwd

Hōʻike i ka papa kuhikuhi (hana).

[user@testhost ~]$ pwd
/home/user

la

Hōʻike i ka lā a me ka manawa o ka ʻōnaehana.

[user@testhost ~]$ date
Mon Dec 16 13:37:07 UTC 2019
[user@testhost ~]$ date +%s
1576503430

w

Hōʻike kēia kauoha i ka mea i komo i loko o ka ʻōnaehana. Eia kekahi, hōʻike pū ʻia ka uptime a me LA (load average) ma ka pale.

[user@testhost ~]$ w
 05:47:17 up 377 days, 17:57,  1 user,  load average: 0,00, 0,01, 0,05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    32.175.94.241    05:47    2.00s  0.01s  0.00s w

ls

E paʻi i nā mea o kahi papa kuhikuhi. Inā ʻaʻole ʻoe e hele i ke ala, e hōʻike ʻia nā mea o ka papa kuhikuhi o kēia manawa.

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ ls
qqq
[user@testhost ~]$ ls /home/user
qqq
[user@testhost ~]$ ls /
bin  boot  cgroup  dev  etc  home  lib  lib64  local  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  swap  sys  tmp  usr  var

ʻO wau iho, hoʻohana pinepine au i nā koho -l (hōʻano papa inoa lōʻihi - hoʻopuka i kahi kolamu me ka ʻike hou aku e pili ana i nā faila), -t (ka hoʻokaʻawale ʻana ma ka faila/papa kuhikuhi manawa hoʻololi) a -r (ka hoʻokaʻawale ʻana - hui pū me -t aia nā faila hou loa ma lalo):

[user@testhost ~]$ ls -ltr /
total 4194416
drwxr-xr-x    2 root root       4096 Jan  6  2012 srv
drwxr-xr-x    2 root root       4096 Jan  6  2012 selinux
drwxr-xr-x    2 root root       4096 Jan  6  2012 mnt
drwxr-xr-x    2 root root       4096 Jan  6  2012 media
drwx------    2 root root      16384 Oct  1  2017 lost+found
drwxr-xr-x    2 root root       4096 Oct  1  2017 local
drwxr-xr-x   13 root root       4096 Oct  1  2017 usr
drwxr-xr-x   11 root root       4096 Apr 10  2018 cgroup
drwxr-xr-x    4 root root       4096 Apr 10  2018 run
-rw-------    1 root root 4294967296 Sep 10  2018 swap
dr-xr-xr-x   10 root root       4096 Dec 13  2018 lib
drwxr-xr-x    6 root root       4096 Mar  7  2019 opt
drwxr-xr-x   20 root root       4096 Mar 19  2019 var
dr-xr-xr-x   10 root root      12288 Apr  9  2019 lib64
dr-xr-xr-x    2 root root       4096 Apr  9  2019 bin
dr-xr-xr-x    4 root root       4096 Apr  9  2019 boot
dr-xr-xr-x    2 root root      12288 Apr  9  2019 sbin
dr-xr-xr-x 3229 root root          0 Jul  2 10:19 proc
drwxr-xr-x   34 root root       4096 Oct 28 13:27 home
drwxr-xr-x   93 root root       4096 Oct 30 16:00 etc
dr-xr-x---   11 root root       4096 Nov  1 13:02 root
dr-xr-xr-x   13 root root          0 Nov 13 20:28 sys
drwxr-xr-x   16 root root       2740 Nov 26 08:55 dev
drwxrwxrwt    3 root root       4096 Nov 26 08:57 tmp

He 2 inoa papa kuhikuhi kūikawā: "."A"..". ʻO ka mea mua, ʻo ia ka papa kuhikuhi o kēia manawa, ʻo ka lua ka papa kuhikuhi makua. Hiki iā lākou ke maʻalahi e hoʻohana i nā hui like ʻole, ʻoi aku ls:

[user@testhost home]$ pwd
/home
[user@testhost home]$ ls ..
bin  boot  cgroup  dev  etc  home  lib  lib64  local  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  swap  sys  tmp  usr  var
[user@testhost home]$ ls ../home/user/
qqq

Aia kekahi koho pono e hōʻike i nā faila huna (e hoʻomaka me ".") - -a:

[user@testhost ~]$ ls -a
.  ..  1  .bash_history  .bash_logout  .bash_profile  .bashrc  .lesshst  man_signal  man_signal_error_log  .mongorc.js  .ssh  temp  test  .viminfo

Hiki iā ʻoe ke hoʻohana i ke koho -h - ka hoʻopuka ma ke ʻano hiki ke heluhelu ʻia e ke kanaka (e nānā i ka nui o nā faila):

[user@testhost ~]$ ls -ltrh
total 16K
-rwxrwx--x 1 user user   31 Nov 26 11:09 temp
-rw-rw-r-- 1 user user 6.0K Dec  3 16:02 1
drwxrwxr-x 2 user user 4.0K Dec  4 10:39 test

cd

Hoʻololi i ka papa kuhikuhi o kēia manawa.

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ cd /home/
[user@testhost home]$ pwd
/home

Inā ʻaʻole ʻoe e hāʻawi i ka inoa papa kuhikuhi ma ke ʻano he hoʻopaʻapaʻa, e hoʻohana ʻia ka hoʻololi kaiapuni $ HOME, ʻo ia hoʻi, ka papa kuhikuhi home. He mea maʻalahi paha ke hoʻohana '~` he manaʻo kūikawā $ HOME:

[user@testhost etc]$ pwd
/etc
[user@testhost etc]$ cd ~/test/
[user@testhost test]$ pwd
/home/user/test

mkdir

E hana i papa kuhikuhi.

[user@testhost ~]$ mkdir test
[user@testhost ~]$ ls -ltr
total 38184
-rw-rw-r-- 1 user user 39091284 Nov 22 14:14 qqq
drwxrwxr-x 2 user user     4096 Nov 26 10:29 test

I kekahi manawa pono ʻoe e hana i kahi papa kuhikuhi kikoʻī: no ka laʻana, kahi papa kuhikuhi i loko o kahi papa kuhikuhi i loaʻa ʻole. E pale i ke komo ʻana i nā manawa he nui i ka lālani mkdir, hiki iā ʻoe ke hoʻohana i ke koho -p - hiki iā ʻoe ke hana i nā papa kuhikuhi āpau i nalowale i ka hierarchy. Me kēia koho pū kekahi mkdir ʻaʻole e hoʻihoʻi i kahi hewa inā loaʻa ka papa kuhikuhi.

[user@testhost ~]$ ls
qqq  test
[user@testhost ~]$ mkdir test2/subtest
mkdir: cannot create directory ‘test2/subtest’: No such file or directory
[user@testhost ~]$ mkdir -p test2/subtest
[user@testhost ~]$ ls
qqq  test  test2
[user@testhost ~]$ ls test2/
subtest
[user@testhost ~]$ mkdir test2/subtest
mkdir: cannot create directory ‘test2/subtest’: File exists
[user@testhost ~]$ mkdir -p test2/subtest
[user@testhost ~]$ ls test2/
subtest

rm

Holoi i kahi faila.

[user@testhost ~]$ ls
qqq  test  test2
[user@testhost ~]$ rm qqq
[user@testhost ~]$ ls
test  test2

Koho -r hiki iā ʻoe ke hoʻopau i nā papa kuhikuhi me kā lākou mau mea āpau, koho -f hiki iā ʻoe ke haʻalele i nā hewa i ka wā e holoi ai (no ka laʻana, e pili ana i kahi faila ʻole). ʻAe kēia mau koho i ka holoi ʻia ʻana o ka hierarchy holoʻokoʻa o nā faila a me nā papa kuhikuhi (inā he kuleana ko ka mea hoʻohana e hana pēlā), no laila, pono e hoʻohana ʻia me ka makaʻala (ʻo kahi hiʻohiʻona hoʻohālikelike maʻamau "rm-rf /", ma lalo o kekahi mau kūlana, e holoi iā ʻoe, inā ʻaʻole ka ʻōnaehana holoʻokoʻa, a laila nui nā faila nui no kāna hana).

[user@testhost ~]$ ls
test  test2
[user@testhost ~]$ ls -ltr test2/
total 4
-rw-rw-r-- 1 user user    0 Nov 26 10:40 temp
drwxrwxr-x 2 user user 4096 Nov 26 10:40 temp_dir
[user@testhost ~]$ rm -rf test2
[user@testhost ~]$ ls
test

cp

E kope i kahi faila a i ʻole papa kuhikuhi.

[user@testhost ~]$ ls
temp  test
[user@testhost ~]$ cp temp temp_clone
[user@testhost ~]$ ls
temp  temp_clone  test

He mau koho no keia kauoha -r и -f, hiki ke hoʻohana ʻia e hōʻoia i ke kope ʻana o ka hierarchy o nā papa kuhikuhi a me nā waihona i kahi ʻē aʻe.

mv

E hoʻoneʻe a inoa hou i kahi faila a papa kuhikuhi.

[user@testhost ~]$ ls -ltr
total 4
drwxrwxr-x 2 user user 4096 Nov 26 10:29 test
-rw-rw-r-- 1 user user    0 Nov 26 10:45 temp
-rw-rw-r-- 1 user user    0 Nov 26 10:46 temp_clone
[user@testhost ~]$ ls test
[user@testhost ~]$ mv test test_renamed
[user@testhost ~]$ mv temp_clone test_renamed/
[user@testhost ~]$ ls
temp  test_renamed
[user@testhost ~]$ ls test_renamed/
temp_clone

popoki

E paʻi i nā mea o kahi faila (a i ʻole nā ​​faila).

[user@testhost ~]$ cat temp
Content of a file.
Lalalala...

Pono nō hoʻi e hoʻolohe i nā kauoha Ke po'o (puka n laina mua a i ʻole bytes o ka faila) a ka huelo (e pili ana iā ia ma hope).

ka huelo

Haʻalele n nā laina hope a i ʻole nā ​​bytes o ka faila.

[user@testhost ~]$ tail -1 temp
Lalalala...

He mea pono loa ke koho -f - hiki iā ʻoe ke hōʻike i ka ʻikepili hou i kahi faila i ka manawa maoli.

emi

I kekahi manawa, nui loa ka waihona kikokikona a he mea kūpono ʻole ke hōʻike ʻana me ke kauoha popoki. A laila hiki iā ʻoe ke wehe me ka hoʻohana ʻana i ke kauoha emi: e hoʻopuka ʻia ka faila ma nā ʻāpana; hoʻokele i kēia mau ʻāpana, ʻimi a me nā hana maʻalahi ʻē aʻe.

[user@testhost ~]$ less temp

He mea maʻalahi paha ke hoʻohana emi me ka mea lawe (paipu):

[user@testhost ~]$ grep "ERROR" /tmp/some.log | less

ps

Kaʻina papa inoa.

[user@testhost ~]$ ps
    PID TTY          TIME CMD
 761020 pts/2    00:00:00 bash
 809720 pts/2    00:00:00 ps

Hoʻohana pinepine wau i nā koho BSD "aux" - hōʻike i nā kaʻina hana a pau i ka ʻōnaehana (no ka mea hiki i nā kaʻina hana he nui, hōʻike wau i ka 5 mua o lākou e hoʻohana ana i ka pipeline (paipu) a me ka hui Ke po'o):

[user@testhost ~]$ ps aux | head -5
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0  19692  2600 ?        Ss   Jul02   0:10 /sbin/init
root           2  0.0  0.0      0     0 ?        S    Jul02   0:03 [kthreadd]
root           4  0.0  0.0      0     0 ?        I<   Jul02   0:00 [kworker/0:0H]
root           6  0.0  0.0      0     0 ?        I<   Jul02   0:00 [mm_percpu_wq]

Hoʻohana ka nui i nā koho BSD "axjf", kahi e hiki ai iā ʻoe ke hōʻike i ka lāʻau kaʻina hana (eia wau i wehe i kahi ʻāpana o ka hopena no ka hōʻikeʻike):

[user@testhost ~]$ ps axjf
   PPID     PID    PGID     SID TTY        TPGID STAT   UID   TIME COMMAND
      0       2       0       0 ?             -1 S        0   0:03 [kthreadd]
      2       4       0       0 ?             -1 I<       0   0:00  _ [kworker/0:0H]
      2       6       0       0 ?             -1 I<       0   0:00  _ [mm_percpu_wq]
      2       7       0       0 ?             -1 S        0   4:08  _ [ksoftirqd/0]
...
...
...
      1    4293    4293    4293 tty6        4293 Ss+      0   0:00 /sbin/mingetty /dev/tty6
      1  532967  532964  532964 ?             -1 Sl     495   0:00 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --use-v1-config --group td-agent --daemon /var/run/td-agent/td-agent.pid
 532967  532970  532964  532964 ?             -1 Sl     495 803:06  _ /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --use-v1-config --group td-agent --daemon /var/run/td-agent/td-agent.pid
      1  537162  533357  532322 ?             -1 Sl       0 5067:43 /usr/bin/dockerd --default-ulimit nofile=262144:262144 --dns=172.17.0.1
 537162  537177  537177  537177 ?             -1 Ssl      0 4649:28  _ docker-containerd --config /var/run/docker/containerd/containerd.toml
 537177  537579  537579  537177 ?             -1 Sl       0   4:48  |   _ docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0ee89b20deb3cf08648cd92e1f3e3c661ccffef7a0971
 537579  537642  537642  537642 ?             -1 Ss    1000  32:11  |   |   _ /usr/bin/python /usr/bin/supervisord -c /etc/supervisord/api.conf
 537642  539764  539764  537642 ?             -1 S     1000   0:00  |   |       _ sh -c echo "READY"; while read -r line; do echo "$line"; supervisorctl shutdown; done
 537642  539767  539767  537642 ?             -1 S     1000   5:09  |   |       _ php-fpm: master process (/etc/php73/php-fpm.conf)
 539767  783097  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
 539767  783131  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
 539767  783185  539767  537642 ?             -1 S     1000   0:00  |   |       |   _ php-fpm: pool test
...
...
...

He nui nā koho like ʻole o kēia kauoha, no laila inā hoʻohana ʻoe iā ia, paipai wau e heluhelu ʻoe i ka palapala. No ka hapanui o nā hihia, ua lawa ka ʻike "ps i".

pepehi

E hoʻouna i kahi hōʻailona i kahi kaʻina hana. Ma ka paʻamau ua hoʻouna ʻia ka hōʻailona KAKAU, ka mea e hoopau ai i ka hana.

[user@testhost ~]$ ps ux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
531      1027147  0.0  0.0 119956  4260 ?        S    14:51   0:00 sshd: user@pts/1
531      1027149  0.0  0.0 115408  3396 pts/1    Ss   14:51   0:00 -bash
531      1027170  0.0  0.0 119956  4136 ?        R    14:51   0:00 sshd: user@pts/2
531      1027180  0.0  0.0 115408  3564 pts/2    Ss   14:51   0:00 -bash
531      1033727  0.0  0.0 107960   708 pts/1    S+   15:17   0:00 sleep 300
531      1033752  0.0  0.0 117264  2604 pts/2    R+   15:17   0:00 ps ux
[user@testhost ~]$ kill 1033727
[user@testhost ~]$ ps ux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
531      1027147  0.0  0.0 119956  4260 ?        S    14:51   0:00 sshd: user@pts/1
531      1027149  0.0  0.0 115408  3396 pts/1    Ss+  14:51   0:00 -bash
531      1027170  0.0  0.0 119956  4136 ?        R    14:51   0:00 sshd: user@pts/2
531      1027180  0.0  0.0 115408  3564 pts/2    Ss   14:51   0:00 -bash
531      1033808  0.0  0.0 117268  2492 pts/2    R+   15:17   0:00 ps ux

No ka mea hiki i kahi kaʻina hana ke loaʻa nā mea hoʻohana hōʻailona, ​​​​ pepehi ʻAʻole alakaʻi mau i ka hopena i manaʻo ʻia - hoʻopau koke i ke kaʻina hana. No ka "pepehi" i kahi kaʻina no ka maopopo, pono ʻoe e hoʻouna i kahi hōʻailona i ke kaʻina hana SIGKILL. Eia naʻe, hiki i kēia ke alakaʻi i ka nalowale o ka ʻikepili (no ka laʻana, inā pono ke kaʻina hana e mālama i kekahi ʻike i ka disk ma mua o ka hoʻopau ʻana), no laila pono ʻoe e hoʻohana i kēia kauoha me ka akahele. Helu hōʻailona SIGKILL - 9, no laila ke ʻano o ke ʻano pōkole o ke kauoha penei:

[user@testhost ~]$ ps ux | grep sleep
531      1034930  0.0  0.0 107960   636 pts/1    S+   15:21   0:00 sleep 300
531      1034953  0.0  0.0 110516  2104 pts/2    S+   15:21   0:00 grep --color=auto sleep
[user@testhost ~]$ kill -9 1034930
[user@testhost ~]$ ps ux | grep sleep
531      1035004  0.0  0.0 110516  2092 pts/2    S+   15:22   0:00 grep --color=auto sleep

Ma waho aʻe o nā mea i ʻōlelo ʻia KAKAU и SIGKILL Nui nā hōʻailona like ʻole; hiki ke loaʻa maʻalahi kahi papa inoa o lākou ma ka Pūnaewele. A mai poina i na hoailona SIGKILL и ʻO SIGSTOP ʻaʻole hiki ke keakea a mālama ʻole ʻia.

ping

E hoʻouna i kahi pūʻolo ICMP i ka mea hoʻokipa ECHO_REQUEST.

[user@testhost ~]$ ping google.com
PING google.com (172.217.15.78) 56(84) bytes of data.
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=1 ttl=47 time=1.85 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=2 ttl=47 time=1.48 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=3 ttl=47 time=1.45 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=4 ttl=47 time=1.46 ms
64 bytes from iad23s63-in-f14.1e100.net (172.217.15.78): icmp_seq=5 ttl=47 time=1.45 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 1.453/1.541/1.850/0.156 ms

ma ka paʻamau ping hana a hiki i ka hoopau lima ana. No laila, pono paha ke koho -c - ka helu o nā ʻeke ma hope o ka hoʻouna ʻana ping e hoʻopau iā ia iho. ʻO kekahi koho aʻu e hoʻohana ai i kekahi manawa -i, ka wā ma waena o ka hoʻouna ʻana i nā ʻeke.

[user@testhost ~]$ ping -c 3 -i 5 google.com
PING google.com (172.217.5.238) 56(84) bytes of data.
64 bytes from iad30s07-in-f238.1e100.net (172.217.5.238): icmp_seq=1 ttl=47 time=1.55 ms
64 bytes from iad30s07-in-f14.1e100.net (172.217.5.238): icmp_seq=2 ttl=47 time=1.17 ms
64 bytes from iad30s07-in-f14.1e100.net (172.217.5.238): icmp_seq=3 ttl=47 time=1.16 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10006ms
rtt min/avg/max/mdev = 1.162/1.295/1.551/0.181 ms

kālepa

Hāʻawi ka mea kūʻai OpenSSH SSH iā ʻoe e hoʻopili i kahi host mamao.

MacBook-Pro-User:~ user$ ssh [email protected]
Last login: Tue Nov 26 11:27:39 2019 from another_host
[user@testhost ~]$ hostname
testhost

Nui nā nuances i ka hoʻohana ʻana iā SSH, a he nui nā mana o kēia mea kūʻai aku, no laila inā makemake ʻoe (a pono paha) hiki iā ʻoe ke heluhelu e pili ana iā ia. i nā kikoʻī.

scp

E kope i nā faila ma waena o nā host (no kēia hoʻohana kālepa).

[user@testhost ~]$ pwd
/home/user
[user@testhost ~]$ ls
temp  test_renamed
[user@testhost ~]$ exit
logout
Connection to 11.11.22.22 closed.
MacBook-Pro-Aleksandr:~ user$ scp [email protected]:/home/user/temp Downloads/
temp                                                                                                                                                                                                        100%   31     0.2KB/s   00:00
MacBook-Pro-Aleksandr:~ user$ cat Downloads/temp
Content of a file.
Lalalala...

rsync

Hiki iā ʻoe ke hoʻohana e hoʻonohonoho i nā papa kuhikuhi ma waena o nā pūʻali rsync (-a — mode archive, hiki iā ʻoe ke kope i nā mea āpau o ka papa kuhikuhi "e like me", -v - hoʻopuka i ka console o ka ʻike hou aku):

MacBook-Pro-User:~ user$ ls Downloads/user
ls: Downloads/user: No such file or directory
MacBook-Pro-User:~ user$ rsync -av user@testhost:/home/user Downloads
receiving file list ... done
user/
user/.bash_history
user/.bash_logout
user/.bash_profile
user/.bashrc
user/.lesshst
user/.mongorc.js
user/.viminfo
user/1
user/man_signal
user/man_signal_error_log
user/temp
user/.ssh/
user/.ssh/authorized_keys
user/test/
user/test/created_today
user/test/temp_clone

sent 346 bytes  received 29210 bytes  11822.40 bytes/sec
total size is 28079  speedup is 0.95
MacBook-Pro-User:~ user$ ls -a Downloads/user
.                    .bash_history        .bash_profile        .lesshst             .ssh                 1                    man_signal_error_log test
..                   .bash_logout         .bashrc              .mongorc.js          .viminfo             man_signal           temp

hoʻopiʻi

Hōʻike i kahi laina kikokikona.

[user@testhost ~]$ echo "Hello"
Hello

Nā koho kūpono e noʻonoʻo ai ma aneʻi -n - mai hoʻopili i ka laina me kahi laina laina ma ka hope, a -e - hiki ke pakele i ka wehewehe ʻana me ka "".

[user@testhost ~]$ echo "tHellon"
tHellon
[user@testhost ~]$ echo -n "tHellon"
tHellon[user@testhost ~]$
[user@testhost ~]$ echo -ne "tHellon"
	Hello

Hiki iā ʻoe ke hōʻike i nā waiwai o nā mea hoʻololi me ka hoʻohana ʻana i kēia kauoha. No ka laʻana, ma Linux, mālama ʻia ka code exit o ke kauoha i hoʻopau ʻia i loko o kahi loli kūikawā $?, a ma kēia ala hiki iā ʻoe ke ʻike pololei i ke ʻano o ka hewa i hana ʻia ma ka noi holo hope loa:

[user@testhost ~]$ ls    # ошибки не будет
1  man_signal  man_signal_error_log  temp  test
[user@testhost ~]$ echo $?    # получим 0 — ошибки не было
0
[user@testhost ~]$ ls qwerty    # будет ошибка
ls: cannot access qwerty: No such file or directory
[user@testhost ~]$ echo $?    # получим 2 — Misuse of shell builtins (according to Bash documentation)
2
[user@testhost ~]$ echo $?    # последний echo отработал без ошибок, получим 0
0

telnet

Mea kūʻai no ka protocol TELNET. Hoʻohana ʻia e kamaʻilio me kekahi mea hoʻokipa.

[user@testhost ~]$ telnet example.com 80
Trying 93.184.216.34...
Connected to example.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Nov 2019 11:59:18 GMT
Etag: "3147526947+gzip+ident"
Expires: Tue, 03 Dec 2019 11:59:18 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (dcb/7F3B)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

... здесь было тело ответа, которое я вырезал руками ...

Inā pono ʻoe e hoʻohana i ka protocol TLS (e hoʻomanaʻo iaʻu ua lōʻihi ka lōʻihi o ka SSL), a laila telnet ʻaʻole kūpono no kēia mau hana. Akā e hele mai ka mea kūʻai aku openssl:

He laʻana o ka hoʻohana ʻana i openssl me ka hoʻopuka ʻana i kahi pane i kahi noi GET

[user@testhost ~]$ openssl s_client -connect example.com:443
CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
verify return:1
depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org
   i:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
 1 s:/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
 2 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Global Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIHQDCCBiigAwIBAgIQD9B43Ujxor1NDyupa2A4/jANBgkqhkiG9w0BAQsFADBN
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
aWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTgxMTI4MDAwMDAwWhcN
MjAxMjAyMTIwMDAwWjCBpTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
aWExFDASBgNVBAcTC0xvcyBBbmdlbGVzMTwwOgYDVQQKEzNJbnRlcm5ldCBDb3Jw
b3JhdGlvbiBmb3IgQXNzaWduZWQgTmFtZXMgYW5kIE51bWJlcnMxEzARBgNVBAsT
ClRlY2hub2xvZ3kxGDAWBgNVBAMTD3d3dy5leGFtcGxlLm9yZzCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANDwEnSgliByCGUZElpdStA6jGaPoCkrp9vV
rAzPpXGSFUIVsAeSdjF11yeOTVBqddF7U14nqu3rpGA68o5FGGtFM1yFEaogEv5g
rJ1MRY/d0w4+dw8JwoVlNMci+3QTuUKf9yH28JxEdG3J37Mfj2C3cREGkGNBnY80
eyRJRqzy8I0LSPTTkhr3okXuzOXXg38ugr1x3SgZWDNuEaE6oGpyYJIBWZ9jF3pJ
QnucP9vTBejMh374qvyd0QVQq3WxHrogy4nUbWw3gihMxT98wRD1oKVma1NTydvt
hcNtBfhkp8kO64/hxLHrLWgOFT/l4tz8IWQt7mkrBHjbd2XLVPkCAwEAAaOCA8Ew
ggO9MB8GA1UdIwQYMBaAFA+AYRyCMWHVLyjnjUY4tCzhxtniMB0GA1UdDgQWBBRm
mGIC4AmRp9njNvt2xrC/oW2nvjCBgQYDVR0RBHoweIIPd3d3LmV4YW1wbGUub3Jn
ggtleGFtcGxlLmNvbYILZXhhbXBsZS5lZHWCC2V4YW1wbGUubmV0ggtleGFtcGxl
Lm9yZ4IPd3d3LmV4YW1wbGUuY29tgg93d3cuZXhhbXBsZS5lZHWCD3d3dy5leGFt
cGxlLm5ldDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsG
AQUFBwMCMGsGA1UdHwRkMGIwL6AtoCuGKWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNv
bS9zc2NhLXNoYTItZzYuY3JsMC+gLaArhilodHRwOi8vY3JsNC5kaWdpY2VydC5j
b20vc3NjYS1zaGEyLWc2LmNybDBMBgNVHSAERTBDMDcGCWCGSAGG/WwBATAqMCgG
CCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgGBmeBDAEC
AjB8BggrBgEFBQcBAQRwMG4wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj
ZXJ0LmNvbTBGBggrBgEFBQcwAoY6aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t
L0RpZ2lDZXJ0U0hBMlNlY3VyZVNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAAMIIB
fwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdwCkuQmQtBhYFIe7E6LMZ3AKPDWYBPkb
37jjd80OyA3cEAAAAWdcMZVGAAAEAwBIMEYCIQCEZIG3IR36Gkj1dq5L6EaGVycX
sHvpO7dKV0JsooTEbAIhALuTtf4wxGTkFkx8blhTV+7sf6pFT78ORo7+cP39jkJC
AHYAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq/16ggw8AAAFnXDGWFQAABAMA
RzBFAiBvqnfSHKeUwGMtLrOG3UGLQIoaL3+uZsGTX3MfSJNQEQIhANL5nUiGBR6g
l0QlCzzqzvorGXyB/yd7nttYttzo8EpOAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFnXDGWnAAABAMARzBFAiEA5Hn7Q4SOyqHkT+kDsHq7ku7z
RDuM7P4UDX2ft2Mpny0CIE13WtxJAUr0aASFYZ/XjSAMMfrB0/RxClvWVss9LHKM
MA0GCSqGSIb3DQEBCwUAA4IBAQBzcIXvQEGnakPVeJx7VUjmvGuZhrr7DQOLeP4R
8CmgDM1pFAvGBHiyzvCH1QGdxFl6cf7wbp7BoLCRLR/qPVXFMwUMzcE1GLBqaGZM
v1Yh2lvZSLmMNSGRXdx113pGLCInpm/TOhfrvr0TxRImc8BdozWJavsn1N2qdHQu
N+UBO6bQMLCD0KHEdSGFsuX6ZwAworxTg02/1qiDu7zW7RyzHvFYA4IAjpzvkPIa
X6KjBtpdvp/aXabmL95YgBjT8WJ7pqOfrqhpcmOBZa6Cg6O1l4qbIFH/Gj9hQB5I
0Gs4+eH6F9h3SojmPTYkT+8KuZ9w84Mn+M8qBXUQoYoKgIjN
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Los Angeles/O=Internet Corporation for Assigned Names and Numbers/OU=Technology/CN=www.example.org
issuer=/C=US/O=DigiCert Inc/CN=DigiCert SHA2 Secure Server CA
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 4643 bytes and written 415 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 91950DC50FADB57BF026D2661E6CFAA1F522E5CA60D2310E106EE0E0FD6E70BD
    Session-ID-ctx:
    Master-Key: 704E9145253EEB4E9DC47E3DC6725D296D4A470EA296D54F71D65E74EAC09EB096EA1305CBEDD9E7020B8F72FD2B68A5
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - 68 84 4e 77 be e3 f5 00-49 c5 44 40 53 4d b9 61   [email protected]
    0010 - c9 fe df e4 05 51 d0 53-ae cf 89 4c b6 ef 6c 9e   .....Q.S...L..l.
    0020 - fe 12 9a f0 e8 e5 4e 87-42 89 ac af ca e5 4a 85   ......N.B.....J.
    0030 - 38 08 26 e3 22 89 08 b5-62 c0 8b 7e b8 05 d3 54   8.&."...b..~...T
    0040 - 8c 24 91 a7 b4 4f 79 ad-36 59 7c 69 2d e5 7f 62   .$...Oy.6Y|i-..b
    0050 - f6 73 a3 8b 92 63 c1 e3-df 78 ba 8c 5a cc 82 50   .s...c...x..Z..P
    0060 - 33 4e 13 4b 10 e4 97 31-cc b4 13 65 45 60 3e 13   3N.K...1...eE`>.
    0070 - ac 9e b1 bb 4b 18 d9 16-ea ce f0 9b 5b 0c 8b bf   ....K.......[...
    0080 - fd 78 74 a0 1a ef c2 15-2a 0a 14 8d d1 3f 52 7a   .xt.....*....?Rz
    0090 - 12 6b c7 81 15 c4 c4 af-7e df c2 20 a8 dd 4b 93   .k......~.. ..K.

    Start Time: 1574769867
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
GET / HTTP/1.1
Host: example.com

HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Nov 2019 12:04:38 GMT
Etag: "3147526947+ident"
Expires: Tue, 03 Dec 2019 12:04:38 GMT
Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT
Server: ECS (dcb/7EC8)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

Hoʻoholo i nā pilikia maʻamau ma Linux

Hoʻololi i ka mea nona ka faila

Hiki iā ʻoe ke hoʻololi i ka mea nona ka faila a i ʻole ka papa kuhikuhi me ke kauoha aloha:

[user@testhost ~]$ chown user:user temp
[user@testhost ~]$ ls -l temp
-rw-rw-r-- 1 user user 31 Nov 26 11:09 temp

Pono e hāʻawi ʻia ka ʻāpana o kēia kauoha i ka mea nona a me ka hui hou (koho), i hoʻokaʻawale ʻia e kahi kolonā. Eia kekahi, i ka hoʻololi ʻana i ka mea nona ka papa kuhikuhi, hiki ke hoʻohana pono ke koho -R - a laila e hoʻololi nā mea nona nā mea āpau o ka papa kuhikuhi.

Hoʻololi i nā ʻae faila

Hiki ke hoʻoholo i kēia pilikia me ke kauoha chmod. Ma keʻano he laʻana, e hāʻawi wau i ka ʻae ʻae "ʻae ʻia ka mea nona ka heluhelu, kākau a hoʻokō, ʻae ʻia ka hui e heluhelu a kākau, ʻaʻole ʻae ʻia nā mea ʻē aʻe":

[user@testhost ~]$ ls -l temp
-rw-rw-r-- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod 760 temp
[user@testhost ~]$ ls -l temp
-rwxrw---- 1 user user 31 Nov 26 11:09 temp

ʻO ka 7 mua (ʻo 0b111 kēia ma ka hōʻike bit) ma ka palena ʻo ia ka "kuleana āpau no ka mea nona", ʻo ka 6 ʻelua (ʻo 0b110 kēia ma ka hōʻike bit) ʻo ia hoʻi "heluhelu a kākau", a ʻo 0 ʻaʻohe mea no ke koena. . ʻO ka bitmask he ʻekolu mau ʻāpana: ʻo ka bit liʻiliʻi loa ("'ākau") ke kuleana no ka hoʻokō ʻana, ʻo ka ʻāpana aʻe ("waena") no ke kākau ʻana, a ʻo ka mea nui loa ("hema") no ka heluhelu ʻana.
Hiki iā ʻoe ke hoʻonohonoho i nā ʻae me ka hoʻohana ʻana i nā huapalapala kūikawā (mnemonic syntax). No ka laʻana, wehe mua kēia laʻana i nā kuleana hoʻokō no ka mea hoʻohana o kēia manawa a laila hoʻololi hou iā lākou:

[user@testhost ~]$ ls -l temp
-rwxrw---- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod -x temp
[user@testhost ~]$ ls -l temp
-rw-rw---- 1 user user 31 Nov 26 11:09 temp
[user@testhost ~]$ chmod +x temp
[user@testhost ~]$ ls -l temp
-rwxrwx--x 1 user user 31 Nov 26 11:09 temp

He nui ka hoʻohana ʻana o kēia kauoha, no laila ke aʻo aku nei au iā ʻoe e heluhelu hou aʻe e pili ana iā ia (e pili ana i ka syntax mnemonic, no ka laʻana, maanei).

E paʻi i nā mea i loko o kahi faila binary

Hiki ke hana i kēia me ka hoʻohana ʻana i ka pono hexdump. Aia ma lalo nā laʻana o kona hoʻohana ʻana.

[user@testhost ~]$ cat temp
Content of a file.
Lalalala...
[user@testhost ~]$ hexdump -c temp
0000000   C   o   n   t   e   n   t       o   f       a       f   i   l
0000010   e   .  n   L   a   l   a   l   a   l   a   .   .   .  n
000001f
[user@testhost ~]$ hexdump -x temp
0000000    6f43    746e    6e65    2074    666f    6120    6620    6c69
0000010    2e65    4c0a    6c61    6c61    6c61    2e61    2e2e    000a
000001f
[user@testhost ~]$ hexdump -C temp
00000000  43 6f 6e 74 65 6e 74 20  6f 66 20 61 20 66 69 6c  |Content of a fil|
00000010  65 2e 0a 4c 61 6c 61 6c  61 6c 61 2e 2e 2e 0a     |e..Lalalala....|
0000001f

Ke hoʻohana nei i kēia pono, hiki iā ʻoe ke hoʻopuka i ka ʻikepili i nā ʻano ʻē aʻe, akā ʻo kēia nā koho kūpono loa no ka hoʻohana ʻana.

Huli i nā faila

Hiki iā ʻoe ke loaʻa kahi faila ma kahi hapa o kona inoa ma ka lāʻau papa kuhikuhi me ka hoʻohana ʻana i ke kauoha loaa:

[user@testhost ~]$ find test_dir/ -name "*le*"
test_dir/file_1
test_dir/file_2
test_dir/subdir/file_3

Loaʻa nā koho hulina ʻē aʻe a me nā kānana. Eia kekahi laʻana, pehea e hiki ai iāʻoe ke loaʻa nā faila ma kahi waihona hōʻikei hana ʻia ma mua o 5 mau lā aku nei:

[user@testhost ~]$ ls -ltr test
total 0
-rw-rw-r-- 1 user user 0 Nov 26 10:46 temp_clone
-rw-rw-r-- 1 user user 0 Dec  4 10:39 created_today
[user@testhost ~]$ find test/ -type f -ctime +5
test/temp_clone

Huli kikokikona ma nā waihona

E kōkua ka hui iā ʻoe e hoʻokō i kēia hana ʻoliʻoli. He nui kona mau hoʻohana, ʻo ka mea maʻalahi loa i hāʻawi ʻia ma ʻaneʻi ma ke ʻano he laʻana.

[user@testhost ~]$ grep -nr "content" test_dir/
test_dir/file_1:1:test content for file_1
test_dir/file_2:1:test content for file_2
test_dir/subdir/file_3:1:test content for file_3

ʻO kekahi o nā ala kaulana e hoʻohana ai i ke kauoha ʻoliʻoli - hoʻohana ia i loko o kahi paipu (paipu):

[user@testhost ~]$ sudo tail -f /var/log/test.log | grep "ERROR"

Koho -v hiki iā ʻoe ke hana i kahi hopena ʻoliʻoli'a me ka hope - nā laina wale nō ʻaʻole i loaʻa ke kumu hoʻohālike i hāʻawi ʻia i ʻoliʻoli.

Nānā i nā pūʻolo i hoʻokomo ʻia

ʻAʻohe kauoha āpau, no ka mea, pili nā mea āpau i ka hoʻohele Linux a me ka luna hoʻohana i hoʻohana ʻia. E kōkua paha kekahi o kēia mau kauoha iā ʻoe:

yum list installed
apt list --installed
zypper se —installed-only
pacman -Qqe
dpkg -l
rpm -qa

E ʻike i ka nui o ka nui o ka lāʻau papa kuhikuhi

ʻO kekahi o nā koho no ka hoʻohana ʻana i ke kauoha du:

[user@testhost ~]$ du -h -d 1 test_dir/
8,0K test_dir/subdir
20K test_dir/

Hiki iā ʻoe ke hoʻololi i ka waiwai hoʻohālikelike -de kiʻi i ka ʻike kikoʻī e pili ana i ka lāʻau kuhikuhi. Hiki iā ʻoe ke hoʻohana i ke kauoha i hui pū me hoʻokaʻina:

[user@testhost ~]$ du -h -d 1 test_dir/ | sort -h
8,0K test_dir/subdir
16K test_dir/subdir_2
36K test_dir/
[user@testhost ~]$ du -h -d 1 test_dir/ | sort -h -r
36K test_dir/
16K test_dir/subdir_2
8,0K test_dir/subdir

Koho -h ka hui hoʻokaʻina hiki iā ʻoe ke hoʻokaʻawale i nā nui i kākau ʻia ma ke ʻano heluhelu kanaka (no ka laʻana, 1K, 2G), koho -r hiki iā ʻoe ke hoʻokaʻawale i ka ʻikepili ma ka ʻaoʻao hope.

"E ʻimi a hoʻololi" i kahi faila, i nā faila ma kahi papa kuhikuhi

Hana ʻia kēia hana me ka hoʻohana ʻana i ka pono (ʻaʻohe hae g i ka hopena, e hoʻololi wale ʻia ka mea mua o ka "text kahiko" ma ka laina):

sed -i 's/old-text/new-text/g' input.txt

Hiki iā ʻoe ke hoʻohana iā ia no kekahi mau faila i ka manawa hoʻokahi:

[user@testhost ~]$ cat test_dir/file_*
test content for file_1
test content for file_2
[user@testhost ~]$ sed -i 's/test/edited/g' test_dir/file_*
[user@testhost ~]$ cat test_dir/file_*
edited content for file_1
edited content for file_2

E kaha i ke kolamu mai ka puka

E kōkua ia e hoʻokō i kēia hana ʻAha. Hōʻike kēia laʻana i ke kolamu ʻelua o ka hoʻopuka kauoha ʻps ux`:

[user@testhost ~]$ ps ux | awk '{print $2}'
PID
11023
25870
25871
25908
25909

I ka manawa like, pono e hoʻomanaʻo i kēlā ʻAha ʻoi aku ka waiwai o ka hana, no laila inā pono ʻoe e hana me ka kikokikona ma ka laina kauoha, pono ʻoe e heluhelu hou e pili ana i kēia kauoha.

E ʻike i ka helu IP ma ka inoa inoa

E kōkua kekahi o kēia mau kauoha i kēia:

[user@testhost ~]$ host ya.ru
ya.ru has address 87.250.250.242
ya.ru has IPv6 address 2a02:6b8::2:242
ya.ru mail is handled by 10 mx.yandex.ru.

[user@testhost ~]$ dig +short ya.ru
87.250.250.242

[user@testhost ~]$ nslookup ya.ru
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: ya.ru
Address: 87.250.250.242

ʻIke Pūnaewele

Hiki ke hoʻohana inā loaʻa:

[user@testhost ~]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 47.89.93.67  netmask 255.255.224.0  broadcast 47.89.95.255
        inet6 fd90::302:57ff:fe79:1  prefixlen 64  scopeid 0x20<link>
        ether 04:01:57:79:00:01  txqueuelen 1000  (Ethernet)
        RX packets 11912135  bytes 9307046034 (8.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14696632  bytes 2809191835 (2.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 10  bytes 866 (866.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10  bytes 866 (866.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

A i ʻole paha ip:

[user@testhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 04:01:57:79:00:01 brd ff:ff:ff:ff:ff:ff
    inet 47.89.93.67/19 brd 47.89.95.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd90::302:57ff:fe79:1/64 scope link
       valid_lft forever preferred_lft forever
3: ip_vti0: <NOARP> mtu 1500 qdisc noop state DOWN group default
    link/ipip 0.0.0.0 brd 0.0.0.0

Eia kekahi, inā, no ka laʻana, makemake wale ʻoe iā IPv4, a laila hiki iā ʻoe ke hoʻohui i ke koho -4:

[user@testhost ~]$ ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 47.89.93.67/19 brd 47.89.95.255 scope global eth0
       valid_lft forever preferred_lft forever

Nānā i nā awa hāmama

No ka hana ʻana i kēia, e hoʻohana i ka pono Netstat. No ka laʻana, no ka nānā ʻana i nā awa hoʻolohe TCP a me UDP me kahi hōʻike o ka PID o ke kaʻina hana e hoʻolohe ana ma ke awa a me kahi hōʻike helu o ke awa, pono ʻoe e hoʻohana me nā koho aʻe:

[user@testhost ~]$ netstat -lptnu

ʻIke pūnaewele

Hiki iā ʻoe ke loaʻa kēia ʻike me ke kauoha uname.

[user@testhost ~]$ uname -a
Linux alexander 3.10.0-123.8.1.el7.x86_64 #1 SMP Mon Sep 22 19:06:58 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

No ka hoʻomaopopo ʻana i ke ʻano i hana ʻia ai ka hopena, hiki iā ʻoe ke kuhikuhi i kokua'no keia kauoha:

[user@testhost ~]$ uname --help
Использование: uname [КЛЮЧ]…
Печатает определенные сведения о системе.  Если КЛЮЧ не задан,
подразумевается -s.

  -a, --all          напечатать всю информацию, в следующем порядке,
                       кроме -p и -i, если они неизвестны:
  -s, --kernel-name  напечатать имя ядра
  -n, --nodename     напечатать имя машины в сети
  -r, --release      напечатать номер выпуска операционной системы
  -v, --kernel-version     напечатать версию ядра
  -m, --machine            напечатать тип оборудования машины
  -p, --processor          напечатать тип процессора или «неизвестно»
  -i, --hardware-platform  напечатать тип аппаратной платформы или «неизвестно»
  -o, --operating-system   напечатать имя операционной системы
      --help     показать эту справку и выйти
      --version  показать информацию о версии и выйти

ʻIke hoʻomanaʻo

No ka hoʻomaopopo ʻana i ka nui o ka RAM i noho ʻia a manuahi paha, hiki iā ʻoe ke hoʻohana i ke kauoha like me.

[user@testhost ~]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        555M        143M         56M        3,2G        3,0G
Swap:            0B          0B          0B

ʻIke e pili ana i nā ʻōnaehana waihona (wahi disk manuahi)

hui df hiki iā ʻoe ke ʻike i ka nui o ka hakahaka a noho ʻia ma nā ʻōnaehana faila i kau ʻia.

[user@testhost ~]$ df -hT
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/vda1        ext4        79G          21G   55G           27% /
devtmpfs         devtmpfs   2,0G            0  2,0G            0% /dev
tmpfs            tmpfs      2,0G            0  2,0G            0% /dev/shm
tmpfs            tmpfs      2,0G          57M  1,9G            3% /run
tmpfs            tmpfs      2,0G            0  2,0G            0% /sys/fs/cgroup
tmpfs            tmpfs      396M            0  396M            0% /run/user/1001

Koho -T e kuhikuhi ana i ke ʻano o ka ʻōnaehana waihona e hoʻomaopopo ʻia.

ʻIke e pili ana i nā hana a me nā ʻikepili like ʻole ma ka ʻōnaehana

No ka hana ʻana i kēia, e hoʻohana i ke kauoha luna. Hiki iā ia ke hōʻike i nā ʻike like ʻole: no ka laʻana, nā kaʻina kiʻekiʻe e ka hoʻohana ʻana i ka RAM a i ʻole nā ​​​​kaʻina kiʻekiʻe e ka hoʻohana manawa CPU. Hōʻike pū ia i ka ʻike e pili ana i ka hoʻomanaʻo, CPU, uptime a me LA (load average).

[user@testhost ~]$ top | head -10
top - 17:19:13 up 154 days,  6:59,  3 users,  load average: 0.21, 0.21, 0.27
Tasks: 2169 total,   2 running, 2080 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.7%us,  0.7%sy,  0.0%ni, 97.5%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  125889960k total, 82423048k used, 43466912k free, 16026020k buffers
Swap:        0k total,        0k used,        0k free, 31094516k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  25282 user      20   0 16988 3936 1964 R  7.3  0.0   0:00.04 top
   4264 telegraf  20   0 2740m 240m  22m S  1.8  0.2  23409:39 telegraf
   6718 root      20   0 35404 4768 3024 S  1.8  0.0   0:01.49 redis-server

He waiwai nui kēia pono, no laila inā pono ʻoe e hoʻohana pinepine, ʻoi aku ka maikaʻi o ka heluhelu ʻana i kāna palapala.

Hoʻokuʻu kaʻapuni pūnaewele

No ka hoʻopaʻa ʻana i ka ʻoihana pūnaewele ma Linux, hoʻohana ʻia kahi pono tcpdump. No ka hoʻolei ʻana i ke kaʻa ma ke awa 12345, hiki iā ʻoe ke hoʻohana i kēia kauoha:

[user@testhost ~]$ sudo tcpdump -i any -A port 12345

Koho -A 'ōlelo mākou makemake mākou e ʻike i ka hopena ma ASCII (no laila maikaʻi ia no nā protocol text), -i kekahi e hōʻike ana ʻaʻole mākou makemake i ke kikowaena pūnaewele, ke awa — ʻo ke awa kaʻa e hoʻolei ai. Ma kahi o ke awa hiki iāʻoe ke hoʻohana koa, a i ʻole he hui koa и ke awa (host A a me ke awa X). ʻO kekahi koho kūpono paha -n - mai hoʻololi i nā helu wahi i nā inoa inoa ma ka hoʻopuka.
He aha inā he binary ke kaʻa? A laila e kōkua ke koho iā mākou -X - ka ʻikepili puka ma ka hex a me ka ASCII:

[user@testhost ~]$ sudo tcpdump -i any -X port 12345

Pono e noʻonoʻo ʻia ma nā hihia ʻelua e hoʻopuka ʻia nā ʻeke IP, no laila i ka hoʻomaka ʻana o kēlā me kēia o lākou e loaʻa nā poʻomanaʻo IP binary a me TCP. Eia kahi hiʻohiʻona puka no ka nīnau "123" hoʻouna ʻia i ke kikowaena e hoʻolohe ana ma ke awa 12345:

[user@testhost ~]$ sudo tcpdump -i any -X port 12345
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
14:27:13.224762 IP localhost.49794 > localhost.italk: Flags [P.], seq 2262177478:2262177483, ack 3317210845, win 342, options [nop,nop,TS val 3196604972 ecr 3196590131], length 5
    0x0000:  4510 0039 dfb6 4000 4006 5cf6 7f00 0001  E..9..@.@......
    0x0010:  7f00 0001 c282 3039 86d6 16c6 c5b8 9edd  ......09........
    0x0020:  8018 0156 fe2d 0000 0101 080a be88 522c  ...V.-........R,
    0x0030:  be88 1833 3132 330d 0a00 0000 0000 0000  ...3123.........
    0x0040:  0000 0000 0000 0000 00                   .........

Ma kahi o ka hoʻopuka

ʻOiaʻiʻo, nui nā mea hoihoi i Linux hiki iā ʻoe ke heluhelu e pili ana iā Habré, StackOverflow a me nā pūnaewele ʻē aʻe (E hāʻawi wau iā ʻoe i kahi laʻana. Ke Kii o ka Laina Kauoha, ʻo ia hoʻi ma ka unuhi). Hoʻohana nā luna ʻōnaehana a me nā DevOps i nā kauoha a me nā pono hana hou aʻe e hoʻonohonoho i nā kikowaena, akā ʻaʻole lawa paha nā mea hōʻike i nā kauoha i helu ʻia. Pono paha ʻoe e nānā i ka pololei o kekahi manawa hoʻopunipuni ma waena o ka mea kūʻai aku a me ke kikowaena, a i ʻole ka hana ʻana o ke kikowaena inā ʻaʻohe wahi kaʻawale. ʻAʻole wau e kamaʻilio e pili ana, no ka laʻana, Docker, ka mea i hoʻohana ikaika ʻia e nā hui he nui. He mea hoihoi paha ia, ma ke ʻano he ʻāpana o ka hoʻomau ʻana o kēia ʻatikala kuhikuhi, e nānā i kekahi mau hiʻohiʻona o ka hoʻohana ʻana i nā ʻenehana console Linux ma ke kaʻina o nā lawelawe hoʻāʻo? E kaʻana like i kāu mau hui kiʻekiʻe ma nā manaʻo :)

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka