LINUX.ORG.RU

Как научиться работать с терминалом в Linux?

 , ,


1

1

Господа. Читаю этот форум, вижу что здесь много продвинутых линуксоидов, хорошо понимающих работу в терминале. Как вообще повышать свои способности работы в терминале Linux? Нужно ли для этого быть программистом или нет? Я например не программист, знаю не так много команд, поэтому предпочитаю графический интерфейс, на линуксе сижу чуть больше года. Без навыков программирования вообще реально хорошо освоить терминал Linux?

Deleted

Что значит работать с терминалом? В смысле деньги за это получать? Без каких бы то ни было навыков программирования в наше время, врунишка, лучше вообще в лес идти, и жить там пару недель.

Читай книги, а до этого постарайся понять зачем тебе Linux. Есть много других операционных систем. Например, FreeBSD, там есть хэндбук, сразу на сайте, читаешь от корки до корки и считай что ты освоил операционную систему. Придёшь на тусу, пояснишь за BSD, дак тёлки течь будут, а мужики зауважают.

anonymous ()

Читаю этот форум, вижу что здесь много продвинутых линуксоидов,

хахаха, да тут одни скрипт-кидди сидят. Из не скрипт-кидди на вскидку только два на ум приходят, пост-фактум и мегабакс. Хотя второй уже лет 5 как с форума удалился.

Как вообще повышать свои способности работы в терминале Linux?

если ооочень коротко — научиться гуглить =)

Если по подробней — смотря что ты подразумеваешь под словом «работать». К примеру мне (я не программист и помимо этого см. п. 1 xD) достаточны для повседневной работы с десяток самых основных команд и вышеупомянутое умение гуглить. А у некоторых работать — значит писать длиннющие скрипты.

Deleted ()

Тебе надо понять какую роль в работе с компьютером выполняют гпрограммы под гуй и какую роль выполняет терминал.
Теритнал это добавление и удаление пользователей, архивация домашних папок пользователей в недоступные пользователям места, чтобыдо бекапов недобрался подхваченный под пользователеи шифровальщик, хотяналинукс такого нету, прописывание дисков в fstab, управление процессами в htop и прочие задачи администрирования.

Гуй это то, где тыоткрыв на нескольких мониторах открыв в браузерах кучу ховто, открыв кучу папок, междукоторыми перекладываешь файлы в зависимости от стадии работы и понаоткрывав окон с программами с которыми идёт работа ведешь свою повседневную жизнь и работу.

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

Без навыков программирования вообще реально хорошо освоить терминал Linux?

Для пподуктивного использования терминала в соответствии с заявленнымпринципом много знать не нужно, достаточно понимать что делают эти команды запускаемые в консоли под рутом:
apt list | grep firefox
cat /proc/mounts | grep dev/sd | sort -u
mc -e /etc/sudoers
pluma --display=:0.0 /etc/fstab #без xhost + под гуем не заработает.
synaptic --display=:0.0 #без xhost + под гуем не заработает.
И ещё надо понять почему судоерс открывается в мс, а фстаб в плуме.

torvn77 ★★★★ ()

А оно тебе надо? Работай как работается. :) А если хочется развлечений, то открывай терминал и что до этого мышкой делал, делай через терминал. Сначала не будет получаться - это нормально.

turtle_bazon ★★ ()

Ещё можешь разобраться что делает скрипт:

#!/usr/bin/env /bin/bash

#

function next_step {
min=$[`pw=;while [ ${#pw} -lt 1 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | grep '[0-9]')"; done; echo $pw`];
sec=$[`pw=;while [ ${#pw} -lt 2 ]; do pw="$pw$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | grep '[0-9]')"; done; echo $pw`];
timeout=$[($min+1)*60+$sec];
echo "####################### Sleeping $timeout seconds ######################";
sleep "$timeout"s;
};

cd /home/yansculpt
dl_compl_opts= "--prefer-free-formats --add-metadata --write-all-thumbnails --all-subs " 
dl_merge_opts= "--prefer-free-formats --add-metadata --write-all-thumbnails  " 
dl_video_opts=  "--prefer-free-formats --add-metadata --write-all-thumbnails --all-subs" 
dl_audio_opts=  "--prefer-free-formats --add-metadata" 
dl_sub_opts=     "--prefer-free-formats --add-metadata --all-subs" 
#
youtube-dl $dl_compl_opts --format 22 'https://youtu.be/kfebPwr0gx4';next_step;
#
youtube-dl $dl_video_opts --format 137 'https://youtu.be/kfebPwr0gx4';next_step;
#
youtube-dl $dl_video_opts --format 248 'https://youtu.be/kfebPwr0gx4';next_step;
#
youtube-dl $dl_audio_opts --format 251 'https://youtu.be/kfebPwr0gx4';next_step;
#
youtube-dl $dl_audio_opts --format 251 'https://youtu.be/kfebPwr0gx4';next_step;
exit
#
#[download] Downloading video 17 of 224
#[info] Available formats for kfebPwr0gx4:
#(224)22           mp4          1280x720       hd720  483k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best)

