این راهنما به شما نحوه ایجاد پوسته ها یا دایرکتوری های جدید در لینوکس را با استفاده از خط فرمان نشان می دهد.
فرمان هایی که شما برای ایجاد دایرکتوری ها استفاده می کنید mkdir است. این مقاله راه اصلی برای ایجاد دایرکتوری ها در لینوکس و همچنین پوشش همه سوئیچ های موجود را نشان می دهد.
چگونه یک دایرکتوری جدید ایجاد کنیم
ساده ترین راه ایجاد دایرکتوری جدید به شرح زیر است:
mkdir <نام پوشه>
به عنوان مثال، اگر می خواهید یک پوشه را در زیر پوشه خانه خود به نام test امتحان کنید، یک پنجره ترمینال را باز کنید و اطمینان حاصل کنید که در پوشه خانه خود هستید (از دستور cd ~ استفاده کنید).
آزمون mkdir
تغییر مجوز دایرکتوری جدید
پس از ایجاد یک پوشه جدید، ممکن است بخواهید مجوزها را تنظیم کنید تا فقط یک کاربر خاص بتواند به پوشه دسترسی پیدا کند و به این ترتیب برخی افراد بتوانند فایلها را در پوشه ویرایش کنند، اما برخی دیگر فقط خواندنی هستند.
در بخش آخر، من به شما نشان دادم که چگونه یک دایرکتوری به نام test ایجاد کنید. اجرای دستور ls شما مجوز هایی برای آن دایرکتوری را نشان می دهد:
ls -lt
شانس شما چیزی در این خطوط وجود دارد:
drwxr-xr-x 2 گروه مالک 4096 مارس 19:34 آزمون
بیت هایی که ما علاقه مندیم، مالک و گروه drwxr-xr-x هستند
d به ما می گوید که تست دایرکتوری است.
سه کاراکتر اول بعد از d مجوزهای مالک برای دایرکتوری مشخص شده توسط نام مالک است.
- r برای خواندن است
- W برای نوشتن است
- x برای اجرای اجرا می شود (که در این صورت شما می توانید به پوشه دسترسی پیدا کنید)
سه شخصیت بعدی مجوز گروه برای فایل مشخص شده توسط نام گروه است. باز هم گزینه های r، w و x هستند. - به این معنی است که مجوزی از دست رفته است. در مثال بالا هر کس متعلق به گروه می تواند به پوشه دسترسی پیدا کند و فایل ها را بخواند اما نمی تواند به پوشه آن را بنویسد.
سه کاراکتر نهایی، مجوزهایی است که همه کاربران دارند و همانطور که در مثال بالا دیده می شود، همانند مجوزهای گروه است.
برای تغییر مجوز برای یک فایل یا پوشه می توانید از دستور chmod استفاده کنید. دستور chmod به شما اجازه می دهد تا 3 عدد را مشخص کنید که مجوز را تعیین می کنند.
- خواندن مجوزها = 4
- نوشتن مجوزها = 2
- مجوزها را اجرا کنید = 1
برای به دست آوردن مخلوط مجوزها، اعداد را با هم ترکیب کنید. به عنوان مثال برای خواندن و اجرای مجوز، تعداد مورد نیاز شما 5 است، برای خواندن و نوشتن مجوز شماره 6 است و برای دریافت نوشتن و اجرای مجوز تعداد 3 است.
به یاد داشته باشید لازم است 3 عدد را به عنوان بخشی از دستور chmod مشخص کنید. شماره اول برای مجوزهای مالک است، شماره دوم برای مجوزهای گروهی است و آخرین شماره برای همه افراد دیگر است.
به عنوان مثال برای دریافت مجوز کامل مالک، خواندن و اجرای مجوزها در گروه و هیچ مجوزی برای هر کس دیگری را تایپ کنید:
آزمون chmod 750
اگر میخواهید نام گروهی که دارای یک پوشه است را تغییر دهید، از دستور chgrp استفاده کنید.
به عنوان مثال، تصور کنید که می خواهید یک دایرکتوری ایجاد کنید که تمام حسابداران شرکت شما بتوانند به آن دسترسی پیدا کنند.
اول از همه، با وارد کردن موارد زیر حسابهای گروهی ایجاد کنید:
حسابهای groupadd
اگر مجوز صحیح ایجاد یک گروه را نداشته باشید، ممکن است لازم باشد از sudo برای کسب امتیازات اضافی استفاده کنید یا با استفاده از دستور su با حساب مجوز معتبر تغییر دهید.
اکنون می توانید گروه را برای یک پوشه تغییر دهید با تایپ کردن موارد زیر:
حساب chgrp <نام پوشه>
مثلا:
آزمون حساب chgrp
برای دادن هر کس در گروه حساب، خواندن، نوشتن و اجرای دسترسی و صاحب نظر را می دهد، اما فقط برای خواندن فقط به همه ی دیگر می توانید از دستور زیر استفاده کنید:
آزمون chmod 770
برای اضافه کردن یک کاربر به گروه حساب، احتمالا می خواهید از دستور زیر استفاده کنید:
usermod -a -G حساب
دستور بالا گروه حساب را به لیست گروه های ثانویه که کاربر به آن دسترسی دارد اضافه می کند.
نحوه ایجاد دایرکتوری و تنظیم مجوز در همان زمان
شما می توانید یک پوشه ایجاد کنید و مجوز های آن پوشه را همزمان با استفاده از دستور زیر تنظیم کنید:
mkdir -m777 <نام پوشه>
دستور بالا پوشه ای را که همه به آن دسترسی دارند ایجاد می کند. این بسیار نادر است که شما می خواهید هر چیزی را با این نوع مجوز ایجاد کنید.
ایجاد یک پوشه و هر والدینی که مورد نیاز هستند
تصور کنید که می خواهید یک ساختار دایرکتوری ایجاد کنید، اما نمی خواهید هر پوشه شخصی را به همراه راه ایجاد کنید و راه خود را در یک درخت کار کنید.
به عنوان مثال، ممکن است پوشه های موسیقی خود را به صورت زیر ایجاد کنید:
- / خانه / موسیقی / راک / alicecooper
- / خانه / موسیقی / راک / ملکه
- / خانه / موسیقی / رپ / drdre
- / خانه / موسیقی / جاز / لویزجوردان
حیرت انگیز است که باید پوشه rock را ایجاد کنید، سپس پوشه alice cooper and the queen و سپس پوشه rap و ddre folder و سپس پوشه جاز و سپس پوشه louisjordan را ایجاد کنید.
با مشخص کردن سوئیچ زیر می توانید تمام پوشه های مادر را در پرواز ایجاد کنید، اگر قبلا وجود نداشته باشند.
mkdir -p
برای مثال، برای ایجاد یکی از پوشه هایی که در بالا ذکر شد، دستور زیر را امتحان کنید:
mkdir -p ~ / موسیقی / راک / alicecooper
تأییدیه یک دایرکتوری ایجاد شد
به طور پیش فرض، دستور mkdir به شما نمی گوید که دایرکتوری که ایجاد می کنید با موفقیت ایجاد شد. اگر هیچ خطایی ظاهر نشد، می توانید فرض کنید که آن را داشته باشد.
اگر میخواهید خروجی عمدهای تر داشته باشید تا بتوانید بدانید چه چیزی ایجاد شده است، از کلید زیر استفاده کنید.
mkdir -v
خروجی در امتداد خطوط mkdir قرار خواهد گرفت: directory / path / to / directoryname ایجاد شده است .
با استفاده از & # 34؛ mkdir & # 34؛ در Shell Script
گاهی اوقات شما می خواهید از فرمان "mkdir" به عنوان بخشی از یک اسکریپت پوسته استفاده کنید. به عنوان مثال، بیایید به یک اسکریپت که یک مسیر را می پذیرد نگاه کنیم. هنگامی که اسکریپت اجرا می شود، پوشه را ایجاد می کند و یک فایل متنی به نام hello اضافه می کند.
#! / bin / bash
mkdir $ @
cd $ @
سلام سلام
خط اول باید در هر اسکریپتی که شما نوشتید وارد شود و برای نشان دادن این است که این در واقع یک اسکریپ BASH است.
دستور "mkdir" برای ایجاد یک پوشه استفاده می شود. "$ @" ( همچنین به عنوان پارامترهای ورودی شناخته می شود ) در انتهای خط 2 و 3 با مقدار شما تعیین می شود هنگام اجرای اسکریپت جایگزین می شود.
دستور "cd" به دایرکتوری که مشخص می کنید تغییر می کند و در نهایت دستور لمسی یک فایل خالی به نام hello ایجاد می کند.
شما می توانید اسکریپت را برای خودتان امتحان کنید. برای انجام این کار، این دستورالعمل ها را دنبال کنید:
- یک پنجره ترمینال را باز کنید (Alt را فشار دهید و T باید آن را انجام دهید)
- nano createhellodirectory.sh را وارد کنید
- دستورات بالا را در ویرایشگر تایپ کنید
- فایل را با فشار دادن CTRL و O در همان زمان ذخیره کنید
- خروج از فایل با فشار دادن CTRL و X در همان زمان
- مجوزها را با تایپ کردن chmod + x createhellodirectory.sh تغییر دهید
- اجرای اسکریپت با تایپ کردن ./createhellodirectory.sh test
هنگام اجرای اسکریپت یک پوشه به نام "test" ایجاد می شود و اگر شما به دایرکتوری ( cd test) تغییر دهید و فهرست فهرست ( ls) را اجرا کنید، یک فایل واحد به نام hello خواهید یافت.
تا کنون خیلی خوب است اما اکنون سعی کنید مرحله 7 را دوباره اجرا کنید.
- یک خطا ظاهر می شود که نشان می دهد پوشه در حال حاضر وجود دارد.
چیزهای مختلفی که می توانیم برای بهبود اسکریپت انجام دهیم وجود دارد. به عنوان مثال، اگر پوشه در حال حاضر وجود داشته باشد، ما تا زمانی که وجود ندارد، به آن اهمیتی نمی دهیم.
#! / bin / bash
mkdir-p $ @
cd $ @
سلام سلام
اگر پارامتر -p را بعنوان بخشی از دستور mkdir مشخص کنید، آنگاه اگر پوشه در حال حاضر وجود داشته باشد، اما اگر آن وجود نداشته باشد، آن را ایجاد خواهد کرد.
همانطور که اتفاق می افتد دستور لمسی یک فایل ایجاد می کند اگر آن وجود ندارد اما اگر آن وجود داشته باشد، آن را به سادگی آخرین تاریخ و زمان دسترسی را اصلاح می کند.
تصور کنید که بیانیه لمسی با یک دستور echo جایگزین شده است که متن را به یک فایل به صورت زیر می نویسد:
#! / bin / bash
mkdir-p $ @
cd $ @
اکو "سلام" >> سلام
اگر فرمان "./createhellodirectory.sh test" را دوباره اجرا کنید، اثر آن این خواهد بود که فایل با نام "hello" در پوشه تست بزرگتر و بزرگتر خواهد شد با خطوط بیشتر و بیشتر با کلمه "hello" در آن.
در حال حاضر، این ممکن است یا نه به عنوان در نظر گرفته شده است، اما اجازه دهید در حال حاضر می گویند که این اقدام مطلوب نیست. شما می توانید تست کنید تا اطمینان حاصل کنید که دایرکتوری وجود ندارد قبل از اجرای دستور echo به صورت زیر.
#! / bin / bash
mkdir $ @ 2> / dev / null؛
اگر [$؟ -EQ 0]؛ سپس
cd $ @
اکو "سلام" >> سلام
خروج
فی
اسکریپت فوق روش من ترجیح داده شده برای مدیریت پوشه ها است. دستور mkdir پوشه ای را که به عنوان یک پارامتر ورودی منتقل می شود، ایجاد می کند، اما هر خروجی خطا به / dev / null فرستاده می شود (که به هیچ وجه معنی ندارد).
خط سوم وضعیت خروجی دستور قبلی را که عبارت "mkdir" است، بررسی می کند و اگر آن را موفق کند، اظهارات را تا زمانی که عبارت "fi" رسیده است، اجرا کند.
این بدان معنی است که شما می توانید پوشه را ایجاد کنید و همه چیزهایی را که می خواهید انجام دهید اگر دستور موفقیت آمیز باشد. اگر اگر بخواهید کاری انجام دهید اگر دستور موفق نشد، می توانید به سادگی وارد یک عبارت دیگر بشوید:
#! / bin / bash
mkdir $ @ 2> / dev / null؛
اگر [$؟ -EQ 0]؛ سپس
cd $ @
اکو "سلام" >> سلام
خروج
چیز دیگری
cd $ @
echo "hello"> hello
خروج
فی
در اسکریپت فوق اگر دستور mkdir کار می کند، دستور echo کلمه "hello" را به انتهای فایل به نام hello می فرستد در حالی که اگر آن وجود نداشته باشد فایل جدید ایجاد خواهد شد به نام "hello" با کلمه " سلام "در آن.
این مثال به ویژه عملی نیست، زیرا شما می توانید نتایج مشابهی را به دست آورید، فقط با اجرای اکو hello خط "hello" . نقطه ای از مثال این است که نشان می دهد که شما می توانید دستور mkdir را اجرا کنید، خروجی خطا را پنهان کنید، وضعیت دستور را بررسی کنید تا ببینید آیا موفق شد یا نه و سپس یک مجموعه دستورات را اجرا کنید، اگر دستور mkdir موفق بود و مجموعه دیگری از دستورات اگر آن نبود.