Gentoo негізін салушыдан Linux-тың негіздері сабақтары. 1-бөлім (1/4): BASH, навигация негіздері


Бұл мақала habrahabr.ru сайтындағы мақалалар сериясының аудармасы. Негізгі мақала ағылшын тілінен аударылған :). Сонда да, мақала linux-пен жұмыс жасап бастап жатқандарға және жұмыс жасап жүргендерге де пайдалы болады.

Алғы сөз


Осы нұсқаулық жайлы

Төрт бөлімнен тұратын, Linux негіздерін үйретуге негізделген нұсқаулықтың бірінші бөліміне қош келіпсіз. Нұсқаулық Linux бойынша Professional Institute 101 емтиханын тапсыруға дайындау үшін жазылған. Мұнда сіз bash-пен (Linux-тағы стандартты командалар интерпретаторының қабықшасы) танысасыз, ls, cp, mv секілді негізгі командалардың мүмкіншіліктерін үйренесіз, инодтарды түсінесіз, қатаң және символды сілтемелер және т.б. көптеген жайлар туралы түсініктер аласыз. Барлық курстың соңына қарай (8 бөлім), сізде Linux жүйелік администраторы болу үшін және Linux Professional Institute ұйымының LPIC Level 1 сертификациясын өту үшін қажет жеткілікті білім болады, әрине, егер қаласаңыз.

Бұл нұсқаулық Linux жүйесін жаңадан үйреніп бастағандарға өте пайдалы болады. Сонымен қатар, Linux-тың негізгі концепциялары болып табылатын файлдарды көшіру және орынын ауыстыру, қатаң және символдық сәлтемелерді құру, мәтіндерді өңдеу стандартты командалары (конвейерлер, бағыттаулар) түсініктерін жаңартқысы және дамытқысы келгендерге де арналған. Нұсқаулық барысында біз көптеген кеңестер мен ескертпелер береміз, бұл нұсқаулықты толықтандыра және практикалық жағынан құндылығын арттыра түседі. Жаңадан бастап жатқандар үшін нұсқаулықтың көптеген бөлігі жаңа түсініктерге толы болады, бірақ басқа тәжірибелі қолданушылар бұл нұсқаулықтарды алған білімдерін реттеп алу үшін оқуларына болады.

BASH-қа кіріспе


Қабықша
Егер сіз осыған дейін Linux-ты пайдаланған болсаңыз, білетен болуыңыз керек, жүйеге кірген соң сізді келесідей шақыру қатары қарсы алады:
$

Шын мәнінде сізді қарсы алатын шақыру қатары басқаша болуы мүмкін. Мысалы, онда хост аты, қазіргі тұрған папканың аты немесе екеуі бірге жазылған болуы мүмкін. Сіздің шақыру қатарыңыз қандай түрде болғанына қарамай, бір нақты белгілі зат бар: осы шақыруды шығарып тұрған бағдарлама командалар интерпретаторының қабықшасы (англ. shell — қабықша, командалық жолақ немесе терминал) деп аталады және көбінесе ол 'bash' болады.

Ал сізде bash іске қосылған ба?

Сіз bash-ты пайдаланып жатқаныңызға сенімді болу үшін, оны келесі команда арқылы тексеріп көре аласыз:

$ echo $SHELL
/bin/bash

Егер жоғарғы команда орындалған соң қателік болып жатса немесе шығарылған жолақ "/bin/bash"-қа сәйкес келмесе, сіз басқа қабықша пайдаланып жатқаныңыз болады. Мұндай жағдайда бұл нұсқаулықтың көп бөлігі ол үшін де дұрыс болады, бірақ, сонда да bash-қа ауысқан дұрыс.

Bash туралы

Bash — бұл Bourne-again-shell сөйлемінің акронимі, ағылшыншадан «Борнның-тағы-бір-командалық-қабықшасы» немесе "қайтадан-жаңғырған-командалық-қабықша", және ол көптеген Linux жүйелері үшін үнсіз келісім бойынша қабықша болып табылады. Қабықшамен жұмысты аяқтаған соң, одан (exit) шыға аласыз немесе сеансты аяқтауыңызға (logout), болады. Екінші жағдайда сіз жүйеге кіру шақыруын көресіз.