#(220)137          mp4         1920x1080     1080p 3968k , avc1.640028, 30fps, video only, 106.75MiB
#(172)248          webm       1920x1080     1080p 2525k , vp9, 30fps, video only, 119.96MiB

#(224)136          mp4         1280x720       720p 1389k , avc1.4d401f, 30fps, video only, 51.00MiB
#(176)247          webm       1280x720       720p 1256k , vp9, 30fps, video only, 66.23MiB

#(224)140          m4a         DASH audio  128k , m4a_dash container, mp4a.40.2@128k, 18.14MiB
#(186)251          webm       DASH audio  166k , opus @160k, 20.73MiB
#(186)171          webm       DASH audio  156k , vorbis@128k, 18.42MiB

#
#(186)249          webm       DASH audio   69k , opus @ 50k, 8.18MiB
#(186)250          webm       DASH audio   88k , opus @ 70k, 10.85MiB
#





youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
youtube-dl $youtube_dl_opts --format 248,251 'https://youtu.be/';next_step;
exit
# Дальнейшая однотипная часть скрипта убрана, всего должно быть 224 таких вызова.

torvn77 ★★★★ ()
Ответ на: комментарий от torvn77

И зачем понадобились при создании этого скрипта вот эти команды:
Под рутом:(Ctrl+Alt+F1)btrfs subvolume create /home/yansculpt; chown user:user /home/yansculpt
Далее в терминале под пользовательским гуем(Alt-F7)
youtube-dl -F https://www.youtube.com/channel/UCfjswDVU0XHyBN7UFG0Mi5Q >ggggggg.txt
cat '/home/user/ggggggg.txt' |sed s/\[/_/,s/\]/_/ | sed /256x144/d |sed /426x240/d |sed /640x360/d | sed /854x480/d |sed /176x144/d |sed /320x180/d |sed /854x480/d | grep [audio,DASH]
cat '/home/user/ggggggg.txt' | egrep -v '176x144|256x144|320x180|426x240|640x360|854x480|youtube|playlist|format code extension|249 webm|250 webm' | sed 's/\[download/\#/' | sed 's/\[info/\#/' | sed 's/\]//'

П.С. Pinkbyte вот так надо учить людей пользоваться консолью, а не издеваться путём отказа делать для Gentoo нормальный инстолятор.

torvn77 ★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 3)

Без навыков программирования вообще реально хорошо освоить терминал Linux?

Реально. Набирайся опыта читая форумы и статьи. Можно хорошо освоить терминал в какой-то одной проге, например, ffmpeg.

anonymous ()
Ответ на: комментарий от anonymous

боже мой

Боже мой, не боже мой, но если ТС выполнит задания то узнает о терминале кучу полезного.
(Только при эксперементировании со скриптом надо быть осторожнее, а то в гугле и забанить по ip могут)

torvn77 ★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)

Господа

Извольте, господа все в париже! )

Как вообще повышать свои способности работы в терминале Linux?

Хочешь научиться плавать — плавай. Хочешь научиться работать в терминале — пытайся решать задачи с помощью терминала. Разбирайся как это работает, пробуй. За годы — придет.

Без навыков программирования вообще реально хорошо освоить терминал Linux?

Сам терминал — конечно, написание скриптов — это уже программирование (несложное), так что без программирования программировать не получится.

А так, большинство консольных утилит простые как две копейки

pihter ★★ ()

Сначала научись пользоваться командой man. Программы обычно выводят короткое описание, если приписать --help или -h.
Ещё почитай про управляющие символы и сочетания клавиш. Вроде автодополнения, стирания слов, истории. Про разные способы выделения и вставки.
Потом бегло почитай про шеллы и основные утилиты, про перенаправление потоков.
Научись выходить из vim. Посмотри какой в системе прописан редактор. Вызывается при sudoedit, например. Попробуй другие, пропиши понравившийся как основной. Vim противопоставляется nano и emacs, но есть и другие.
С этим уже можно неплохо сидеть в консоли. Некоторые предпочитаю сидеть не совсем в ней, а в Midnight Commander.

