Някои основни полезни команди
Вече ви дадохме основна разбивка на скриптовете на Shell и примерно базирано очертание на за цикли, но не забравяйте да проверите тези статии, ако досега сте пропуснали нашето ръководство за скриптове на Shell.
Командната линия е чудесна по много причини, а пренасочването е едно от най-важните. Ако трябваше да отбележите и да възпроизведете изхода на всяка команда, за да предприемете по-нататъшни действия или да използвате това за нещо друго, щяхме да сме луди преди много време. Пренасочването ни позволява да използваме този изход и да го запазим или да го използваме веднага като вход за друга команда. Можем да използваме и файлове като входове за други команди.
Преди да продължим, нека да разгледаме някои основни команди, които могат да бъдат полезни на много различни места.
ехо - Тази команда просто отпечатва (показва) целия си аргумент на командния ред като изход
echo argument with spaces
котка - Тази команда показва съдържанието на текстовите файлове като изход.
cat file_to_be_read
Да приемем, че създаваме този текстов файл в нано:
grep pattern file
Пренасочващи изходи
За да пренасочим изхода на команда към файл, използваме специален символ, по-голям от символ (>).
Да променим списъка си, нали? Въведете следната команда:
echo pepperoni > list
Също така имайте предвид, че предишното съдържание на "списъка" е премахнато. Опитай отново:
echo yellow peppers >> list
Да вземем изхода на команда и да я сложим в файл:
ls –al / > ~/rootlist
Тръби или верига
Тръбопроводът е наречен така, защото използва тръбата, (|, споделена с клавиша на повечето клавиатури). По същество това отнема изхода на една команда и директно я захранва с друга. Можете да създадете дълги вериги от команди, за да получите много специфичен желан изход по този начин и това е много удобно за команди като grep.
Както можете да видите, grep е чувствителна към малки и големи букви. Можете да използвате флага "-i", за да го пренебрегнете.
Пренасочване на входове
Можете също така да взимате данни от файлове за команди, като използвате символа, който е по-малко от (<).
cat < list
Да приемем, че искаме да филтрираме всяка дума, която има "pep" в нея от нашия текущ "списък" файл в нов файл, наречен "revisions".
grep pep < list > revisions
grep pep < list | sort > revisions
За да илюстрираме командата за сортиране, нека разгледаме следния пример:
Прост скрипт
Нека създадем скрипт, който има следната форма:
script searchterm listfile
Това ще отнеме термина и ще използва grep, за да претърси файл от списъка, да сортира резултатите и после да ги изведе в друг файл.
Що се отнася до сортирането, можете да направите нещо повече от подреждане по азбучен ред. Разгледайте страницата на човека за някои от следните команди:
- tsort - по-модерна топологична функция за сортиране
- tr - ви позволява да картите конкретни знаци на други символи и да транскрибирате между тях.
- uniq - премахва всички не-уникални (чете: дубликат)
- awk - наистина усъвършенстван език / функция за обработка на текст, която може да се използва за отделяне на полета в имена на файлове
- cut, paste / join - команди, полезни за изолиране на полета от текстови файлове и добавяне на нови данни в колони
- изглежда - търсене като grep, но използва речник файл (който може да бъде определен от потребителя) за търсене
- wc - ви позволява да получавате брой думи, брой линии, брой знаци и др
Разгледахме още някои основни неща, които могат да бъдат полезни на команден ред, както в скриптовете. Текстовите данни често са в основата на нещата, които използваме ежедневно, затова можем да работим с тях, да ги търсим и да ги манипулираме.
Какви са някои от любимите ви скриптове? Имате ли скриптове със специална употреба за текстови файлове? Споделете какво знаете в коментарите!