Giter Site home page Giter Site logo

bit-orbit / the-secret-bit Goto Github PK

View Code? Open in Web Editor NEW
300.0 3.0 24.0 13.56 MB

کتاب متن باز فارسی لینوکس the secret bit

Home Page: https://bit-orbit.github.io/the-secret-bit/

License: Other

CSS 11.94% JavaScript 15.10% Python 72.95%
linux hugo hugo-site book bash shell free-linux-book

the-secret-bit's People

Contributors

ah00ra avatar alirezadigi avatar amirhhashemi avatar amirhoseinsb avatar behrouzsohrabi avatar blackiq avatar farhaduneci avatar mahdimmr avatar mammadnet avatar mikdev avatar motahharm avatar shabane avatar shahriaarrr avatar sinakarimi7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

the-secret-bit's Issues

date


title: "date"
date: 2023-06-07T15:15:51+03:30
draft: false

فهرست


مقدمه

image

این دستور به کاربران اجازه می‌دهد تا تاریخ و زمان روی سیستم را مشاهده کنند و از آن برای برنامه‌ریزی و مدیریت فایل‌ها و فولدرها استفاده کنند.
دستور date برای نمایش تاریخ و زمان در اسکریپت‌های شل نیز مفید است.
با استفاده از این دستور، می‌توانید تاریخ و زمان را به صورت متغیر در اسکریپت خود استفاده کنید و از آن در عملیات مختلفی مانند ساخت فایل‌های لاگ یا پشتیبان‌گیری از فایل‌ها استفاده کنید.


آپشن‌های این دستورالعمل

  • -d, --date: می‌توانید تاریخ و زمان دلخواه را به جای نمایش تاریخ و زمان فعلی سیستم عامل نمایش دهید
  • -s, --set: می‌توانید تاریخ و زمان سیستم عامل را تنظیم کنید
  • -u, --utc, --universal: می‌توانید تاریخ و زمان را بر اساس زمان جهانی نشان دهید
  • --version: مشاهده نسخه دستور date
  • -r, --reference=FILE: می‌توانید تاریخ و زمان آخرین تغییر فایل مورد نظر را نمایش دهید
  • -s, --set=STRING: می‌توانید تاریخ و زمان سیستم عامل را با توجه به رشته‌ای که وارد می‌کنید تنظیم کنید

فرمت‌های نمایش

فرمت های کنترلی برای نمایش قسمت های مختلفی از تاریخ استفاده می‌شود،
برای مثال ممکن است شما نیاز داشته باشید تا فقط روز هفته، سال و یا
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:

Commands Manuals

فهرست


مقدمه

در طول زمان ، دانستن کاربرد هر کامندی از حافظه کوتاه مدت خارج میشود. برای دانستن همیشگی کاربرد کامند ، نباید آن را حفظ کرد بلکه باید از راهنمای آن استفاده کرد و به مرور زمان به حافظه بلند مدت سپرده میشود.

What is?

کامندی است که به طول یک خط درمورد دستور مورد نظر توضیح خلاصه ای میدهد. سینتکس :
whatis .
.....(command)
makewhatis : آپدیت داکیومنت های وات ایز

Man

صفحات دستی یا همان Manual Page ، راهنمای کامل و اصلی دستورات لینوکس است. سینتکس :
man ......

Apropos

سرچ در Manual Pages و توضیحات آن. Man –k دستور دیگری که همانند apropos است. سینتکس :
apropos ......

Info

مشاهده داکیومنت های یک ابزار یا دستور. همچنین اطلاعات دقیق تر و کامل تر از man. سینتکس :
info .......

Help

داکیومنت های داخلی دستورات دیگر را جمع می کند و به شکلی ساده نمایش می دهد.
help …..(command) : درباره این دستور به من کمک کن
help –d ….. : خلاصه توضیحات دستور
help –m ….. : توضیحات دستور را در قابل منوآل پیج نشان بده
help –s ….. : سینتکس نحوه انجام دستور


نویسنده

پروانهٔ مخزن

درود!
از این که این کتاب را نوشته‌اید سپاسگزارم.

