Статьи

Достаточно Ops of Devs


Несколько недель назад я читал документацию шеф-повара и наткнулся на страницу «Достаточно рубина для шеф-повара».
Это вдохновило меня написать небольшую статью о том, сколько Linux нужно знать разработчику. Я собираюсь сделать это как серию и выпустить один из них в неделю.

 

Как использовать и генерировать ключи SSH

Я уже рассказывал , как создать их здесь , но вы должны знать , как создать distrubute и ключи изменить SSH. Это облегчит обсуждение доступа к рабочим серверам с вашей рабочей группой и, вероятно, облегчит использование таких вещей, как Github.
 

Как пользоваться |

Если вы когда-то использовали unix, вы можете быть знакомы с этим. Труба или | может использоваться для отправки вывода от одного процесса другому. Вот хороший пример его использования:

user@host:~$ ifconfig 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:344493 errors:0 dropped:0 overruns:0 frame:0
          TX packets:344493 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:92854063 (92.8 MB)  TX bytes:92854063 (92.8 MB)
user@host:~$ ifconfig |grep 127
          inet addr:127.0.0.1  Mask:255.0.0.0

Как использовать смолу

Tar — это одна из тех базовых команд Unix, которые вам нужно знать. Это универсальный инструмент архивации для * nix систем (аналог Zip для Windows). Вы должны знать, как создать архив и расширить архив. Я рассматриваю это только с включенным сжатием, если у вас нет gzip или вы не хотите, чтобы он пропускал опцию z.

user@host:~/example$ ls foo
file1  file2  file3
# create an archive with the c option
user@host:~/example$ tar czvf foo.tar.gz foo
foo/
foo/file1
foo/file3
foo/file2
# use t option to see whats in the archive
user@host:~/example$ tar tzvf foo.tar.gz 
drwxrwxr-x user/user     0 2012-12-11 23:40 foo/
-rw-rw-r-- user/user     0 2012-12-11 23:40 foo/file1
-rw-rw-r-- user/user     0 2012-12-11 23:40 foo/file3
-rw-rw-r-- user/user     0 2012-12-11 23:40 foo/file2
# remove foo
user@host:~/example$ rm -rf foo
user@host:~/example$ ls foo
ls: cannot access foo: No such file or directory
# use tar to expand the archive
user@host:~/example$ tar xzvf foo.tar.gz 
foo/
foo/file1
foo/file3
foo/file2
user@host:~/example$ ls foo
file1  file2  file3
user@host:~/example$

Команда файла

Файл волшебный. Он будет смотреть на файл и даст вам лучшее предположение о том, что это такое. Использование:

   user @ host: ~ / example $ file foo.tar.gz 

foo.tar.gz: gzip compressed data, from Unix, last modified: Tue Dec 11 23:40:46 2012

Строка команды

Вы когда-нибудь хотели читать строки из двоичного файла? Команда strings сделает это за вас. Просто запустите «strings», и вы получите дамп всех строк из этого файла. Это особенно полезно при поиске строк в старых файлах PCAP или в случае подделки двоичного файла.

   # пример файла

user@host:/bin$ file lsmod
lsmod: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0x75dd24005af3d06b596c26004e04e12106d5fc57, stripped
 
# getting string in a file
user@host:/bin$ strings lsmod 
/lib64/ld-linux-x86-64.so.2
&lY!
__gmon_start__
libc.so.6
__printf_chk
exit
fopen
perror
puts
putchar
strtok
fgets
....

Как использовать grep

Grep можно использовать для извлечения строк текста из файла или потока, соответствующих определенному шаблону. Это действительно богатая команда, и ей должна быть посвящена целая статья. Вот несколько очень простых случаев использования.

Чтобы соответствовать шаблону:

$ cat test.txt 
a
b
c
d
e
 
$ grep a test.txt
a
 
$ cat test.txt | grep a
a

Чтобы вытянуть все строки, не соответствующие шаблону:

$ cat test.txt 
a
b
c
d
e
 
$ grep -v a test.txt
b
c
d
e
 
$ cat test.txt | grep -v a
b
c
d
e

Как считать строки в файле

Команды wc будут считать строки, слова и байты в файле. Параметры по умолчанию вернут все три, если вы хотите только подсчитать строки в файле, используйте параметр -l, который будет выводить только строки в файле. Вот пример:

user@host:~$ wc -l file.txt
164 file.txt

Подсчитайте уникальные случаи чего-либо

Может показаться, что он вне досягаемости bash, но вы можете сделать это простым простым вкладышем. Вам просто нужно ввести:

user@host:~/example$ cat test.txt 
a
b
c
a
a
a
b
b
c
c
 
user@host:~/example$ sort test.txt |uniq -c |sort -n
      3 b
      3 c
      4 a

Это подсчитывает все уникальные вхождения строки, а затем сортирует их численно.

После вывода файла с хвостом

Хвост очень полезная команда; он выведет последние 10 строк файла по умолчанию. Но иногда вам нужно постоянно просматривать файл. К счастью, хвост может решить это за вас. Опция -f будет печатать новые строки по мере их добавления. Пример:

user@host:~/example$ tail -f /var/log/syslog
Dec 11 22:48:54 host wpa_supplicant[1211]: WPA: Group rekeying completed with 10:6f:3f:0c:11:49 [GTK=TKIP]

Я буду следить за этим через неделю, с большим количеством Linux для разработчиков. Надеюсь, вы нашли это полезным.