bit-orbit / the-secret-bit Goto Github PK
View Code? Open in Web Editor NEWکتاب متن باز فارسی لینوکس the secret bit
Home Page: https://bit-orbit.github.io/the-secret-bit/
License: Other
کتاب متن باز فارسی لینوکس the secret bit
Home Page: https://bit-orbit.github.io/the-secret-bit/
License: Other
[!["Image Alt"](img src)](Link of image)
توضیحات
توضیحات
توضیحات
Author or Authors:
این دستور به کاربران اجازه میدهد تا تاریخ و زمان روی سیستم را مشاهده کنند و از آن برای برنامهریزی و مدیریت فایلها و فولدرها استفاده کنند.
دستور date برای نمایش تاریخ و زمان در اسکریپتهای شل نیز مفید است.
با استفاده از این دستور، میتوانید تاریخ و زمان را به صورت متغیر در اسکریپت خود استفاده کنید و از آن در عملیات مختلفی مانند ساخت فایلهای لاگ یا پشتیبانگیری از فایلها استفاده کنید.
فرمت های کنترلی برای نمایش قسمت های مختلفی از تاریخ استفاده میشود،
برای مثال ممکن است شما نیاز داشته باشید تا فقط روز هفته، سال و یا
unix time
را مشاهده کنید، از اینرو شما از فرمت های مختلف استفاده میکنید.
نحوه استفاده از این فرمت ها به این صورت است که شما از دستور
date
و پس از آن فرمت مورد نظر درداخل کوتیشن استفاده میکنید.
.هر فرمت یک کاراکتر بخصوص دارد که باید از % پیش از کاراکترش استفاده شود
مثال، نمایش روز ماه:
$ date +"%d"
{{< note >}}
کاراکتر % یک کاراکتر خاص است، که در
date
برای نمایش فرمت های خاص استفاده میشود.
برای نمایش خود کاراکتر % باید از دوتای آن استفاده کرد
$ date +"%%D"
# %%D
{{< /note >}}
%a: نمایش نام کوتاه هفته در لوکال ( Sun برای یکشنبه)
%A: نمایش نام کامل هفته در لوکال ( Sunday برای یکشنبه)
%b: نمایش نام کوتاه ماه در لوکال ( Jan برای ژانویه)
%B: نمایش نام کامل ماه در لوکال ( January برای ژانویه)
%c: نمایش تاریخ و زمان در لوکال ( Thu Mar 3 23:05:25 2005)
%C: (مانند %Y)، نمایش قرن با این تفاوت که دو رقم آخر حذف میشود (مثلاً 20 برای 2020)
%d: نمایش روز ماه (مثلاً 01 برای اولین روز ماه)
%D: نمایش تاریخ %m/%d/%y
%e: نمایش روز ماه، با فاصله پر کردن مشابه %_d
%F: نمایش تاریخ کامل، مشابه %Y-%m-%d
%g: نمایش دو رقم آخر سال برای شماره هفته ISO (مشابه %G)
%H: نمایش ساعت در فرمت 24 ساعته (مثلاً 01 و 23)
%I: نمایش ساعت در فرمت 12 ساعته (مثلاً 01 و 11)
%j: نمایش روز از سال (مثلاً 001 تا 366)
%k: نمایش ساعت، با فضای خالی پر شده (مثلاً 02 و 23)؛ مشابه %_H
%l: نمایش ساعت، با فضای خالی پر شده (مثلاً 1 و 11)؛ مشابه %_I
%m: نمایش ماه (مثلاً 01 تا 12)
%M: نمایش دقیقه (مثلاً 00 تا 59)
%n: نمایش یک خط جدید
%N: نمایش نانوثانیهها (000000000 تا 999999999)
%p: نمایش معادل لوکال از AM یا PM؛ اگر نامعلوم است، خالی باقی میماند.
%S: نمایش ثانیه (مثلاً 00 تا 60)
%y: نمایش دو رقم آخر سال (مثلاً 00 تا 99)
%Y: نمایش سال (مثلاً 2021)
%z: نمایش منطقه زمانی عددی +hhmm (مثلاً -0400)
%:z: نمایش منطقه زمانی عددی +hh:mm (مثلاً -04:00)
%::z: نمایش منطقه زمانی عددی +hh:mm:ss (مثلاً -04:00:00)
برای نمایش یکی از کاربرد های این دستور ما یک اسکریپت بکاپ مینویسیم
که این اسکریپت هر ساعت اجرا میشود و یک بکاپ کامل از دایرکتوری
/home/
میگیرد.
برای اینکه اسکریپت هر ساعت اجرا شود، آن را در دایرکتوری
/etc/cron.hourly/
قرار و دسترسی اجرا را با دستور.
chmod +x /etc/cron.daily/homebkp.sh
به فایل میدهیم(با فرض اینکه نام فایل
homebkp.sh)
است.
محتوای اسکریپت ما به این صورت است که متغییری برای ذخیره
تاریخ به صورت سال-ماه-روز تعریف میشود،
در خط بعدی با دستور
tar
از مسیر مورد نظر بکاپ میگیریم و بجای نام از تاریخ داخل متغییر
استفاده میکنیم.
dt=`/usr/bin/date +"%Y-%m-%d"`
/usr/bin/tar -cf /mnt/bkps/$dt.tar /home/
{{< warning >}}
دقت کنید که وقتی میخواهید نتیجه یک دستور را داخل یک متغییر ذخیره کنید
باید دستور داخل
backtick
باشد. مثال:
dt=`date +"%d"`
{{< /warning >}}
Author:
داکیومنت های داخلی دستورات دیگر را جمع می کند و به شکلی ساده نمایش می دهد.
help …..(command) : درباره این دستور به من کمک کن
help –d ….. : خلاصه توضیحات دستور
help –m ….. : توضیحات دستور را در قابل منوآل پیج نشان بده
help –s ….. : سینتکس نحوه انجام دستور
سلام. خوشحال میشم اگر تمایل داشتید در خبرنامه هفتگی ما کتابی که درست کردید رو معرفی کنید.
https://newsletter.softwaretalks.ir/
درود!
از این که این کتاب را نوشتهاید سپاسگزارم.
نکتهای دربارهٔ پروانهٔ کتاب هست که خدمت شما عرض میکنم.
در فایل README.md این مخزن دربارهٔ مجوز کتاب چنین جملهای را نوشتهاید:
« استفاده از این کتاب آزاد هست، اما فروش کتاب به صورت چاپ شده و یا نسخههای کامپیوتری مثل pdf, ebook منع شده.»
اما در بخش پروانهٔ مخزن، آن را CC-0 قرار دادهاید که مطابق با جملهٔ بالا نیست.
بهمنظور جلوگیری از فروش کتاب با حفظ آزادی مطالعه، انتشار و گسترش، باید از پروانهٔ CC-BY-SA-NC استفاده شود.
این پروانه آزادیهای دریافت و ارسال و همچنین ویرایش کتاب را به افراد میدهد با دو شرط زیر:
با سپاس
دستور "tree" در لینوکس یکی از ابزارهای پرکاربرد برای نمایش ساختار فایلها و دایرکتوریها به صورت درختی در خط فرمان است.
برخی از کاربردهای این دستور عبارتند از:
نمایش ساختار درختی دایرکتوری فعلی: با اجرای دستور "tree" در دایرکتوری فعلی، شما میتوانید یک نمای کلی از ساختار فایلها و دایرکتوریهای موجود در آن را مشاهده کنید.
نمایش ساختار درختی یک دایرکتوری خاص: با استفاده از دستور "tree" و دادن مسیر دایرکتوری به عنوان ورودی، میتوانید ساختار درختی آن دایرکتوری را نمایش دهید.
$ tree ادرس دایرکتوری مدنظر
محاسبه فضای استفاده شده توسط دایرکتوری: با استفاده از گزینه "du--"، دستور "tree" میتواند مجموع فضای استفاده شده توسط فایلهای داخل دایرکتوری را نمایش دهد.
$tree --du
نمایش فایلهای پنهان: با استفاده از گزینه "a-"، دستور "tree" تمام فایلها و دایرکتوریهای پنهان را نیز نمایش میدهد.
$tree -a
محدود کردن سطح نمایش: با استفاده از گزینه "-L" و تعیین یک عدد، میتوانید سطح نمایش درخت را محدود کنید و تنها یک مجموعه خاص از دایرکتوریها را نمایش دهید.
به عنوان مثال، فرض کنید دایرکتوری "/home/user/Documents" دارای یک ساختار درختی چند سطحی باشد. برای نمایش ساختار درختی این دایرکتوری با محدودیت تا دو سطح، میتوانید دستور زیر را اجرا کنید:
$tree -L 2 /home/user/Documents
این دستور فقط دو سطح از زیردایرکتوریهای "/home/user/Documents" را نمایش خواهد داد.
نمایش نام فایلها در قالب سطری: با استفاده از گزینه "f-"، دستور "tree" میتواند نام فایلها را به همراه مسیر کامل آنها در یک سطر نمایش دهد.
`$tree -f
`
$sudo apt update
$sudo apt install tree
$tree --version
-d: فقط دایرکتوریها را لیست میکند.
-l: در صورتی که لینکهای نمادین به دایرکتوریها اشاره داشته باشند، آنها را به عنوان دایرکتوریها محاسبه میکند.
-f: پیشوند مسیر کامل هر فایل را چاپ میکند.
-x: فقط در فایلسیستم فعلی بمانید.
-L level: حداکثر عمق نمایش درخت دایرکتوری را تعیین میکند.
-R: در تمام سطوح زیردایرکتوریها (مطابق با آپشن -L) را به صورت بازگشتی نمایش میدهد.
-P pattern: فقط فایلهایی که با الگوی وایلدکارد مطابقت دارند را لیست میکند.
-N: کاراکترهای غیرقابل چاپ را به صورت غیرقابل چاپ چاپ میکند.
-Q: نام فایلها را در دو نقل قول چاپ میکند.
-p: نوع و مجوز فایل را برای هر فایل چاپ میکند.
-u: نام کاربری (یا شماره UID اگر نام کاربری در دسترس نباشد) را برای هر فایل چاپ میکند.
-g: نام گروه (یا شماره GID اگر نام گروه در دسترس نباشد) را برای هر فایل چاپ میکند.
-s: اندازه هر فایل را به بایت همراه با نام چاپ میکند.
-h: اندازه هر فایل را به صورت خواناپذیرتر چاپ میکند.
-i: خطوط فاصله را چاپ نمیکند.
-A: از گرافیک خطوط ANSI برای چاپ خطهای فاصله استفاده میکند.
-S: از گرافیک خطوط CP437 برای چاپ خطهای فاصله استفاده میکند.
-n: همیشه رنگآمیزی را خاموش میکند.
-C: همیشه رنگآمیزی را روشن میکند.
Author or Authors:
متن پررنگ کج خطزیر خطرو لینک به گوگل
لیست
لیست
لیست
لیست
ddffنقل قول
console.log("yo)"fsdfsffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
hellosdffffffffff
پس از فعال کردن table of contents متوجه می شویم که از چپ به راست جدول را چاپ می کند.
می توانیم با تغییر دادن این فایل همانند تصویر با اضافه کردن (خط ۳ و ۶) مشکل را حل کنیم
- مقدمه
- بررسی تمام فضاهای مانت شده
- بررسی یک فایل سیستم خاص
- بررسی یک فایل سیستم حاوی یک فایل
- دیدن تمام فایل سیستم ها
- تعیین مقیاس نمایش
- دیدن مقیاس به صورت ساده شده
- مقیاس 1000
- نمایش آی نودها
- تعیین سایز بلوک
- نمایش فایل سیستم های لوکال
- نتایج بدون سینک کردن
- تعیین فیلدهای خروجی
- نتایج بر اساس POSIX
- دیدن نتایج به همراه سینک کردن
- محاسبه مجموع فضاها
- نمایش فضاهای یک نوع فایل سیستم
- نمایش ستون نوع فایل سیستم
- حذف یک فایل سیستم خاص از نتایج
- واحدهای نمایش
- Author or Authors:
ابزار df برای بررسی فضای خالی یا فضای استفاده شده در یک فایل سیستم لینوکس استفاده میشود.
ساختار کلی این دستور به شکل زیر است:
$ df [option] ... [FILE] ...
اگر دستور df بدون هیچ آرگومانی استفاده شود لیستی را از فضاهای موجود در تمام فایل سیستمهایی که در حال حاضر مانت شدهاند، نشان میدهد.
باید توجه داشته باشید که این دستور، فایل سیستمهای مانت نشده را نشان نمیدهد.
$ df
# Filesystem 1K-blocks Used Available Use% Mounted on
# tmpfs 1589124 2688 1586436 1% /run
# /dev/nvme0n1p6 60373924 44709612 12571784 79% /
# tmpfs 7945612 41424 7904188 1% /dev/shm
# tmpfs 5120 4 5116 1% /run/lock
# /dev/nvme0n1p8 79407872 52876308 22452156 71% /home
# /dev/nvme0n1p1 98304 33879 64425 35% /boot/efi
# tmpfs 1589120 156 1588964 1% /run/user/1000
# /dev/sda3 958786348 901281808 8727580 100% /media/rahim/makhzan
وارد کردن نام و آدرس فایل سیستم مانت شده:
$ df /dev/sda3
# Filesystem 1K-blocks Used Available Use% Mounted on
# /dev/sda3 958786348 901281808 8727580 100% /media/rahim/makhzan
اگر یک فایل به دستور df داده شود اطلاعات فایل سیستمی را میدهد که شامل این فایل خاص باشد. برای این کار کافی است که مسیر فایل را جلوی این دستور اضافه کنید:
$ df sample.txt
# Filesystem 1K-blocks Used Available Use% Mounted on
# /dev/nvme0n1p8 79407872 52873308 22455156 71% /home
چون این فایل در دایرکتوری home قرار دارد، نتیجه نمایش داده شده همان نتیجهای است که در مثال اول در ردیف پنجم نتایج، لیست شده بود
-a, --all
تمام انواع فایل سیستمها (حتی با سایز صفر) را هم نشان میدهد
$ df -a
# Filesystem 1K-blocks Used Available Use% Mounted on
# sysfs 0 0 0 - /sys
# proc 0 0 0 - /proc
# udev 7910236 0 7910236 0% /dev
# devpts 0 0 0 - /dev/pts
# tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 60373924 44717800 12563596 79% /
...
-B, --block-size=SIZE
تمام اندازهها را بر اساس مقیاس مشخص شده در SIZE نشان میدهد:
$ df df -B M
# Filesystem 1M-blocks Used Available Use% Mounted on
# tmpfs 1552M 3M 1550M 1% /run
# /dev/nvme0n1p6 58959M 43670M 12270M 79% /
# tmpfs 7760M 18M 7742M 1% /dev/shm
...
آرگومان SIZE یک واحد اختیاری است که اگر به صورت 10K استفاده شود بر اساس ضرایب 1024 است و اگر به صورت KB استفاده شود بر اساس ضرایب 1000 خواهد بود. پیشوندهای باینری ماننند KiB=B هم قابل استفاده هستند.
-h, --human-readable
سایزها را بر اساس ضرایب 1024 نشان میدهد (مانند 1023M)
$ df -h
# Filesystem Size Used Avail Use% Mounted on
# tmpfs 1.6G 2.7M 1.6G 1% /run
# /dev/nvme0n1p6 58G 43G 12G 79% /
# tmpfs 7.6G 18M 7.6G 1% /dev/shm
-H, --si
نتایج را بر اساس ضرایب 1000 نشان میدهد (مانند 1.1G):
$ df -H
# Filesystem Size Used Avail Use% Mounted on
# tmpfs 1.7G 2.8M 1.7G 1% /run
# /dev/nvme0n1p6 62G 46G 13G 79% /
# tmpfs 8.2G 22M 8.2G 1% /dev/shm
...
-i, --inodes
لیستی از اطلاعات inodeها را به جای اطلاعات بلوکها نمایش میدهد:
$ df -i
# Filesystem Inodes IUsed IFree IUse% Mounted on
# tmpfs 1986403 1496 1984907 1% /run
# /dev/nvme0n1p6 3842720 1869070 1973650 49% /
# tmpfs 1986403 68 1986335 1% /dev/shm
...
-k
مانند آن است که سایز واحد نمایش را به صورت --block-size=1K تعریف کنیم:
$ df -k
# Filesystem 1K-blocks Used Available Use% Mounted on
# tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 60373924 44717860 12563536 79% /
# tmpfs 7945612 21448 7924164 1% /dev/shm
...
-l, --local
لیست ننایج را به فایل سیستمهای لوکال محدود میکند:
$ df -l
# Filesystem 1K-blocks Used Available Use% Mounted on
# tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 60373924 44717864 12563532 79% /
# tmpfs 7945612 18376 7927236 1% /dev/shm
--no-sync
قبل از دریافت اطلاعات سینک را انجام نمیدهد (به صورت پیشفرض این گزینه فعال است).
--output[=FIELD_LIST]
فرمت خروجی را مشخص میکند. اگر مقداری برای آن تعریف نشود تمام فیلدها را نشان میدهد:
$ df --output=source,avail
# Filesystem Avail
# tmpfs 1586432
# /dev/nvme0n1p6 12563520
# tmpfs 7927236
مقدارهای معتبر برای فیلدها موارد زیر هستند:
'source', 'fstype', 'itotal', 'iused', 'iavail',
'ipcent', 'size', 'used', 'avail', 'pcent' and 'target'
-P,- -portability
از فرمت POSIX برای نشان دادن نتایج استفاده میکند:
$ df -P
# Filesystem 1024-blocks Used Available Capacity Mounted on
# tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 60373924 44717876 12563520 79% /
# tmpfs 7945612 18376 7927236 1% /dev/sh
--sync
قبل از گرفتن اطلاعات سینک انجام میدهد.
--total
تمام مقادیر ناچیز را حذف میکند و یک مقدار مجموع هم در آخر نتایج محاسبه میکند:
$ df --total
# Filesystem 1K-blocks Used Available Use% Mounted on
# tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 60373924 44717880 12563516 79% /
# tmpfs 7945612 18376 7927236 1% /dev/shm
# tmpfs 5120 4 5116 1% /run/lock
# /dev/nvme0n1p8 79407872 52871212 22457252 71% /home
# /dev/nvme0n1p1 98304 33879 64425 35% /boot/efi
# tmpfs 1589120 148 1588972 1% /run/user/1000
# /dev/sda3 958786348 901281812 8727576 100% /media/rahim/makhzan
# total 1109795424 998926003 54920525 95% -
-t, --type=TYPE
نتایج را به یک نوع خاص از فایل سیستم محدود میکند:
$ df -t tmpfs
# Filesystem 1K-blocks Used Available Use% Mounted on
# tmpfs 1589124 2692 1586432 1% /run
# tmpfs 7945612 18376 7927236 1% /dev/shm
# tmpfs 5120 4 5116 1% /run/lock
# tmpfs 1589120 148 1588972 1% /run/user/1000
-T, --print-type
نوع فایل سیستم را نیز نشان میدهد:
$ df -T
# Filesystem Type 1K-blocks Used Available Use% # Mounted on
# tmpfs tmpfs 1589124 2692 1586432 1% /run
# /dev/nvme0n1p6 ext4 60373924 44717888 12563508 79% /
# tmpfs tmpfs 7945612 18376 7927236 1% /dev/shm
-x, --exclude-type=TYPE
یک نوع خاص از فایل سیستم را از نتایج حذف میکند:
$ df -x tmpfs
# Filesystem 1K-blocks Used Available Use% Mounted on
# /dev/nvme0n1p6 60373924 44717888 12563508 79% /
# /dev/nvme0n1p8 79407872 52874604 22453860 71% /home
# /dev/nvme0n1p1 98304 33879 64425 35% /boot/efi
دستور
df
به صورت پیشفرض از
1 K blocks
برای نمایش واحد استفاده میکند.
واحد مورد نظر یا از گزینه
–block-size
و یا اولین واحد مشخص شده در یکی از متغیرهای محیطی
DF_BLOCK_SIZE, BLOCKSIZE AND BLOCK_SIZE
برداشت شده و استفاده میشود.
بلوک سایز به ترتیب یکی از واحدهای زیر را میتواند داشته باشد:
K as in Kilo, M, G, T, P, E, Z, Y
Author or Authors:
[!["Image Alt"](img src)](Link of image)
در ابتدا دستور
$ls -l
را اجرا کنید تا مجوزهای فعلی را ببینید.
این دستور برای تغییر سطوح دسترسی فایلها و دایرکتوریها به کار میرود. این دستور به شما امکان میدهد تا سطوح دسترسی به فایلها و دایرکتوریها را برای کاربران مختلف تغییر دهید.
• r (read): 4
• w (write): 2
• x (execute): 1
دسترسی ها برای کاربر، گروه و سایرکاربران تعریف می شود به این صورت که ما باید سه مقدار را با عدد دسترسی پر کنیم :
chmod - - -
اولین عدد از سمت چپ جمع اعداد دسترسی برای صاحب فایل
دومین برای دسترسی گروه صاحب فایل
و آخرین دسترسی سایر کاربرهاست
به عنوان مثال :
chmod 755 myfile.txt
در این مثال، سطح دسترسی فایل myfile.txt به صورت زیر تغییر میکند:
صاحب فایل دسترسی خواندن، نوشتن و اجرا دارد (7) = 4 + 2+ 1
گروهی که فایل در آن قرار دارد دسترسی خواندن و اجرا دارند (5) = 4 + 1
دیگر کاربران نیز دسترسی خواندن و اجرا دارند (5)
Read (r)
Write (w)
Execute (x)
chmod +rwx
chmod -rwx
chmod +x
chmod -wx
chmod g+w filename
chmod g-wx filename
chmod o+w filename
chmod o-rwx foldername
'+' به معنی اعطای دسترسی و - به معنی گرفتن دسترسی است.
g برای گروه
o برای سایر کاربران
u برای صاحب فایل
ugo یا a برای همه
Author or Authors:
ابزار tree برای نمایش لیست فایل ها و دایرکتوری ها بر اساس ساختار چیدمانشان استفاده میشود. برای مثال فرض کنید دایرکتوری foo یک
دایرکتوری bar و یک فایل self را درونش دارد و درون bar یک دایرکتوری دیگر به همین نام موجود است، که درون هر یک از این دایرکتوری ها، یک فایل ساخته شده.
برای اینکه شما بتوانید این ساختار را به صورت شاخه هایی تو در تو مشاهده کنید میتوانید از ابزار tree استفاده کنید.
$ tree /tmp/t
/tmp/t
├── foo
│ ├── a_file
│ └── bar
│ ├── another_file
│ └── bar
└── self
3 directories, 3 files
tree
را وارد کنید.tree /tmp
فایل و یا دایرکتوری هایی که پیشوند دات(.) دارند درحالت عادی مخفی هستند و لیست نمیشوند، برای نمایش فایل های مخفی از سوییچ a-
استفاده میشود.
$ tree -a /tmp/
با سوییچ d-
شما میتوانید فقط دایرکتوری های مسیر را لیست کنید، و فایل های زیر شاخه های آن به شما نمایش داده نخواهد شد.
$ tree /tmp/t -d
/tmp/t
└── foo
└── bar
└── bar
ابزار
tree
به صورت پیشفرض اگر دایرکتوری سافت لینک شده باشد را لیست نمیکند،
برای اینکه لینک ها را هم دنبال کند و لیست کند از سوییچ
l-
استفاده میکنیم
برای نمایش مسیر کامل هر فایل سوییچ
f-
استفاده میشود
$ tree -f
.
├── ./foo
│ ├── ./foo/a_file
│ └── ./foo/bar
│ ├── ./foo/bar/another_file
│ └── ./foo/bar/bar
└── ./self
در حالت پیشفرض زیر شاخه های
tree
نا محدود است، برای محدود کردن میزان زیر شاخه از
-L
و بعد مقدار محدودیت استفاده میشود.
برای مثال
$ tree -L 2
.
├── foo
│ ├── a_file
│ └── bar
└── self
2 directories, 2 files
برای نمایش سایز فایل سوییچ
du--
و یا
-h
بکار میرود با این تفاوت که استفاده از سوییچ
--du
سایز را به بایت نمایش خواهد داد اما سوییچ
`-h
سایز را با پسوند های
k, m, g
قابل خواندن خواهد کرد.
Author or Authors:
برای انتقال یک فایل یا یک دایرکتوری از ابزار mv استفاده میشود. این ابزار فایل ها/فایل را از منبع به مقصد تعینن شده کپی میکند و پس از اتمام
هر کپی فایل، فایل کاملا پاک میشود. البته همچنین این ابزار برای تغییر نام یک فایل یا دایرکتوری هم استفاده میشود.
سینتکس به اینشکل است که اولین آرگومان این دستور مسیر فایل یا دایرکتوری منبع است و سپس دومین آرگومان مقصد است.
$ mv source dest
برای انتقال فایل از سوییچ
v-
استفاده کنید تا فرایند انتقال را بتوانید ببنیید.
$ mv foo /tmp/bar
برای منتقل کردن چندین فایل باید مقصد حتما یک دایرکتوری باشد. آخرین آرگومانی که مشخص کنید دایرکتوری مقصد خواهد بود
و تمامی فایل ها و دایرکتوری های قبل از آن منبع خواهند بود.
$ mv src1 src2 src3 src4 /foo/bar/
برای انتقال یک دایرکتوری از سوییچ r-
استفاده میشود.
$ mv -r /foo/ /bar/
ممنون بابت پروژه، من بخشی از متن هارو خوندم و متوجه ی مشکل کوچیک داخل Theme سایت شدم که فکر میکنم حل کردنش میتونه خوب باشه.
تگ های pre که داخل اونها از تگ code استفاده شده RTL شدن که این باعث میشه $ اول نمونه کد های موجود آخرشون چاپ بشه و این ی مقدار گیج کننده هستش 😵💫.
به نظرم میشه این مشکل رو با اضافه کردن این استایل داخل فایل استایل های custom بر طرف کرد.
pre.language-bash {
direction: ltr;
}
داخل فایل های MD دیدم که برای درست کردن این مشکل کد هارو با <div dir='ltr'>
نوشتن، اما خب همه جا یادشون نبوده و خیلی ها RTL موندن. اگه به نظرتون این استایل میتونه مشکل رو حل کنه میتونم با خوشحالی Pull Reqest بفرستم.
متغییر های محیطی همانند متغییر هایی هستند که در برنامه نویسی استفاده میکنیم.
اما اگر آشنایی ندارید جعبه خالیای را در نظر بگیرید، شما میتوانید هر محتوایی را داخل جعبه قرار بدین و هر موقع نیاز شد محتوای آن را بر دارید
و یا جایگزین کنید، متغییر ها شبیه به جعبه هایی هستند با نام هایی مشخصل.
اما متغییر های محیطی چیست؟
زمانی که شما با bash کار میکنید، متغییر هایی هستند که بر اساس فایل های کانفیگ مثل bashrc، در مفسر شما تنظیم میشوند.
برنامه ها و حتی خود bash از این متغییر ها در زمان اجرای برنامه استفاده میکنند.
مثلا شما هر زمانی که در bash ابزاری را اجرا میکنید، bash باید مسیر آن ابزار را بداند تا آن را اجرا کند به همین خاطر متغییر محیطی که شامل
تمام مسیر های برنامه های اجرایی است وجود دارد و هر زمان که نام ابزار مانند ls را وارد کنید، bash از مسیر های تعریف شده در متغییر PATH
دنبال فایل اجرایی خواهد گشت و آن را اجرا خواهد کرد.
شما میتوانید متغییر های محیطی را ویرایش کنید، و یا یک متغییر جدید بسازید.
زمانی که شما یک متغییر محیطی را در bash تعریف میکنید، این متغییر فقط در child process های bash در دسترس خواهد بود و زمانی
که از این پروسه خارج شوید، مقدار این متغییر هم از بین خواهد رفت.
برای تعریف متغییر های محیطی از کلمه export
و سپس نام متغییر استفاده کنید و با علامت =
مقدار را برای آن متغییر تنظیم کنید.
export VAR1='foo'
export VAR2=VAR1
دقت کنید که در زمان تعریف متغییر های محیطی باید علامت
=
به نام متغییر و مقدار آن چسبیده باشد.
برای اینکه یک متغییر محیطی را دائمی کنید باید آن را در فایل های کانفیگی که زمان اجرای ترمینال خوانده میشوند تعریف کنید.
فایل bashrc.
در دایرکتوری home هر کاربر است، کافیست یک متغییر را داخل این فایل تعریف کنید.
export VARDEFAULT='bar'
{{< note >}}
به این دقت داشته باشید که اگر بجای bash از shell های دیگری مانند zsh استفاده میکنید، باید متغییر ها را درون فایل های rc
همان shell
ها تعریف کنید. برای مثال در zsh فایل zshrc. فایل استارتاپ است.
{{< /note >}}
استفاده و فراخوانی متغییر ها با استفاده از علامت $
در سمت چپ نامشان است. برای مثال ما متغییر foo را تعریف
و سپس چاپ میکنیم.
export foo='bar'
echo $foo
همانطور که در مقدمه اشاره شد متغییر هایی وجود دارند که به صورت پیشفرض زمانی که یک shell اجرا میشود تنظیم میشود. برخی از مهم
ترین های آنها:
نام متغغیر | کاربرد |
---|---|
EDITOR | ویرایشگر متن پیشفرض |
HOME | دایرکتوری کاربر فعلی |
SHELL | مسیر shell کاربر فعلی |
TERM | شبیهساز ترمینال فعلی |
PATH | مسیر های جست و جو برای اجرای کامند |
MANPATH | مسر فایل man |
LOGNAME | نام کاربر فعلی |
TZ | منطقه زمانی که توسط ساعت سیستم استفاده میشود |
برای دیدن تمامی متغییر های محیطی میتوانید از کامند
env
استفاده کنید.
این تست پراجکت است
dont mention it
attechment.md
سرعت خواندن فایل از ورودی در حالت عادی به 512 بایت در ثانیه محدود شده است.
Not actually. bs is an acronym of Block Size. dd
works with block devices. It even assumes the file as block device. Its default block size is 512 bytes that means it reads chunks of the device in the 512 bytes units, not less and more. when you pass a bs value for example 4096k to dd as a bs value, you tell dd
to read every 4096kb as a block. Also it is not just about reading. bs is used for both read and write. The block size itself is what filesystem set to be the minimum working space. Linux block size is typically 4096 bytes which is called internal fragmentation. That is if even you make a 2 byte file, the filesystem allocates 4kb for that file. The minimum block size for dd is 512 bytes. when you use your desired bs value for dd, it reads or writes that date in the chunks of your desired value. So this is a good practice to use multiples of 512 as bs value like, 512, 1024, 2048 etc. There is also another block size called disk block size which is controlled by disk controller. when you format your disk, the new file system takes care how to map and use the underlying disk block size in an efficient way. So
"اندازه بلوک در حالت عادی 512 بایت است"
is more accurate.
پر رنگ
کج
خط رو
لیست عددی ۱
لیس عددی۲
لیست ساده ۱
لیست ساده ۲
console.log("js code")
https://bit-orbit.github.io/the-secret-bit/fundamentals/shebang/shebang/
It is not a good idea to use shebang this way. it is hard coded. For example: #!/bin/bash
or #!/bin/python3
What if there is no bash or python binary? What if our binaries be under /usr/local/bin/
? It just fails. the best practice is always use env for shebang is scripts, like: #!/usr/bin/env bash
or #!/usr/bin/env python3
. This way you always sure you choose right directory to look for binaries. because it is defined in user's environment.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.