Сонымен қатар, сіз қабықшадан Ctrl+D батырмасын басып та шыға аласыз.

«cd» командасын пайдалану

Сіз байқаған боларсыз, bash-қа құр қарап отыру қызықты жұмыс емес. Сонымен, онда файлдық жүйеде қалай саяхат жасауға болатындығын үйренейік. Шақыру қатарына келесі команданы енгізіңіз ($ белгісінсіз):
cd /

Сіз бұл командамен bash-қа "/" папкасында жұмыс істегіңіз келетіндігіңізді айттыңыз. Бұл папка басқаша «түптік/негізгі» деп аталады. Яғни, жүйедегі барлық папкалар ағаштәріздес түрге ие, "/" папкасы сол папкалардың түп тамыры болып табылады. cd сіз қазір жұмыс жасайтын папканы орнатады, оны басқаша "қазіргі жұмыстық папка" деп атайды.

Жолдар

Қазіргі тұрған папканы білу үшін bash-та келесі команданы орындау керек:

$ pwd
/

Мұнда "/" жол деп аталады. cd мысалында бұл жол аргумент ретінде берілді, біз осылай біздің қайда барғымыз келгендігін bash-қа айттық. Негізінде, / бұл абсолютті жол.

Абсолютті жолдар

Төменде бірнеше абсолютті жолдың мысалдары келтірілген:

/dev
/usr
/usr/bin
/usr/local/bin

Байқағандарыңыздай, барлық жолдардың бір-біріне ұқсас жерлері бар, олардың барлығы "/" символынан басталады. Мысалы, cd командасының аргументі ретінде /usr/local/bin көрсету арқылы, біз bash-қа біріншіден "/" папкасына баратынымызды, содан соң, сол "/" папкасының ішіндегі «usr» папкасына баратындығымызды, және т.с.с ағаштәріздес құрылымда төмен қарай өтеміз. Абсолютті жолдардың барлығы "/" папкасынан басталады.

Қазіргі папкаға қатысты алынатын жолдар

Жолдардың тағы бір түрі "қатынасты жолдар" деп аталады. bash, cd және басқа да командалар мұндай жолдарды барлық уақытта қазіргі папкаға қатысты есептейді. Қатынасты жолдар ешқашан / папкасынан басталмайды. Мысал қарастырайық, бірінші біз /usr папкасына өтейік:
$ cd /usr

Содан соң біз «local/bin» қатынасты жолын пайдаланып "/usr/local/bin" папкасына өте аламыз, яғни:

$ cd local/bin
$ pwd
/usr/local/bin


".." папкасын пайдалану

Қатынасты жолдардың құрамында бір немесе бірнеше ".." папкалары болуы мүмкін. ".." папкасы арнайы папка, ол әрқашан бір саты жоғарыда жатқан папканы көрсетеді. Жоғарыдағы мысалды жалғастыра отыра:

$ pwd
/usr/local/bin
$ cd ..
$ pwd
/usr/local

Көріп тұрғанымыздай біздің қазіргі папкамыз /usr/local. Біз қазіргі папкаға қатысты бір саты жоғары көтеріле алдық.

Сонымен қатар, ".." папкасын қазіргі папкамен бір сатыда тұрған басқа папкаға ауысу үшін пайдалануымызға болады:

$ pwd
/usr/local
$ cd ../share
$ pwd
/usr/share


Қатынасты жолдардың мысалдары

Қатынасты жолдар бұдан да күрелірек болуы мүмкін. Төменде мұндай жолдардың бірнеше мысалдары келтірілген, әр команданы орындаған соң сіздің қай папкада екеніңізді тауып көріңіз.

$ cd /bin
$ cd ../usr/share/zoneinfo

$ cd /usr/X11R6/bin
$ cd ../lib/X11

$ cd /usr/bin
$ cd ../bin/../bin