Дальше стоит почитать вещи вроде Advanced Bash-Scripting Guide. И про обычные файлы, FIFO, файловую систему, планировщики, права, загрузку системы в целом и другие административные вещи.

Вне X сервера(wayland и прочих) для работы мышью можно использовать gpm.

boowai ()

Как научиться работать с терминалом в Linux?

А зачем этому учиться? Гуглишь решение своей проблемы, копируешь найденную последовательность команд и вставляешь в свой терминал. Учить то все это зачем?

mbivanyuk ★★★★★ ()

Работа с терминалом не требует очень высокого уровня кодирования. Однако вы также можете использовать комбинацию различных языков, например, вы можете запускать код c или cpp с помощью терминала. Вы даже можете использовать команды оболочки для различных простых целей. Вы можете использовать основные команды базы данных для управления данными.

elsablack005 ()

Как вообще повышать свои способности работы в терминале Linux?

Использовать его в ежедневных реальных задачах.

Ответь сам себе на вопрос: зачем? Чтобы что-то осваивать (не обязательно терминал) нужно понимать, для чего конкретно это конкретно тебе нужно. Осваивать что-либо абстрактно — довольно бесперспективное занятие.

Использовать линуксы можно и без терминала. Я лет за 10 туда особо не лез, хотя какие-то вещи действительно там делать удобнее. А так, держу в закладках страницы типа «ключи команд linux» и «advanced bash scripting guide»

valentin13 ()

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

Avial ★★★ ()
Ответ на: комментарий от torvn77

# тут глупейшее говно
# Дальнейшая однотипная часть скрипта убрана, всего должно быть 224 таких вызова.

это не скрипт, а говнина.

SevikL ★★★★ ()
Последнее исправление: SevikL (всего исправлений: 1)

Напиши на баше парсер чего-нибудь с интернета. Прокачаешься до минимального уровня в процессе.

Без навыков программирования вообще реально хорошо освоить терминал Linux?

Что значит «без навыков программирования»?

a=1
b=2
echo $(($a+$b))
Это какие-то дикие навыки доступные только избранным?

crutch_master ★★★★★ ()
Ответ на: комментарий от SevikL

Прежде чем меня критиковать проследи за тем чтобы две цитаты в твоём посте не сливались в одну.
А то меня критикуешь, а сам даже пост на ЛОР коректно написать не можешь.

И скрипт не говно по двум причинам, которые ты видимо упустил

1. Каждый ролик должен быть выкачан с лучшими лля него форматами звука и аудио и по этому в индивидуальной команде для каждого ролика нет ничего плохого.

2. Он экспромт, решающий сиюминутную задачу и если даже его можно оптимизировать, то ничего нет плохого в том, что я это не придумал сразу.

Освоение терминала это освоение применения и совместной работы соответствующих утилит и bash иновичку таки есть чему в этом скрипте поучится.

torvn77 ★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Зачем разбираться в работе того, что нужно сжечь не глядя?

Зачем его сжигать неглядя?
Скрипт решает вполне актуальную для конкретного прльзователя десктопного линукса задачу и в этом смысле вполне хорош в качестве примера, причём обрати внимание, десктопного линукса.

torvn77 ★★★★ ()
Ответ на: комментарий от torvn77

Каждый ролик должен быть выкачан с лучшими лля него форматами звука и аудио

By default youtube-dl tries to download the best available quality, i.e. if you want the best quality you don't need to pass any special options, youtube-dl will guess it for you by default.

прежде чем учить других, стоило бы поучиться самому

anonymous ()
Ответ на: комментарий от anonymous

Прежде чем верить на слово выбору авторов youtube-dl надо выкачать ролики и проверить самому.

И так и не зря.

Выкачиваемый по умолчанию ролик на mpg4 и высококонтрастен и хорошо передаёт мелкие детали.
Выкачмваемый альтернативный ролик с тем же разрешением мягок и хорошо передаёт форму, на него просто приятнее смотреть.
Но он на открытом кодеке.

torvn77 ★★★★ ()
Ответ на: комментарий от chenbr0

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

Там где графический менеджер процессов застрянет на создании окна с последующим параличём функционирования ОС консольный htop в нескольких копиях без проблем развернуться сможет.