نکته‌ای دربارهٔ پروانهٔ کتاب هست که خدمت شما عرض می‌کنم.
در فایل README.md این مخزن دربارهٔ مجوز کتاب چنین جمله‌ای را نوشته‌اید:
« استفاده از این کتاب آزاد هست، اما فروش کتاب به صورت چاپ شده و یا نسخه‌های کامپیوتری مثل pdf, ebook منع شده.»
اما در بخش پروانهٔ مخزن، آن را CC-0 قرار داده‌اید که مطابق با جملهٔ بالا نیست.
به‌منظور جلوگیری از فروش کتاب با حفظ آزادی مطالعه، انتشار و گسترش، باید از پروانهٔ CC-BY-SA-NC استفاده شود.
این پروانه آزادی‌های دریافت و ارسال و هم‌چنین ویرایش کتاب را به افراد می‌دهد با دو شرط زیر:

  • کتاب باید با همین پروانه منتشر شود.(share-alike)
  • کتاب باید رایگان بماند. (non-commercial)

با سپاس

tree

فهرست


مقدمه

دستور "tree" در لینوکس یکی از ابزارهای پرکاربرد برای نمایش ساختار فایل‌ها و دایرکتوری‌ها به صورت درختی در خط فرمان است.

image

کاربردها

برخی از کاربردهای این دستور عبارتند از:

  • نمایش ساختار درختی دایرکتوری فعلی: با اجرای دستور "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

/work2_MehrnazShahi

│   ├── ./work2_MehrnazShahi/ex.sh

│   ├── ./work2_MehrnazShahi/info.txt

│   └── ./work2_MehrnazShahi/log.txt