"." папкасын түсіну

Біз cd туралы айтуды тоқтатудан бұрын, айқындап алатын жайлар бар. Біріншіден, тағы бір арнайы "." папкасы бар, ол "қазіргі папканы" білдіреді. Ол cd комнадасымен көп пайдаланылмаса да, қазіргі папкадан бағдарламаны орындау үшін көп пайдаланылады, мысалы:

$ ./myprog

Бұл жағдайда осы папкада орналасқан myprog бағдарламасы іске қосылады.

cd және пайдаланушының жеке папкасы

Егер біз өзіміздің жеке папкамызға ауысуымызды қалайтын болсақ, келесі команданы орындауымызға болатын еді:
$ cd

Ешқандай аргументсіз cd командасы сіздің жеке папкаңызға ауысады. Мысалы, ол root пайдаланушы үшін /root, жай пайдаланушы үшін /home/username. Бірақ, егер біз біздің жеке папкамыздағы файлды көрсетуді қаласақ ше? Мысалы, біздің myprog бағдарламамызға, жеке папкамыздан файлды аргумент ретінде көрсету қажет болсын. Біз команданы келесідей орындай аламыз:
$ ./myprog /home/drobbins/myfile.txt

Сонда да, бұлай абсолютті жолды пайдалану ыңғайлы емес сияқты. Сондықтан, біз ~ (тильда) символын пайдалана аламыз, сонда:
$ ./myprog ~/myfile.txt


Басқа пайдаланушылардың жеке папкалары

Bash ~ символын сіздің жеке папкаңызға сілтеме ретінде қабылдайды, бірақ сіз оны басқа пайдаланушылардың жеке папкаларын көрсету үшін де пайдалана аласыз. Мысалы, біз fred деген пайдаланушының жеке папкасындағы, fredsfile.txt файлын көрсеткіміз келсе, команданы келесідей орындай аламыз:

$ ./myprog ~fred/fredsfile.txt




Авторлар жайлы


Daniel Robbins

Дэниэль Роббинс — Gentoo қауымдастығының негізін салушы және Gentoo Linux операциялық жүйесін құрушы. Дэниэль өзінің жұбайы Мэри және екі қызымен бірге Нью-Мехикода тұрады. Ол сонымен бірге Funtoo-ның негізін қалаушы, IBM developerWorks, Intel Developer Services және C/C++ Users Journal үшін көптеген техникалық мақалалар жазған.

Chris Houser

Крис Хаусер 1994 жылдан, Тэйлор (Индиана, АҚШ) университетінің администраторларына қосылғаннан бастап UNIX-тің жақтаушысы. Осы университетте компьютер ғылымдары мен математикада бакалавр дәрежесін алған. Одан соң ол көптеген салаларда жұмыс атқарған: веб бағдарламалар, видеоларды жөндеу, UNIX үшін драйверлер және криптографиялық қорғаныс. Қазіргі уақытта Sentry Data Systems-те жұмыс жасайды. Крис көптеген Gentoo Linux және Clojure секілді еркін жобаларға үлес қосқан, The Joy of Clojure кітабының авторларының бірі.

Aron Griffis

Эйрон Гриффис Бостонда өмір сүреді. Онда ол соңғы онжылдықта Hewlett-Packard-та Tru64 үшін UNIX драйверлері, Linux қауіпсіздігін сертификациялау, Xen және KVM, соңғысы — HP ePrint платформасы секілді жобаларда жұмыс жасаған.

  • +1
1 пікір
raimbek
Мақалада кейбір орысша сөздер келесі түрде аударылды:
руководство — нұсқаулық
оболочка — қабықша
текущая папка — қазіргі папка
относительные пути — қатысты жолдар ("қазіргі папкаға қатысты" мағынасында)
домашняя директория пользователя — пайдаланушының жеке папкасы

Қателіктер мен бұл аудармалардан дұрыстау нұсқалар болса, ұсыныстар күтемін.
Тек тіркелген қолданушылар ғана пікір қалдыра алады.