Вопрос програмистам
Вопрос знающим...
Недавно исправлял ошибки в винде через командную строку,но суть не в этом,
когда посмотрел что вообще там происходит (не особо в этом шарю но всё же) увидел бегущие процентики(%), погуглив ничего на эту тему не нашел, вопрос-как самому это сделать.Например через текстовый можно задавать что там выскочит, например текст какой или ещё чего, а вот как сделать сменяющююся анимацию, теже проценты, или например на месте текста "выполняется" выполнено, или сменить цвет этого цвета и только его, например всё пишется белым, и только само слово зелёным?
Пожалуйста не минусите, лутше просто мимо пройдите тогда.
P.S чтобы через текстовый вводить что высветится в командной строке на русском нужно написать chpl 1252?
Помогите сделать .bat файл
Пытаюсь создать небольшой .bat файл, который будет выключать компьютер в 17:00 (ну если совсем точно, то в 16:48:30). Вот его код:
copy %0 "\Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup"
set now=%time%
for /f "tokens=1-3 delims=:." %a in ( "%now%" ) do (set/a now=61110-%a*3600-%b*60-%c)
%windir%/system32/shutdown.exe /s /t %now%
Проблема заключается в том, что почему то при запуске этого .bat файла не выполняется цикл. Если вбивать эти команды напрямую в командную строку, то все работает, а если запускать через .bat файл, то ничего не выходит. Если кто может, то помогите плз.
P.S. я начал изучать команды командной строки 3 дня назад, так что если здесь какая то детская ошибка, то прошу строго не судить
Консоль Linux [Часть 4]
13. rm (Remove / удалить)
Думаю, что сейчас у нас появилось множество файлов, давайте удалим несколько. Для того, чтобы удалить файлы вы можете использовать команду rm. Команда rm (remove / удалить) используется для удаления файлов и директорий.
$ rm file1
Будьте осторожны при использовании rm, т.к. не существует волшебной корзины, из которой вы сможете достать удаленные файлы. Однажды исчезнув, они исчезнут навсегда, так что будьте осторожны.
К счастью, существуют меры безопасности, так что очередной Вася не сможет удалить кучу важных файлов. Защищенные от записи файлы спросят ваше подтверждение перед тем, как удалить их. Если директория также защищена от записи, то ее тоже будет не легко удалить.
Но если вам все равно, вы все таки можете удалить множество важных файлов.
$ rm -f file1
Флаг -f или force (насильно) прикажет rm удалить все файлы не зависимо от того, защищены они от записи или нет, без уведомления пользователя (до тех пор, пока у вас есть соответствующие права).
$ rm -i file
Добавление флага -i, также как и к другим командам, будет выдавать запросы на удаление файлов или директорий.
$ rm -r directory
Вы не можете удалить каталог по-умолчанию, поэтому вам нужно добавить флаг -r для удаления всех файлов и подкаталогов, которые у вас есть.
Вы также можете удалить каталог с командой rmdir.
$ rmdir directory
Упражнения:
1. Создайте файл -file (не забудьте тире!).
2. Удалите этот файл.
14. find (найти)
Со всеми теми файлами, которые есть у вас в системе, вам нужно подсуетиться, чтобы найти какой-то один. Для этого мы можем использовать команду find (найти)!
$ find /home -name puppies.jpg
Для find вам нужно задать директорию, в которой вы будете искать, и что вы хотите найти, в этом случае мы пытались найти файл по имени puppies.jpg.
Вы можете указать тип файла, который вы пытетесь найти.
$ find /home -type d -name MyFolder
Как видите, я указал тип файла, который я ищу как директорию (d) и имя MyFolder.
Есть одна крутая вещь, find не останавливается на поиске только внутри данной директории, а продолжает искать то, что вы ищете внутри подкаталогов, которые могут быть в директории.
Задания:
Найдите файл из корневой директории, у которого в названии есть слово net.
15. help (помощь)
Linux имеет несколько встроенных иструментов, которые помогут вам узнать для чего используется та или иная команда, и какие флаги доступны для команды. Первый инструмент, help, встроенная в bash команда, которая предоставит вам помощь для других команд bash (echo, logout, pwd и т.д.)
$ help echo
Эта команда даст вам описание и опции, которые вы можете использовать для запуска echo. Для других исполняемых программ существует традиция иметь функцию --help или что-то вроде того.
$ echo --help
Не все разработчики, которые выпускают программы, следуют этой традиции, поэтому, возможно, вам стоит постараться самим, чтобы найти помощь к программе.
Упражнения:
Выполните команду help на командах echo, logout и pwd.
16. man (manual / руководство)
Надеюсь, что у этих программ есть руководство, чтобы мы могли узнать больше информации о них. К счастью оно есть и носит название справочных страниц (man pages)! Вы можете просмотреть руководство для команд с помощью man.
$ man ls
Справочные страницы (man pages) - справочники, которые встроены в большинство операционных систем Linux. Они предоставляют документацию о командах и других аспектах системы.
Упражнения:
Попробуйте выполнить man на нескольких командах, чтобы получить больше информации о них.
17. whatis (что такое)
Уфф, пока мы узнали совсем немного команд, если вы сомневаетесь о том, что делает команда, то вы можете использовать команду whatis. Эта команда предоставит краткое описание консольных программ.
$ whatis cat
Описание исходит со справочных страниц каждой команды. Если вы запустите whatis cat, то вы увидите небольшую заметку с кратким описанием.
Упражнения:
Запустите комнду whatis на команде less.
18. alias (Алиас, псевдоним)
Иногда печатание команд может стать частым делом, и если вам потребуется написать длинную команду множество раз, лучше всего создать алиас. Для того, чтобы создать алиас для команды, просто введите alias, имя и присвойте его команде.
$ alias foobar='ls -la'
Теперь вместо набор ls -ls, вы можете напечатать foobar и команда исполнится, довольно интересно. Помните, что эта команда не сохраняет ваши алиасы после перезагрузки, так что если вам понадобится постоянный алиас, поместите его в:
~/.bashrc
или в похожие файлы, если они сохраняются после перезагрузки.
Вы можете удалить алиасы с командой unalias:
$ unalias foobar
Упражнения:
Создайте несколько алиасов, затем удалите их.
19. exit (выход)
Вы проделали хорошую работу, пройдя через эти основы. Но мы затронули только вершину айсберга, теперь, после того как вы научились ползать, вы должны научиться ходить.
Сейчас вы можете похлопать себя по спине и отдохнуть. Для выхода из консоли вы можете использовать команду exit (выход):
$ exit
Или команду logout (выход из системы):
$ logout
Или, если вы работали с терминалом с GUI, вы можете просто закрыть консоль.
Вместе с консолью закрывается и наш курс. Спасибо за внимание.
0124
Консоль Linux [Часть 3]
9. history (история)
В оболочке присуствует история команд, которые вы вводили ранее, вы можете их просмотреть. Довольно полезно бывает найти и выполнить команду, которую вы вводили ранее, не печатая ее снова.
$ history
Хотите запусть команду, которую запускали до этого момент, просто нажмите стрелку вверх.
Хотите запустить команду, введенную ранее, без ее набора? Используйте !!. Если вы ввели cat file1 и хотите запустить ее еще раз, вы можете просто набрать !!, это выполнит последнюю команду, которую вы запускали.
Другой способ пробежаться по истории - ctrl + R, это команда обратного (Reverse) поиска, если вы нажмете ctrl + R и начнете печатать часть команды, которую вы хотите, команда покажет вам совпадения, по которым вы можете перемещаться нажав ctrl + R снова. Найдя нужную команду, нажмите Enter.
В нашем терминале образовался беспорядок, не так ли? Давайте его немного почистим, используйте команду clear (очистить) для очистки экрана.
$ clear
Так лучше, не правда ли?
Пока мы говорим об этих полезных вещах, одна из наиболее полезных функций в любой командной среде - автозавершение по tab. Если вы начнете печатать начало команды, файла, директории и т.д. и нажмете клавишу Tab, она автоматически завершит ввод, основываясь на том, что было найдено в директории, если не найдено других названий, начинающихся на те же буквы. Например, если вы хотите ввести команду chrome, вы можете ввести chr и нажать Tab, которая дополнит слово до chrome.
Упражнения:
Поперемещайтесь по истории ваших команд используя клавиши Вверх и Вних. Поиграйтесь с обратным поиском на ctrl + R.
10. cp (Copy / копировать)
Давайте начнем создавать копии файлов. Во многом похоже на копирование и вставку файлов в других операционных системах, оболчка дает нам более простой способ сделать это.
$ cp mycoolfile /home/pete/Documents/cooldocs
mycoolfile - это файл, который вы хотите скопирова и /home/pete/Documents/cooldocs - это то, куда вы хотите скопировать файл.
Вы можете копировать несколько файлов и директорий используя wildcard (подстановочный знак). Wildcard - символ, который может быть заменен на выбранный шаблон, давая большую гибкость при поиске. Вы можете использовать подстановочные знаки в любой команде для большей гибкости.
* wildcard всех wildcard'ов, используется для обозначения любых символов или строк
? используется для обозначения одного символа
[] используется для обозначения любого символа в скобках
$ cp *.jpg /home/pete/Pictures
Это скопирует все файлы с расширением .jpg в текущей директории в каталог Pictures.
Полезно дополнить команду флагом -r (recursively/рекурсивно), которая рекурсиво скопирует файлы и директории внутри каталога.
Попробуйте выполнить cp на директории, которая содержит несколько файлов в вашу директорию Documents. Не сработало? Это потому что необходимо также скопировать файлы и каталоги с флагом -r
$ cp -r Pumpkin/ /home/pete/Documents
Заметьте одну вещь, если вы копируете файл в директорию, которая содержит файл с таким же именем, то этот файл будет перезаписан на то, что вы копируете. Это плохо, если у вас есть файл, который вы не хотите случайно перезаписать. Вы можете использовать флаг -i (interactive/интерактивно), чтобы получить запрос на перезапись файла.
$ cp -i mycoolfile /home/pete/Pictures
Упражнения:
Скопируйте несколько файлов, будьте осторожны, не перезапишите что-нибудь важное.
11. mv (Move / переместить)
Используется, чтобы перемещать файлы и переименовывать их. Довольно похоже на команду cp, касательно флагов и функциональности.
Вы можете переименовать файлы вот так:
$ mv oldfile newfile
Или вы можете переместить файл в другую директорию:
$ mv file2 /home/pete/Documents
А также перемещать больше, чем один файл:
$ mv file_1 file_2 /somedirectory
Директории тоже можно переименовывать:
$ mv directory1 directory2
Также как и cp, если вы перемещаете файл или директорию, mv может что-либо перезаписать. Так что вы можете использовать флаг -i для получения запроса на перезапись.
mv -i directory1 directory2
Давайте скажем, что вы хотели переместить файл с перезаписью первого. Вы можете сделать резервную копию (backup) этого файла и переименовать его старую версию с помощю -b.
$ mv -b directory1 directory2
Упражнения:
Переименуйте файл, затем переместите его в другой каталог.
12. mkdir (Make Directory / создать каталог)
Нам потребуются несколько каталогов для того, чтобы хранить те файлы, над которыми мы работем. Для этого нам пригодится команда mkdir (make directory / создать каталог), которая создаст новую директорию, если она еще не существует. Вы можете создавать несколько директорий в одно и то же время.
$ mkdir books paintings
Вы также можете создавать подкаталоги с флагом -p (parent / родитель).
$ mkdir -p books/hemmingway/favorites
Упражнения:
Создайте несколько директорий и переместите туда несколько файлов.
Консоль Linux [Часть 2]
Содержание:
Продолжаю переводить урок по консоли на linux journey. Обо всех ошибках пишите сразу, т.к. время на редактирование ограничено. Если ставите минус - тоже пишите, буду исправляться
4. ls (List Directories / список директорий)
Мы умеем перемещаться по файловой системе, но как мы можем понять, где мы можем перемещаться? Сейчас мы как будто ходим в темноте. Так вот, мы можем исопльзовать замечательную команду ls для вывода списка содержимого каталога. Команда ls отобразит список директорий и файлов в текущей директории по-умолчанию, однако вы можете указать по какому пути вы хотите получить список.
$ ls
$ ls /home/pete
Это довольно полезный иструмент, который показывает вам детальную информацию о необходимых файлах и каталогах.
Также обратите внимание, что не все файлы в директории будут видимы. Файлы, чье имя начинается на . - скрыты, вы можете увидеть эти файлы добавив к ls флаг (flag) -a (all / все).
$ ls -a
Есть еще один полезный флаг -l (long / длинный), который покажет вам детальный лист в "длинном" формате. Этот флаг отображает детальную информацию, начиная слева: рарешения файла (file permissions), количество ссылок, имя владельца, группу владельца, размер файла, время последнего изменения (timestamp) и имя директории/файла.
$ ls -l
pete@icebox:~$ ls -l
total 80
drwxr-x--- 7 pete penguingroup 4096 Nov 20 16:37 Desktop
drwxr-x--- 2 pete penguingroup 4096 Oct 19 10:46 Documents
drwxr-x--- 4 pete penguingroup 4096 Nov 20 09:30 Downloads
drwxr-x--- 2 pete penguingroup 4096 Oct 7 13:13 Music
drwxr-x--- 2 pete penguingroup 4096 Sep 21 14:02 Pictures
drwxr-x--- 2 pete penguingroup 4096 Jul 27 12:41 Public
drwxr-x--- 2 pete penguingroup 4096 Jul 27 12:41 Templates
drwxr-x--- 2 pete penguingroup 4096 Jul 27 12:41 Videos
У команд есть такие штуки, которые называются флагами (или аргументами, или опциями, называйте как хотите) для добавления дополнительной функциональности. Посмотрите как мы добавили -a и -l, но вы можете добавить их вместе с -la. Последовательность флагов определяет порядок, в котором они выполняются, но большую часть времени она ни на что не влияет, и вы также можете использовать -al, что тоже будет работать.
$ ls -la
Упражнения:
Запустите ls с различными флагами и посмотрите на вывод, который вы получите.
ls -R: рекурсивное (Recursively) отображение содержимого каталога
ls -r: сортировать в обратном (reverse) порядке
ls -t: сортировать по времени (time) изменения, сперва новые
5. touch (дотронуться)
Давайте узнаем как создавать некоторые файлы. Очень простой способ это сделать - использовать команду touch. Touch позволяет вам создавать новые пустые файлы.
$ touch mysuperduperfile
И бац, новый файл!
Touch также используется для изменения времени последнего изменения на файлах и директориях. Давайте попробуем, выполните ls -l на файле и обратите внимание на время, затем выполните touch, который обновит время изменения.
Существует множество способов создавать файлы, таких как перенаправление, тектовые реакторы, но они изучаются в курсе манипуляции с текстом (не переведено, может быть, переведу позже).
Упражнения:
Создайте новый файл
Запомните время изменения
Выполните touch и проверьте дату изменения снова
6. file (файл)
В предыдуем уроке мы изучили touch, давайте вернемся немного назад. Вы замечали, что имя файла не соответствует стандарту наименования файлов, который вы, возможно, замечали в других операционных системах, таких как Windows? Обычно вы ожидаете файл, названный banana.jpeg и ждете файл JPEG с картинкой.
В Linux имена файлов не требуют представлять содержимое файла. Вы можете создать файл funny.gif, который на деле - не GIF.
Чтобы обнаружить, к какому типу принадлежит файл, вы можете использовать команду file. Она покажет описание содержимого файла.
$ file banana.jpg
Упражнения:
Выполните команду file на нескольких каталогах и файлах
7. cat (catenate / concatenate / сцеплять)
Мы почти закончили с навигацией по файлам, но давайте сначала научимся как читать файл. Простая команда для этого cat, сокращенно от "конкатенация" (concatenate, catenate), она не только отображает содержимое файла, но также может комбинировать содержимое нескольких файлов и отображать их вывод вам.
$ cat dogfile birdfile
Команда не очень хорошо подходит для просмотра больших файлов и предназначена для короткого содержимого. Существует множество инструментов, которые позволяют просматривать файлы большего размера, и о них мы поговорим в следующем уроке.
Упражнения:
Выполните команду cat на различных файлах и директориях, затем попробуйте использовать cat на нескольких файлах одновременно.
8. less (меньше)
Если вы просматриваете текстовые файлы, которые больше, чем простой вывод, то less (меньше) - значит больше. (Существует также команда, названная more (больше), которая делает похожие вещи, но обладает меньшим функционалом, иронично). Текст отображается постранично, а значит вы можете перемещаться по тексту страница за страницей.
Пойдем дальше и вглянем на содержимое файла с less. Однажды введя команду less, вы можете перемещаться по документу с помощью клавиатуры.
$ less /home/pete/Documents/text1
Используйте эти команды для навигации с помощью less:
q - Используется для выхода из less и возврата в вашу оболочку.
Page up, Page down, Вверх и Вниз - Перемещение с помощью стрелок и кнопок страниц.
g - Перемещает к началу файла.
G - Перемещает в конец файла.
/search - Вы можете искать (search) определенный текст внутри документа. Определяйте слова, которые вы хотите найти с помощью /
h - Если вам нужна небольшая помощь по использованию less, пока вы в less, воспользуйтесь помощью (help)
Упражнения:
Запустите less на файле, затем пролистайте пару страниц. Попробуйте найти какое-либо слово. Переместитесь в начало и в конец файла.
Консоль Linux [Часть 1]
@Snipers публиковала ссылку на linux journey. Сайт понравился. Решил попробовать что-то перевести оттуда. Этим "что-то" стала "Командная строка".
UPD: Если ставите минус - пишите за что, я хоть и ИИ, но не экстрасенс
1. Оболочка (The shell)
Мир - ваша раковина, хотя на самом деле, ваша раковина - всего лишь оболочка. Что такое оболочка? Оболочка - это программа, которая принимает команды с клавиатуры и отправляет их на выполнение в операционную систему. Если вы когда-то использовали GUI (графический интерфейс пользователя), то наверняка могли заметить такие программы как “Терминал” или “Консоль”, это программы, которые просто запускают командную оболочку для вас. В этом курсе вы сможете узнать о чудесах командной оболочки.
В этом курсе мы будем использовать командную оболочку - bash (Bourne Again shell), которую почти все Linux дистрибутивы по умолчанию в себя включают. Еще существуют такие оболочки как ksh, zsh, tsch, но их рассматривать мы не будем.
Давайте перейдем сразу к делу! В зависимости от дистрибутива командная оболочка может меняться, но большая часть будет придерживаться следующего формата:
username@hostname:current_directory
pete@icebox:/home/pete $
Заметили $ в конце строки? Разные оболочки имеют разные подсказки, в нашем случае $ обозначает обычного пользователя в оболочках Bash, Bourne или Korn, вам не нужно добавлять этот символ при вводе команды, просто имейте в виду.
Давайте начнем с простой команды, echo. Эта команда просто печатает текст на экран.
$ echo Hello World
Упражнения:
Попробуйте выполнить некоторые другие команды и посмотрите, что они выведут:
$ date
$ whoami
2. pwd (Print Working Directory / Вывести рабочую директорию)
Все в Linux - файлы, чем глубже вы будете погружаться в Linux, тем лучше вы это будете понимать, а пока просто имейте это в виду. Кажый файл организован в иерархическое древо директорий. Первая директория в файловой системе удачно названа корневой (root) директорией. Корневая директория содержит множество папок и файлов, которые могут содержать еще более папок и файлов и т.д. Вот пример того, как выглядит древо директорий:
/
|-- bin
| |-- file1
| |-- file2
|-- etc
| |-- file3
| `-- directory1
| |-- file4
| `-- file5
|-- home
|-- var
Расположения этих папок и директорий называются путями. Если у вас есть директория home с директорией pete в ней, которая содержит директорию Movies, то путь будет выглядеть вот так: /home/pete/Movies, довольно просто, не так ли?
Навигация по файловой системе, прямо как и в реальной жизни, очень полезна, если вы знаете где вы находитесь и куда вы идете. Чтобы увидеть где вы находитесь, вы можете использовать команду pwd, это команда означает “print working directory (напечатая рабочую директорию)”, и она покажет в какой директории вы находитесь, обратите внимание, что путь исходит из корневой директории.
$ pwd
Где вы? Где я? Попробуйте выполнить команду!
3. cd (Change Directory / Изменить директорию)
Теперь вы знаете где вы, но давайте посмотрим, можем ли мы перемещаться по файловой системе. Помчните, что мы должны проложить дорогу через пути. Есть два способа, чтобы проложить маршрут, через абсолютные и относительные пути.
Абсолютный путь: Это путь, который начинается с корневой директории. Корень - главный. Корневая директория обычно обозначается слэшем. Каждый раз, когда ваш путь начинается с /, Это оначает, что путь начинается с корневой директории. Например, /home/pete/Desktop.
Относительный путь: Это путь, который начинается с того места, в котором вы сейчас находитесь. Если бы я был в /home/pete/Documents и хотел бы переместиться в директорию, которая находится в Documents и называется taxes, мне бы не пришлось указывать путь, начиная с корня (/home/pete/Documents/taxes), можно просто ввести taxes/
Теперь вы знаете, как пути работают, но нам нужно что-то, что поможет нам перемещаться туда, куда мы хотим. К счастью, у нас есть cd или “change directory” (изменить директорию) чтобы осуществить это.
$ cd /home/pete/Pictures
Теперь я изменил мою директорию на /home/pete/Pictures.
Сейчас в этой директории у меня имеется директория Hawaii, я могу переместиться туда так:
$ cd Hawaii
Обратили внимание, что я просто написал имя директории? Это потому что она уже находится в /home/pete/Pictures.
Перемещение с абсолютными и относительными путями все время может показаться утомительным, к счастью существуют несколько удобных сокращений, которые помогут вам:
. (текущая директория). Эта директория, в которой вы находитесь сейчас.
.. (предыдущая директория). Переносит вас в директорию, которая находится на один уровень выше.
~ (домашняя директория). Это директория по умолчанию для вашей “домашней директории”, такая как /home/pete.
- (предыдущая директория). Переносит вас в директорию, в которой вы находились до этого
$ cd .
$ cd ..
$ cd ~
$ cd -
Попробуйте выполнить их
Упражнения:
Запустите команду cd без каких либо флагов, куда она вас перенесет?
Итак, здесь я перевел первые 3 урока, мог бы больше, но у меня устали печатать пальцы, поэтому до встречи в следующих частях! Критикуйте, пишите что не так, исправлюсь