Да и припоиске нужных программ по названию в консоли можно задать более точные запрсы к apt чем под гуем, к тому же консоль может быть запущена автологином под рутом и не требовать прав в sudo на рут и возможности логина рута вообще, рут может быть просто залочен, что удобно, так как не нужно придумывать пароль(а потом его взламывать, так как забыл)

Вобщемклнсоль для своих задач удобна во всех отношениях.

torvn77 ★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от torvn77

сейчас сложно сказать, что вкладывается в понятие простой пользователь. поглядел свою историю терминала на рабочем пк: ssh, apt update upgrade search purge, snap install и больше ничего. все кроме ssh заменяется гуем, а нужен ли ssh простому пользователю - я не уверен. так же не уверен, что он будет использовать связку youtube-dl + ffmpeg, а не сделает все через плагины к хрому и гуи.

chenbr0 ()
Ответ на: комментарий от torvn77

Прежде чем меня критиковать проследи за тем чтобы две цитаты в твоём посте не сливались в одну.

это одна цитата, там твой скрипт, только сокращен для читабельности

А то меня критикуешь, а сам даже пост на ЛОР коректно написать не можешь.

ну ты то заканчивал постописательный, а я нет. бида-бида

SevikL ★★★★ ()
Ответ на: комментарий от chenbr0

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

torvn77 ★★★★ ()

учебный план

Работа в командной строке -это не программирование (хотя всякое бывает).

Начать надо с вызова одиночных программ, например искать файлы через locate и find, а не через файловый менеджер. Ещё можно делать вебмки для двачей через ffmpeg.

Освоить дополнение команд, опций и путей по tab, чтоб мысли о ДОСе в голову не лезли.

Разобраться с перенаправлением потоков ввода-вывода команда > файл, команда 2> журнал.ошибок команда < данные и т.д.

Затем можно переходить к цепочкам команд, например ffmpeg -i кинцо .... пережатое.кинцо && shutdown ..

Понять разницу между ;, && и &. Сюда же ctrl-z и fg, bg, wait && команда2. Попутно читать man bash маленькими кусочками.

Освоить команды-которые-вызывают-команды: команда | xargs, find -exec ..., sh -c "....", parallel, make (он полезен не только для программирования). Понять разницу между командой и аргументами, понять, что аргументы разбирает оболочка. Кавычки, экранирование. Прочитать про word splitting в man bash. Освоить $(...) и кавычки.

После можно осторожно тыкать палочкой собственно программирование: for varname in *;do .... ; done, cat fname | while read -r varname; do .... и прочие страшные вещи. Прочитать man bash про всякие parameter expansion и прочие expansion.

Ну далее уже сам сообразишь, что нужнее.

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 3)

Я учился просто не поставив себе гуй и добиваясь от терминала всего того, что я хотел от компа на тот момент. Музыка, фильмы, интернет, youtube, работа с текстами.
За два месяца получил всё описанное и ещё сверху. Плюс теперь знаю «терминал».

Stage1 ★★ ()

Нужно ли для этого быть программистом или нет?

Нет, рулить пакетами и файлами ч/з консоль можно не зная ни одного ЯП или комп. алгоритмов. Зайти на сервер по ssh и поправить конфиги сис. админы обязаны уметь, а программировать -нет. Да даже среди любителей компилять Gentoo далеко не каждый - программист.

Как вообще повышать свои способности работы в терминале Linux?

Делать свою повседневную работу чисто в консоли. Не получается? Значит иксы и WM не просто так придумали.

YetAnotherUser ()

Без мыши и клавиш листания истории команд (стрелок вверх-вниз) и автодополнения научиться работать в терминале Linux дико неудобно. Зато в терминале FreeBSD с tcsh - легко.

iZEN ★★★★★ ()

пока ты не дойдёшь до осознания мысли, что мышевозенье у тебя занимает в тысячи раз больше времени, чем написание и запуск скрипта - бесполезно обращаться к терминалу. терминал появляется там, где надо сделать много работы быстро и эффективно. или выполнять какие-то типовые задачи, которые ты делаешь ежедневно или просто периодически.

ты можешь попробовать автоматизировать какие-то свои рутинные задачи. тут я не могу даже сказать, что обычный юзер может автоматизировать. это ты сам себе задачу придумай и решай её. по мере решения будешь читать маны и всякие ресурсы в сети. помаленьку что-то будет запоминаться. так и освоишь терминал.

Iron_Bug ★★★★ ()