`

  • نمایش سازگار با ANSI: با استفاده از گزینه "A-"، دستور "tree" می‌تواند خروجی خود را با ANSI سازگار کند و برای چاپ یا نمایش در ترمینال بهینه شود.

نحوه نصب

$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:

تست نهایی

عنوان ۱

عنوان ۲

عنوان ۳

متن پررنگ کج خط‌زیر خط‌رو لینک به گوگل

  • لیست

  • لیست

  1. لیست

  2. لیست

fsdfdfgfdgfsf

ddffنقل قول

console.log("yo)"fsdfsffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
hellosdffffffffff

مشکل: فهرست فارسی از چپ به راست چاپ می شود.

پس از فعال کردن table of contents متوجه می شویم که از چپ به راست جدول را چاپ می کند.

می توانیم با تغییر دادن این فایل همانند تصویر با اضافه کردن (خط ۳ و ۶) مشکل را حل کنیم
image

قبل از اعمال تغییرات:
image

بعد از اعمال تغیییرات:
image

df


title: "df"
date: 2023-02-08T04:25:34+03:30
draft: false
tags: [
'df',
'disk free',
'disk usage'
]

فهرست


مقدمه

ابزار 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


مقیاس 1000

-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' 

نتایج بر اساس POSIX

-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:

تست ادیتور

عنوان ۱

عنوان ۲

عنوان ۳

لینک

  1. لیست عددی
  • لیست عادی
``` کد ```

نقل قول

چپ به راست

راست به چپ

chmod

[!["Image Alt"](img src)](Link of image)

فهرست


مقدمه

در ابتدا دستور
$ls -l
را اجرا کنید تا مجوزهای فعلی را ببینید.
image

این دستور برای تغییر سطوح دسترسی فایل‌ها و دایرکتوری‌ها به کار می‌رود. این دستور به شما امکان می‌دهد تا سطوح دسترسی به فایل‌ها و دایرکتوری‌ها را برای کاربران مختلف تغییر دهید.


اعداد دسترسی

• 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


title: "tree"
date: 2022-03-04T16:28:45+03:30
draft: false

Screenshot_20220926_110636

فهرست


مقدمه

ابزار tree برای نمایش لیست فایل ها و دایرکتوری ها بر اساس ساختار چیدمانشان استفاده میشود. برای مثال فرض کنید دایرکتوری foo یک
دایرکتوری bar و یک فایل self را درونش دارد و درون bar یک دایرکتوری دیگر به همین نام موجود است، که درون هر یک از این دایرکتوری ها، یک فایل ساخته شده.
برای اینکه شما بتوانید این ساختار را به صورت شاخه هایی تو در تو مشاهده کنید میتوانید از ابزار tree استفاده کنید.

$ tree /tmp/t

/tmp/t
├── foo
│   ├── a_file
│   └── bar
│       ├── another_file
│       └── bar
└── self

3 directories, 3 files
  • برای اجرا، وارد یک دایرکتوری مانند /tmp/ شوید و سپس کامند tree را وارد کنید.
  • و یا میتوانید مسیری را برای 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


title: "mv"
date: 2022-03-04T16:28:45+03:30
draft: false

mv

فهرست


مقدمه

برای انتقال یک فایل یا یک دایرکتوری از ابزار mv استفاده می‌شود. این ابزار فایل ها/فایل را از منبع به مقصد تعینن شده کپی می‌کند و پس از اتمام
هر کپی فایل، فایل کاملا پاک می‌شود. البته همچنین این ابزار برای تغییر نام یک فایل یا دایرکتوری هم استفاده می‌شود.

سینتکس به اینشکل است که اولین آرگومان این دستور مسیر فایل یا دایرکتوری منبع است و سپس دومین آرگومان مقصد است.

$ mv source  dest

برای انتقال فایل از سوییچ v- استفاده کنید تا فرایند انتقال را بتوانید ببنیید.


انتقال یک فایل

$ mv foo /tmp/bar

انتقال چند فایل به یک دایرکتوری

برای منتقل کردن چندین فایل باید مقصد حتما یک دایرکتوری باشد. آخرین آرگومانی که مشخص کنید دایرکتوری مقصد خواهد بود
و تمامی فایل ها و دایرکتوری های قبل از آن منبع خواهند بود.

$ mv src1 src2 src3 src4  /foo/bar/

انتقال دایرکتوری

برای انتقال یک دایرکتوری از سوییچ r- استفاده می‌شود.

$ mv -r /foo/  /bar/

Author or Authors:

Code Blocks Direction

سلام، امیداورم که حالتون خوب باشه ツ

ممنون بابت پروژه، من بخشی از متن هارو خوندم و متوجه ی مشکل کوچیک داخل Theme سایت شدم که فکر می‌کنم حل کردنش می‌تونه خوب باشه.

تگ های pre که داخل اونها از تگ code استفاده شده RTL شدن که این باعث می‌شه $ اول نمونه کد های موجود آخرشون چاپ بشه و این ی مقدار گیج کننده هستش 😵‍💫.

image

به نظرم میشه این مشکل رو با اضافه کردن این استایل داخل فایل استایل های custom بر طرف کرد.

pre.language-bash {
    direction: ltr;
}

داخل فایل های ‌MD دیدم که برای درست کردن این مشکل کد هارو با <div dir='ltr'> نوشتن، اما خب همه جا یادشون نبوده و خیلی ها RTL موندن. اگه به نظرتون این استایل می‌تونه مشکل رو حل کنه می‌تونم با خوشحالی Pull Reqest بفرستم.

environment variables


title: "environment variables"
date: 2022-07-18T01:18:48+04:30
draft: false

img

فهرست


توضیحات

متغییر های محیطی همانند متغییر هایی هستند که در برنامه نویسی استفاده می‌کنیم.
اما اگر آشنایی ندارید جعبه‌ خالی‌ای را در نظر بگیرید، شما می‌توانید هر محتوایی را داخل جعبه قرار بدین و هر موقع نیاز شد محتوای آن را بر دارید
و یا جایگزین کنید، متغییر ها شبیه به جعبه هایی هستند با نام هایی مشخصل.

اما متغییر های محیطی چیست؟

زمانی که شما با 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 استفاده کنید.


نویسنده یا نویسندگان

مشکل

این تست پراجکت است

wrong definition

سرعت خواندن فایل از ورودی در حالت عادی به 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.

تست ادیتور

test

عنوان ۱

عنوان ۲

عنوان ۳

لینک

پر رنگ

کج

خط رو

  1. لیست عددی ۱

  2. لیس عددی۲

  • لیست ساده ۱

  • لیست ساده ۲

    console.log("js code")

shebang

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.