مواد، هغه ژباړه چې موږ یې نن خپروو، د هغو کسانو لپاره دي چې غواړي د لینکس کمانډ لاین ماسټر کړي. د دې وسیلې په مؤثره توګه کارولو وړتیا کولی شي ډیر وخت خوندي کړي. په ځانګړې توګه، موږ به دلته د باش شیل او 21 ګټور کمانډونو په اړه وغږیږو. موږ به د اوږدې لارښوونو ټایپ کولو ګړندي کولو لپاره د کمانډ بیرغونو او بش عرفونو کارولو څرنګوالي په اړه هم وغږیږو.
→
شرایط
لکه څنګه چې تاسو د لینکس کمانډ لاین سره کار کول زده کوئ ، تاسو به د ډیری مفکورو سره مخ شئ چې د نیویګ کولو لپاره ګټور دي. ځینې یې، لکه "لینکس" او "یونیکس"، یا "شیل" او "ټرمینل"، ځینې وختونه ګډوډ وي. راځئ چې د دې او نورو مهمو شرایطو په اړه وغږیږو.
اوس چې موږ مهم شرایط پوښلي، زه غواړم دا په ګوته کړم چې زه به دلته د "بش"، "شیل" او "کمانډ لاین" اصطلاحات د یو بل په بدل کې وکاروم، په بیله بیا د "ډائریکټري" او "فولډر" اصطلاحات.
معياري stdin
معياري محصول (معياري محصول، stdout
) او د معیاري تېروتنې محصول (معیاري تېروتنه، stderr
).
که په مثال کې کمانډونه چې لاندې به ورکړل شي، تاسو به یو څه ومومئ my_whatever
- دا پدې مانا ده چې دا ټوټه باید ستاسو د یو څه سره بدله شي. د مثال په توګه، د فایل نوم.
اوس، مخکې له دې چې د حکمونو تحلیل ته دوام ورکړو چې دا مواد ورته وقف شوي، راځئ چې د دوی لیست او د دوی لنډ توضیحات وګورو.
21 د بش حکمونه
▍معلومات ترلاسه کول
man
: د کمانډ لپاره د کارونکي لارښود (مرسته) ښکاره کوي.pwd
: د کاري لارښود په اړه معلومات ښکاره کوي.ls
: د لارښود منځپانګې ښیي.ps
: تاسو ته اجازه درکوي د چلولو پروسو په اړه معلومات وګورئ.
▍د فایل سیسټم لاسوهنه
cd
: کاري لارښود بدل کړئtouch
: یو فایل جوړ کړئmkdir
: لارښود جوړ کړئcp
: یوه فایل کاپي کړئ.mv
: یو فایل حرکت یا حذف کړئ.ln
: یو لینک جوړ کړئ
▍I/O ری ډایریکشن او پایپ لاینونه
<
: راستولstdin
.>
: راستولstdout
.|
: د یوې کمانډ محصول د بلې کمانډ ان پټ ته پایپ کړی.
▍د فایلونو لوستل
head
: د دوتنې پیل ولولئ.tail
: د دوتنې پای ولولئ.cat
: یو فایل ولولئ او د هغې مینځپانګې سکرین ته چاپ کړئ ، یا فایلونه یوځای کړئ.
▍د فایلونو ړنګول، د پروسې بندول
rm
: دوتنې ړنګولkill
: پروسه بنده کړئ.
▍لټون
grep
: د معلوماتو لټون.ag
: د لټون لپاره پرمختللی کمانډ.
▍ آرشیف کول
tar
: آرشیف جوړول او ورسره کار کول.
راځئ چې د دې حکمونو په اړه په ډیر تفصیل سره خبرې وکړو.
د ټیم توضیحات
د پیل کولو لپاره، راځئ چې د امرونو سره معامله وکړو، چې پایلې یې په فورمه کې خپریږي stdout
. معمولا دا پایلې په ترمینل کړکۍ کې څرګندیږي.
▍معلومات ترلاسه کول
man command_name
: د کمانډ لارښود ښکاره کړئ، د بیلګې په توګه د مرستې معلومات.
pwd
: اوسني کاري لارښود ته لاره ښکاره کړئ. د کمانډ لاین سره د کار کولو په جریان کې، کاروونکي اکثرا اړتیا لري چې دقیقا معلومه کړي چې هغه په سیسټم کې چیرته دی.
ls
: د لارښود منځپانګې ښکاره کړئ. دا کمانډ هم ډیری وختونه کارول کیږي.
ls -a
: پټ شوي فایلونه ښکاره کړئ. بیرغ دلته پلي کیږي -a
امرونه ls
. د بیرغونو کارول د امرونو چلند تنظیم کولو کې مرسته کوي.
ls -l
: د فایلونو په اړه مفصل معلومات ښکاره کړئ.
په یاد ولرئ چې بیرغونه یوځای کیدی شي. د مثال په توګه - دا ډول: ls -al
.
ps
: د چلولو پروسې وګورئ.
ps -e
: د ټولو روان بهیرونو په اړه معلومات ښکاره کړئ، نه یوازې هغه چې د اوسني کاروونکي شیل سره تړاو لري. دا کمانډ اکثرا په دې فورمه کې کارول کیږي.
▍د فایل سیسټم لاسوهنه
cd my_directory
: کاري لارښود ته بدل کړئ my_directory
. د لارښود ونې کې د یوې کچې پورته کولو لپاره ، وکاروئ my_directory
نسبي لاره ../
.
cd کمانډ
touch my_file
: د دوتنې جوړول my_file
د ورکړل شوې لارې په اوږدو کې.
mkdir my_directory
: یو فولډر جوړ کړئ my_directory
د ورکړل شوې لارې په اوږدو کې.
mv my_file target_directory
: فایل حرکت کول my_file
فولډر ته target_directory
. کله چې د هدف لارښود مشخص کول ، تاسو اړتیا لرئ دې ته مطلق لاره وکاروئ (او د جوړښت په څیر نه ../
).
ټیم mv
د فایلونو یا فولډرو نوم بدلولو لپاره هم کارول کیدی شي. د مثال په توګه، دا کیدای شي داسې ښکاري:
mv my_old_file_name.jpg my_new_file_name.jpg
: د دوتنې یوه کاپي جوړه کړئ
cp my_source_file target_directorymy_source_file
او په فولډر کې یې واچوئ target_directory
.
ln -s my_source_file my_target_file
: یو سمبولیک لینک جوړ کړئ my_target_file
فی فایل my_source_file
. که تاسو لینک بدل کړئ، اصلي فایل به هم بدل شي.
که فایل my_source_file
بیا به حذف شي my_target_file
پاتې به شي. بیرغ -s
امرونه ln
تاسو ته اجازه درکوي د لارښودونو لپاره لینکونه جوړ کړئ.
اوس راځئ چې د I/O ری ډایریکشن او پایپ لاینونو په اړه وغږیږو.
▍I/O ری ډایریکشن او پایپ لاینونه
my_command < my_file
: د معیاري ان پټ فایل توضیح کونکي ځای په ځای کوي (stdin
) په هر فایل کې my_file
. دا ګټور کیدی شي که کمانډ د کیبورډ څخه ځینې ان پټ ته انتظار وي، او دا ډاټا دمخه په فایل کې خوندي شوي.
my_command > my_file
: د کمانډ پایلې بیرته راګرځوي، د بیلګې په توګه هغه څه چې په عموم ډول ځي stdout
او پرده ته راووت، فایل ته my_file
. که فایل my_file
شتون نلري - دا جوړ شوی. که فایل شتون ولري، نو بیا لیکل کیږي.
د مثال په توګه، د کمانډ اجرا کولو وروسته ls > my_folder_contents.txt
د متن فایل به رامینځته شي چې په اوسني کاري لارښود کې د هغه څه لیست لري.
که د سمبول پر ځای >
د ساختمان څخه کار واخلئ >>
بیا، په دې شرط چې هغه فایل چې د کمانډ محصول بیرته لیږل شوی وي شتون لري، دا فایل به بیا نه لیکل کیږي. ډاټا به د دې فایل په پای کې اضافه شي.
اوس راځئ چې د ډیټا پایپ لاین پروسس کولو ته یوه کتنه وکړو.
د یوې کمانډ محصول د بلې کمانډ ان پټ ته تغذیه کیږي. دا داسې دی لکه یو پایپ له بل سره وصل کړئ
first_command | second_command
: د لېږدونکي سمبول |
، د یوې کمانډ محصول بلې کمانډ ته لیږلو لپاره کارول کیږي. هغه څه چې د بیان شوي جوړښت ښي خوا ته کمانډ لیږل کیږي stdout
، په غورځول stdin
د پایپ لاین سمبول ښیې ته کمانډ.
په لینکس کې، ډاټا یوازې د هر ښه جوړ شوي کمانډ په کارولو سره پایپ لاین کیدی شي. ډیری وختونه ویل کیږي چې په لینکس کې هرڅه یو پایپ لاین دی.
د پایپ لاین سمبول د ډیری کمانډونو سلسلې لپاره کارول کیدی شي. دا داسې ښکاري:
first_command | second_command | third_command
د څو کمانډونو پایپ لاین د پایپ لاین سره پرتله کیدی شي
په یاد ولرئ کله چې د سمبول کیڼ اړخ ته قومانده |
، یو څه تولیدوي stdout
، هغه څه چې هغه یې تولیدوي سمدلاسه د دې په توګه شتون لري stdin
دوهم ټیم دا دی، دا معلومه شوه چې د پایپ لاین په کارولو سره، موږ د امرونو موازي اجرا کولو سره معامله کوو. ځینې وختونه دا کولی شي غیر متوقع پایلې رامینځته کړي. په دې اړه جزیات لوستلی شئ
اوس راځئ چې د فایلونو څخه د معلوماتو لوستلو او په سکرین کې د ښودلو په اړه وغږیږو.
▍د فایلونو لوستل
head my_file
: د فایل له پیل څخه کرښې لولي او سکرین ته یې چاپوي. تاسو کولی شئ نه یوازې د فایلونو مینځپانګې ولولئ ، بلکه هغه څه چې د کمانډ محصول په کې راځي stdin
د پایپ لاین برخې په توګه د دې کمانډ کارول.
tail my_file
: د دوتنې له پای څخه کرښې لولي. دا کمانډ په پایپ لاین کې هم کارول کیدی شي.
سر (سر) په مخ کې دی، او لکۍ (لمس) شاته ده
که تاسو د پانډاس کتابتون په کارولو سره د ډیټا سره کار کوئ ، نو امرونه head
и tail
باید تاسو سره آشنا وي. که دا مسله نه وي، پورته ارقام وګورئ، او تاسو به یې په اسانۍ سره په یاد ولرئ.
د فایلونو لوستلو لپاره نورې لارې په پام کې ونیسئ، راځئ چې د قوماندې په اړه وغږیږو cat
.
ټیم cat
یا د فایل مینځپانګې سکرین ته چاپ کوي ، یا ډیری فایلونه سره یوځای کوي. دا پدې پورې اړه لري چې څومره فایلونه دې کمانډ ته لیږدول کیږي کله چې ویل کیږي.
د پیشو قومانده
cat my_one_file.txt
: کله چې یو واحد فایل دې کمانډ ته لیږدول کیږي، دا یې تولیدوي stdout
.
که تاسو ورته دوه فایلونه یا ډیر فایلونه ورکړئ، نو دا په بل ډول چلند کوي.
cat my_file1.txt my_file2.txt
: د ان پټ په توګه د څو فایلونو ترلاسه کولو سره، دا کمانډ د دوی مینځپانګې سره یوځای کوي او ښیې چې څه پیښ شوي stdout
.
که د فایل کنټینیشن پایله د نوي فایل په توګه خوندي کولو ته اړتیا ولري ، تاسو کولی شئ آپریټر وکاروئ >
:
cat my_file1.txt my_file2.txt > my_new_file.txt
اوس راځئ چې د فایلونو حذف کولو او پروسې بندولو څرنګوالي په اړه وغږیږو.
▍د فایلونو ړنګول، د پروسې بندول
rm my_file
: دوتنې ړنګول my_file
.
rm -r my_folder
: فولډر ړنګوي my_folder
او ټول هغه فایلونه او فولډرې چې پکې شامل دي. بیرغ -r
په ګوته کوي چې کمانډ به په تکراري حالت کې پرمخ ځي.
د دې لپاره چې سیسټم د تایید لپاره غوښتنه وکړي هرکله چې فایل یا فولډر حذف شي ، بیرغ وکاروئ -f
.
kill 012345
: د ټاکل شوي چلولو پروسه ودروي، دا په زړه پورې تړلو ته وخت ورکوي.
kill -9 012345
: په جبري توګه ټاکل شوې روانه پروسه لغوه کوي. بیرغ وګورئ -s SIGKILL
د بیرغ په څیر معنی لري -9
.
▍لټون
تاسو کولی شئ د معلوماتو لټون کولو لپاره مختلف کمانډونه وکاروئ. په تېره بیا - grep
, ag
и ack
. راځئ چې د دې حکمونو سره زموږ پیژندنه پیل کړو grep
. دا د وخت ازمول شوي ، د باور وړ کمانډ دی ، کوم چې په هرصورت ، د نورو په پرتله ورو دی او د کارولو لپاره دومره اسانه ندي لکه څنګه چې دوی دي.
grep کمانډ
grep my_regex my_file
: لټون my_regex
в my_file
. که یو میچ وموندل شي، ټول تار بیرته راستانه کیږي، د هرې لوبې لپاره. ډیفالټ my_regex
د منظم بیان په توګه درملنه کیږي.
grep -i my_regex my_file
: لټون په غیر حساس ډول ترسره کیږي.
grep -v my_regex my_file
: ټول هغه قطارونه راګرځوي چې پکې نه وي my_regex
. بیرغ -v
د معکوس معنی، دا د آپریټر سره ورته والی لري NOT
، په ډیری پروګرامینګ ژبو کې موندل کیږي.
grep -c my_regex my_file
: په فایل کې موندل شوي د لټون شوي نمونې لپاره د میچونو شمیر په اړه معلومات بیرته راګرځي.
grep -R my_regex my_folder
: په ټاکل شوي فولډر کې موقعیت لرونکي ټولو فایلونو کې تکراري لټون ترسره کوي او په هغه فولډرونو کې چې په دې کې ځای لري.
اوس راځئ چې د ټیم په اړه خبرې وکړو ag
. هغه وروسته راغله grep
، دا ګړندی دی ، د دې سره کار کول خورا اسانه دي.
ag قومانده
ag my_regex my_file
: د لاین شمیرو په اړه معلومات بیرته راګرځوي، او پخپله لاینونه، په کوم کې چې میچونه موندل شوي my_regex
.
ag -i my_regex my_file
: لټون په غیر حساس ډول ترسره کیږي.
ټیم ag
په اتوماتيک ډول فایل پروسس کړئ .gitignore
او هغه څه چې په دې فایل کې لیست شوي فولډرو یا فایلونو کې موندل کیږي له محصول څخه خارجوي. دا ډیر آرام دی.
ag my_regex my_file -- skip-vcs-ignores
: د اتوماتیک نسخه کنټرول فایلونو مینځپانګې (لکه .gitignore
) په لټون کې په پام کې نه نیول کیږي.
برسېره پردې، د دې لپاره چې ټیم ته ووایاست ag
په کوم فایل لارو کې چې تاسو غواړئ له لټون څخه لرې کړئ، تاسو کولی شئ فایل جوړ کړئ .agignore
.
د دې برخې په پیل کې، موږ د قوماندې یادونه وکړه ack
. ټیمونه ack
и ag
ډیر ورته، موږ کولی شو ووایو چې دوی 99٪ د تبادلې وړ دي. په هرصورت، ټیم ag
ګړندی کار کوي ، له همدې امله ما دا تشریح کړ.
اوس راځئ چې د آرشیف سره د کار کولو په اړه وغږیږو.
▍ آرشیف کول
tar my_source_directory
: د فولډر څخه فایلونه یوځای کوي my_source_directory
په یو واحد ټربال فایل کې. دا ډول فایلونه یو چا ته د فایلونو لوی سیټونو لیږدولو لپاره ګټور دي.
tar قومانده
د دې کمانډ لخوا رامینځته شوي ټربال فایلونه د توسیع سره فایلونه دي .tar
(ټیپ آرشیف). دا حقیقت چې د "ټیپ" کلمه (ټیپ) د کمانډ په نوم پټه ده او د فایلونو د نومونو په توسیع کې دا رامینځته کوي دا په ګوته کوي چې دا کمانډ څومره وخت شتون درلود.
tar -cf my_file.tar my_source_directory
: په نوم د ټاربال فایل جوړوي my_file.tar
د فولډر مینځپانګو سره my_source_directory
. بیرغ -c
د "تخلیق" (تخلیق) او بیرغ لپاره ولاړ دی -f
لکه "دوتنه" (دوتنه).
د فایلونو استخراج لپاره .tar
- فایل، کمانډ وکاروئ tar
د بیرغونو سره -x
("استخراج"، استخراج) او -f
("دوتنه"، دوتنه).
tar -xf my_file.tar
: څخه فایلونه استخراجوي my_file.tar
اوسني کاري لارښود ته.
اوس راځئ چې د کمپرس او ډیکمپریس څرنګوالي په اړه وغږیږو .tar
- فایلونه
tar -cfz my_file.tar.gz my_source_directory
: دلته د بیرغ په کارولو سره -z
("zip"، کمپریشن الګوریتم) په ګوته کوي چې الګوریتم باید د فایلونو د کمپرس کولو لپاره وکارول شي gzip
(GNUzip). د فایل کمپریشن د ډیسک ځای خوندي کوي کله چې دا ډول فایلونه ذخیره کوي. که چیرې فایلونه پلان شوي وي، د بیلګې په توګه، نورو کاروونکو ته لیږدول کیږي، دا د داسې فایلونو چټک ډاونلوډ کې مرسته کوي.
فایل خلاص کړئ .tar.gz
تاسو کولی شئ بیرغ اضافه کړئ -z
د استخراج منځپانګې کمانډ ته .tar
- فایلونه، کوم چې موږ پورته بحث وکړ. دا داسې ښکاري:
tar -xfz my_file.tar.gz
دا باید په پام کې ونیول شي چې ټیم tar
ډیری نور ګټور بیرغونه شتون لري.
د بش نومونه
د بش عرفونه (د عرف یا لنډیز په نوم هم ویل کیږي) د کمانډونو لنډ نومونو یا د دوی ترتیبونو رامینځته کولو لپاره ډیزاین شوي ، چې د منظم کمانډونو پرځای کارول کار ګړندی کوي. که تاسو یو عرف لرئ bu
، کوم چې امر پټوي python setup.py sdist bdist_wheel
، بیا دې کمانډ ته زنګ وهلو لپاره ، د دې عرف کارول بس دي.
د داسې عرف رامینځته کولو لپاره ، یوازې فایل ته لاندې کمانډ اضافه کړئ ~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
که ستاسو سیسټم فایل نلري ~/.bash_profile
، بیا تاسو کولی شئ دا پخپله د کمانډ په کارولو سره رامینځته کړئ touch
. د عرف رامینځته کولو وروسته ، ټرمینل بیا پیل کړئ ، له هغې وروسته تاسو کولی شئ دا عرف وکاروئ. په دې حالت کې، د دوو حروفونو داخلول د کمانډ له دریو درجن څخه زیاتو حروفونو ان پټ بدلوي، کوم چې د دې لپاره دی
В ~/.bash_profile
تاسو کولی شئ د هر ډول کارول شوي حکمونو لپاره عرفونه اضافه کړئ.
▍ پايلې
پدې پوسټ کې ، موږ د باش 21 مشهور کمانډونه پوښلي او د قوماندې عرفونو رامینځته کولو په اړه مو خبرې کړې دي. که تاسو د دې موضوع سره علاقه لرئ -
ګرانو لوستونکو! کوم حکمونه چې د پیل کونکو لپاره ګټور دي تاسو به هغه ته اضافه کړئ چې پدې مقاله کې بحث شوي؟
→
سرچینه: www.habr.com