GRMLZSHRC(5)   GRMLZSHRC(5)

grmlzshrc - پیکربندی تعاملی zsh پروژه Grml

zsh [گزینه‌ها]...

پروژه Grml یک پیکربندی تعاملی جامع (که در سراسر این سند با عنوان grmlzshrc نامیده می‌شود) برای شل فوق‌العاده یونیکس zsh http://zsh.sourceforge.net. فراهم می‌کند. این سند، کتابچه راهنمای مرجع برای آن پیکربندی است.

برای استفاده از grmlzshrc، حداقل به نگارش 5.1 از zsh نیاز دارید.

رفتار grmlzshrc بسته به اینکه کدام کاربر آن را بارگذاری می‌کند متفاوت است. برای کاربر ریشه (EUID == 0) تنها زیرمجموعه‌ای از قابلیت‌ها به صورت پیش‌فرض بارگذاری می‌شود. این رفتار را می‌توان با تنظیم متغیر راه‌اندازی GRML_ALWAYS_LOAD_ALL تغییر داد (پایین را ببینید).

کاربران ممکن است بخواهند نگارشی به‌روز از پیکربندی (احتمالاً از منابع گیت) را در ~/.zshrc نگه دارند. اگر این اتفاق در سیستمی بیفتد که zshrc سراسری آن نیز یک grmlzshrc است (اما احتمالاً نسخه‌ای قدیمی‌تر)، می‌توانید با اجرای دستور زیر از بارگذاری نگارش سراسری جلوگیری کنید:

echo setopt no_global_rcs >> ~/.zshenv

توجه داشته باشید که این کار تمام پرونده‌های سراسری را، به استثنای پرونده سراسری zshenv، غیرفعال خواهد کرد.

برخی رفتارهای grmlzshrc را می‌توان با تنظیم متغیرهای مشخصی در شل تغییر داد. این متغیرها را می‌توان هنگام راه‌اندازی zsh به صورت موقت به این شکل تنظیم کرد:

% GRML_DISPLAY_BATTERY=1 zsh

یا با تنظیم همیشگی آن‌ها در zshrc.pre (بخش پرونده‌های کمکی در پایین را ببینید).

BATTERY

منسوخ شده است. به جای آن از GRML_DISPLAY_BATTERY استفاده کنید.

COMMAND_NOT_FOUND

مقداری غیر از صفر، گرداننده‌ای را فعال می‌کند که هنگام پیدا نشدن دستور فراخوانی می‌شود. این گرداننده توسط GRML_ZSH_CNF_HANDLER تعریف می‌شود (پایین را ببینید).

GRML_COMP_CACHING

در صورت تنظیم روی yes (پیش‌فرض)، مکانیزم حافظه نهان تکمیل خودکار zsh فعال شده و داده‌های کش در $GRML_COMP_CACHE_DIR قرار می‌گیرند.

GRML_COMP_CACHE_DIR

محل قرارگیری داده‌های حافظه نهان تکمیل خودکار zsh را در صورت فعال بودن $GRML_COMP_CACHING تعیین می‌کند. پیش‌فرض: ${ZDOTDIR:-$HOME}/.cache است. سیستم قبل از استفاده، از وجود پوشه اطمینان حاصل می‌کند.

GRML_DISPLAY_BATTERY

در صورت تنظیم روی مقداری بزرگ‌تر از صفر، grmlzshrc وضعیت باتری را در اعلان تعاملی سمت راست قرار می‌دهد. سیستم‌عامل‌های پشتیبانی‌شده عبارتند از: GNU/Linux، FreeBSD، OpenBSD و Darwin.

GRML_ZSH_CNF_HANDLER

این متغیر شامل گرداننده مورد استفاده برای COMMAND_NOT_FOUND است (بالا را ببینید) و به طور پیش‌فرض برابر با "/usr/share/command-not-found/command-not-found" است.

GRML_NO_APT_ALIASES

مقداری غیرخالی، از تعریف نام‌های مستعار کوتاه مخصوص apt مانند ag، agi، ati و... جلوگیری می‌کند.

GRML_NO_SMALL_ALIASES

مقداری غیرخالی، از تعریف نام‌های مستعار دوحرفی مانند da جلوگیری می‌کند. دستورات ls، ll، la و سایر نام‌های مستعار رایج مربوط به ls از این قاعده مستثنی هستند، همانند نام‌های مستعاری که توسط GRML_NO_APT_ALIASES مهار شده‌اند.

GRMLSMALL_SPECIFIC

این مقدار را روی صفر تنظیم کنید تا مواردی از پیکربندی zsh که در grml-small کار نمی‌کنند حذف شوند.

HISTFILE

محل ذخیره تاریخچه فرمان‌ها توسط zsh. پیش‌فرض: ${HOME}/.zsh_history.

HISTSIZE

تعداد دستوراتی که باید در تاریخچه نگه داشته شوند. پیش‌فرض: 5000.

MAILCHECK

بسامد زمانی بررسی نامه‌های جدید توسط zsh بر حسب ثانیه. پیش‌فرض: 30. مقدار صفر بررسی را خاموش می‌کند.

NOCOR

مقادیر غیرصفر، تصحیح خودکار دستورات را غیرفعال می‌کنند.

NOETCHOSTS

مقادیر غیرصفر، پردازش پرونده "/etc/hosts" را غیرفعال کرده و تکمیل خودکار میزبان‌ها با استفاده از محتوای این پرونده را خاموش می‌کنند.

NOMENU

در صورت تنظیم روی صفر (پیش‌فرض)، در صورت وجود حداقل پنج گزینه ممکن برای تکمیل خودکار، امکان انتخاب از منو فراهم می‌شود.

NOPRECMD

مقداری غیرصفر، دستورات precmd و preexec را غیرفعال می‌کند. این‌ها توابعی هستند که قبل از هر دستور اجرا می‌شوند (تنظیم عنوان xterm/screen و غیره).

REPORTTIME

زمان صرف‌شده (کاربر، سیستم و پردازنده) توسط دستورات خارجی را در صورتی که بیشتر از تعداد ثانیه‌های تعیین‌شده طول بکشند نمایش می‌دهد (پیش‌فرض: 5).

SAVEHIST

تعداد دستوراتی که باید در ${HISTFILE} ذخیره شوند. پیش‌فرض: 10000.

watch

مشابه tcsh(1)، آرایه‌ای از رویدادهای ورود/خروج کاربر است که توسط دستور توکار "log" شل گزارش می‌شود. برای جزئیات به zshparam(1) مراجعه کنید. پیش‌فرض: (notme root).

ZSH_NO_DEFAULT_LOCALE

در صورت تنظیم روی صفر (پیش‌فرض)، پرونده "/etc/default/locale" را درون‌ریزی می‌کند.

ZSH_PROFILE_RC

مقداری غیرصفر باعث پروفایل شدن توابع شل می‌شود. نتایج را می‌توان با دستور توکار zprof به دست آورد (برای جزئیات به zshmodules(1) مراجعه کنید).

COMPDUMPFILE

محل پرونده دامپ تکمیل خودکار را مشخص می‌کند. پیش‌فرض: $HOME/.zcompdump.

سبک‌ها (Styles) یک سازوکار پیکربندی حساس به زمینه در zsh هستند. شل از این سازوکار به طور گسترده در زیرسیستم‌هایی مانند تکمیل خودکار و اطلاعات سامانه کنترل نسخه (VCS) استفاده می‌کند. این سازوکار بیرون از فضای نام متغیرهای کلاسیک شل قرار دارد و از آلودگی آن جلوگیری می‌کند. قابلیت‌های جدید در zshrc گِرمل احتمالاً به جای متغیرها از سبک‌ها استفاده خواهند کرد. برخی از ویژگی‌های این پیکربندی (مانند مدیریت پشته دایرکتوری) در حال حاضر از سبک‌ها استفاده می‌کنند. آن سبک‌ها در کنار ویژگی‌های مربوطه مستند شده‌اند. این بخش سبک‌های عمومی‌تر را مستند می‌کند.

این زمینه مربوط به فراخوانی تابع compinit در zshrc است که سامانه تکمیل خودکار مبتنی بر تابع zsh را راه‌اندازی می‌کند.

arguments

این سبک امکان تزریق آرگومان‌ها به خط فرمانی را می‌دهد که برای اجرای compinit استفاده می‌شود. این سبک از نوع فهرست بوده و پیش‌فرض آن یک فهرست خالی است. با استفاده از این سبک، می‌توان -i را به compinit افزود تا compaudit غیرفعال شود.
zstyle ':grml:completion:compinit' arguments -i

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

این سبک باید در نقطه‌ای تنظیم شود که zshrc گرمل compinit را اجرا می‌کند. یک راه ممکن برای انجام این کار، تنظیم آن در ~/.zshrc.pre است (برای جزئیات به بخش پرونده‌های کمکی در پایین مراجعه کنید).

این بخش شرح دقیقی از قابلیت‌های غیر استاندارد پیاده‌سازی‌شده توسط grmlzshrc ارائه می‌دهد.

پشته دایرکتوری در grmlzshrc ماهیتی ماندگار دارد. هر بار که پوشه کاری zsh تغییر می‌کند، پشته در یک پرونده ذخیره می‌شود. این پرونده از طریق متغیر DIRSTACKFILE قابل پیکربندی است و به طور پیش‌فرض ~/.zdirs است. متغیر DIRSTACKSIZE در این پیکربندی به صورت پیش‌فرض برابر با 20 است.

پرونده DIRSTACKFILE با هر بار شروع zsh بارگذاری می‌شود، بنابراین نشست‌های جدید zsh پشته دایرکتوری نشستی را به ارث می‌برند که اخیراً DIRSTACKFILE را به‌روزرسانی کرده است.

اگر مایلید ویژگی پشته دایرکتوری ماندگار را به طور کامل غیرفعال کنید، می‌توانید با تنظیم سبک بولی enable روی false در زمینه مناسب این کار را انجام دهید (پیش‌فرض true است):

zstyle ':grml:chpwd:dirstack' enable false

امکان اعمال فیلتر بر روی نام پوشه‌هایی که در پرونده پشته دایرکتوری ماندگار ثبت می‌شوند وجود دارد. دو روش برای پیکربندی این فیلتر وجود دارد: فیلتر عمومی مبتنی بر تابع و فیلتر مبتنی بر الگو. هر دو از طریق سبک‌ها در زمینه ':grml:chpwd:dirstack' تنظیم می‌شوند.

برای استفاده از فیلتر مبتنی بر تابع، سبک filter را برای آن زمینه روی نام تابعی تنظیم کنید که هر بار قرار است نام پوشه‌ای به پشته دایرکتوری ماندگار افزوده شود فراخوانی گردد. اگر مقدار بازگشتی تابع نشان‌دهنده موفقیت باشد (یعنی مقدار بازگشتی "0")، نام پوشه فیلتر شده و به پشته ماندگار افزوده نمی‌شود. مثال:

function my_dirstack_filter() { [[ $1 == /tmp(|/*) ]] }
zstyle ':grml:chpwd:dirstack' filter my_dirstack_filter

فیلتر مبتنی بر الگو از فهرستی از الگوها استفاده می‌کند که به سبک exclude در زمینه مذکور داده می‌شوند. هر الگو آزمایش می‌شود و اولین الگویی که مطابقت داشته باشد، از افزودن نام پوشه به پشته ماندگار جلوگیری می‌کند. اگر هیچ‌یک از الگوها مطابقت نداشته باشد، نام پوشه افزوده می‌شود. مثال:

zstyle ':grml:chpwd:dirstack' exclude "/tmp(|/*)" "$HOME/tmp(|/*)"

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

اگر می‌خواهید فیلترهای خود را هنگام بارگذاری پرونده پشته دایرکتوری ماندگار اعمال کنید، سبک بولی filter-on-load را تنظیم کنید (پیش‌فرض false است):

zstyle ':grml:chpwd:dirstack' filter-on-load true

تنظیم سبک‌های filter-on-load و enable باید در ".zshrc.pre" انجام شود زیرا سبک‌ها باید هنگام اجرای پیکربندی اصلی تنظیم شده باشند! سایر سبک‌ها این محدودیت را ندارند، اما فعال‌سازی سیستم و همچنین فیلتر اولیه طبیعتاً با استفاده از تنظیمات و فیلترهایی انجام خواهد شد که در آن لحظه پیکربندی شده‌اند.

در مورد filter-on-load، قاعده کلی این است: اگر می‌خواهید هنگام بارگذاری فیلتر کنید، همه چیز را در ".zshrc.pre" تنظیم کنید؛ در غیر این صورت ".zshrc.local" نیز به همان خوبی کار می‌کند.

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

برای راه‌اندازی سیستم، باید تابع `chpwd_profiles' را در نقطه‌ای از `zshrc.local' خود فراخوانی کنید؛ ترجیحاً پس از پیکربندی سیستم. پیکربندی سیستم در ادامه توضیح داده شده است.

اگر نیاز به انجام اقدامات اولیه‌ای در نخستین بار فراخوانی `chpwd_profiles' دارید (که باید در پرونده پیکربندی شما باشد)، می‌توانید این کار را در تابعی به نام "chpwd_profiles_init" انجام دهید. این تابع باید قبل از فراخوانی `chpwd_profiles' تعریف شده باشد تا به درستی کار کند.

در طول فراخوانی اول `chpwd_profiles' (و در نتیجه تمام توابع پروفایل آن)، پارامتر `$CHPWD_PROFILES_INIT' وجود داشته و مقدار آن `1' است. در سایر حالات، این پارامتر به هیچ وجه وجود ندارد.

برای ذخیره پیکربندی، سیستم از توابع و سبک‌ها (سامانه پیکربندی حساس به زمینه zsh) استفاده می‌کند، مانند این:

zstyle ':chpwd:profiles:/usr/src/grml(|/|/*)'   profile grml
zstyle ':chpwd:profiles:/usr/src/debian(|/|/*)' profile debian

هنگامی که این کار انجام شد و شما وارد پوشه‌ای شدید که با الگوی بخش سوم زمینه مطابقت دارد، برای نمونه تابعی به نام chpwd_profile_grml (در صورت وجود) فراخوانی می‌شود.

اگر هیچ الگویی مطابقت نداشته باشد (یعنی هیچ پروفایلی شناسایی نشود)، پروفایل روی 'default' تنظیم می‌شود که به معنای تلاش برای فراخوانی chpwd_profile_default است.

توضیحی درباره زمینه مورد استفاده (عبارت ':chpwd:profiles:*' در دستور zstyle): بخش سوم در زمینه با ${PWD} تطبیق داده می‌شود. به همین دلیل استفاده از الگویی مانند /foo/bar(|/|/*) منطقی است، زیرا بدین ترتیب پروفایل برای تمام این مقادیر از ${PWD} شناسایی می‌شود:

/foo/bar
/foo/bar/
/foo/bar/baz

بنابراین اگر می‌خواهید کاملاً مطمئن شوید که یک پروفایل در /foo/bar و تمام زیرپوشه‌های عمیق‌تر آن کار می‌کند، کافی است از (|/|/*) استفاده کنید.

نام پروفایل شناسایی‌شده در متغیری به نام 'profile' در توابع شما در دسترس خواهد بود و نیازی به کار خاصی از سوی شما نیست.

در حین اجرای اولیه، سیستم یک پارامتر به نام $CHPWD_PROFILE ایجاد می‌کند که روی پروفایل فعال فعلی تنظیم شده است (مقدار پیش‌فرض "default" است). بدین ترتیب می‌توانید با قرار دادن کدی مانند زیر در ابتدای تابع خود، از اجرای کد برای پروفایلی که هم‌اکنون فعال است جلوگیری کنید:

function chpwd_profile_grml() {
    [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  ...
}

اگر می‌دانید که قرار است این کار را همیشه برای تک تک توابع پروفایل پوشه انجام دهید، می‌توانید سبک `re-execute' را روی `false' تنظیم کنید (که تنها برای سازگاری با گذشته پیش‌فرض آن `true' است):

zstyle ':chpwd:profiles:*' re-execute false

اگر از این ویژگی استفاده می‌کنید و نیاز دارید بدانید آیا در شل فعلی شما فعال است، روش‌های گوناگونی وجود دارد. در اینجا دو روش ساده آورده شده است:

الف) اگر دانستن فعال بودن قابلیت پروفایل‌ها در هنگام شروع zsh برای شما کافی است، می‌توانید از تکه کد زیر استفاده کنید:

(( ${+functions[chpwd_profiles]} )) && print "directory profiles active"

ب) اگر این کافی نیست و ترجیح می‌دهید هر زمان که پروفایلی تغییر می‌کند مطلع شوید، می‌توانید هر تابع پروفایلی را که می‌سازید به این صورت آغاز کنید:

function chpwd_profile_myprofilename() {
    [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
    print "chpwd(): Switching to profile: $profile"
  ...
}

این کار تضمین می‌کند که فقط در صورت تغییر پروفایل اعلان دریافت کنید، نه با هر بار تغییر پوشه. (برای جلوگیری از این امر، می‌توانید به جای بررسی در بالای تابع، سبک جدیدتر `re-execute' را همان‌طور که در بالا توضیح داده شد تنظیم کنید).

هنگامی که سیستم از یک پروفایل به پروفایل دیگر تغییر وضعیت می‌دهد، قبل از فراخوانی تابع پروفایل جدید، تابعی به نام "chpwd_leave_profile_<PREVIOUS-PROFILE-NAME>()" را اجرا می‌کند.

ابزارک accept-line ابزارکی است که هنگام فشردن کلید Enter/Return وارد عمل می‌شود. grmlzshrc از یک پوشش‌دهنده در اطراف این ابزارک استفاده می‌کند که قابلیت‌های جدیدی می‌افزاید.

این پوشش‌دهنده از طریق سبک‌ها پیکربندی می‌شود. یعنی دستوراتی صادر می‌کنید که شبیه این هستند:

zstyle 'context' style value

فضای نام زمینه‌ای که استفاده می‌کنیم 'acceptline' است. این یعنی زمینه واقعی دستورات شما به شکل ':acceptline:<subcontext>' خواهد بود.

که در آن <subcontext> یکی از موارد زیر است: default، normal، force، misc یا empty.

default

این مقداری است که زمینه با آن راه‌اندازی اولیه می‌شود. سبک‌های compwarnfmt و rehash در این زمینه جستجو می‌شوند.

normal

اگر اولین کلمه در خط فرمان یک دستور، نام مستعار، تابع، دستور توکار یا کلمه رزروشده باشد، در این زمینه قرار دارید.

force

این زمینه‌ای است که اگر پس از دریافت هشدار درباره وجود _completion برای یک دستور ناموجود وارد شده، مجدداً کلید Enter را فشار دهید، استفاده می‌شود.

empty

اگر خط فرمان خالی باشد یا تنها از فاصله‌های خالی تشکیل شده باشد، در این زمینه قرار دارید.

misc

اگر چیزی وارد کرده باشید که با هیچ‌یک از موارد بالا مطابقت نداشته باشد (مانند انتساب متغیرها)، این زمینه اعمال می‌شود.

nocompwarn

اگر این سبک را روی true تنظیم کنید، هشدار مربوط به دستورات ناموجودی که برای آن‌ها فایل تکمیل خودکار وجود دارد صادر نخواهد شد (پیش‌فرض: false).

compwarnfmt

پیامی که برای هشدار درباره مشکل _completion نمایش داده می‌شود (پیش‌فرض: '%c will not execute and completion %f exists.'). عبارت '%c' با نام دستور و '%f' با نام پرونده تکمیل خودکار جایگزین می‌شود.

rehash

در صورت تنظیم، در صورت لزوم هش‌بندی مجدد اجباری انجام می‌شود (پیش‌فرض در grmlzshrc برابر با true است).

actions

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

default_action

نام ابزارکی که پس از ابزارک‌های 'actions' فراخوانی می‌شود. به طور پیش‌فرض، این ابزارک '.accept-line' خواهد بود (که همان ابزارک توکار accept-line است).

call_default

در صورت true بودن در زمینه جاری، ابزارک مشخص‌شده در سبک 'default_action' را فراخوانی می‌کند (پیش‌فرض در تمام زمینه‌ها true است).

اکنون grmlzshrc سه تم اعلان خط فرمان سازگار با سامانه promptinit شل zsh ارائه می‌دهد. این سه تم با نام‌های grml، grml-large و grml-chroot شناخته می‌شوند.

به طور پیش‌فرض از grml استفاده می‌شود، مگر اینکه $GRMLPROMPT روی مقداری بزرگ‌تر از صفر تنظیم شده باشد که در این صورت از grml-large استفاده خواهد شد. در نهایت، اگر $GRML_CHROOT غیرخالی باشد، از grml-chroot استفاده می‌شود.

طبق معمول تم‌های promptinit، کاربر می‌تواند با استفاده از ابزار prompt به تم دیگری تغییر وضعیت دهد:

prompt grml-large

این دستور تم اعلان grml-large را فعال می‌کند.

تم‌ها بسیار قابل شخصی‌سازی هستند. منبع اصلی مستندات مربوط به شخصی‌سازی، رشته راهنمای تم اصلی grml است که با دستور زیر در دسترس است:

prompt -h grml

تم‌های دیگر نیز دارای رشته‌های راهنما هستند، اما راهنمای تم اصلی مرجع استاندارد برای همه آن‌هاست.

این قابلیت نیازمند نگارش 4.3.7 شل است. نگارش‌های قدیمی‌تر از اعلان کلاسیک grml به عنوان جایگزین استفاده خواهند کرد.

نکته‌ای برای علاقه‌مندان به شخصی‌سازی: اگر برای شخصی‌سازی از تم‌های اعلان استفاده نمی‌کنید، بلکه یا $PS1 (یا $PROMPT) را به صورت ایستا تنظیم می‌کنید یا یکی از این متغیرها را در تابع `precmd()' در zsh می‌سازید، اطمینان حاصل کنید که قبل از انجام این کار، سامانه تم اعلان zsh را خاموش کرده‌اید. یک نمونه شخصی‌سازی درست می‌تواند به شکل زیر باشد:

# خاموش کردن سامانه اعلان:
prompt off
# شخصی‌سازی اعلان توسط خودتان:
PS1='%~ %# '

همچنین می‌توانید با استفاده از تابع `grml_theme_add_token()' نشانه‌های اختصاصی خود را بیفزایید. برای دریافت مستندات دقیق درباره این فرآیند، تابع را بدون آرگومان فراخوانی کنید.

پیکربندی grmlzshrc خطوط hardstatus برنامه screen را روی دستور در حال اجرا یا در صورت بیکار بودن شل در اعلان، روی 'zsh' تنظیم می‌کند. اگر پوشه کاری جاری درون یک مخزن تحت کنترل نسخه باشد، وضعیت screen از طریق vcs_info در zsh روی 'zsh: <repository name>' تنظیم می‌شود.

اگر دستوراتی دارید که به اندازه کافی برایتان مهم هستند که در تاریخچه هر شلی گنجانده شوند، می‌توانید آن‌ها را در متغیر $GRML_IMPORTANT_COMMANDS (که برای سازگاری با گذشته پیش‌فرض آن ~/.important_commands است) قرار دهید تا از طریق ابزارک‌های معمول جستجوی تاریخچه در دسترس باشند.

پیکربندی grmlzshrc متغیرهای محیطی خاصی را تنظیم می‌کند که بر رفتار برنامه‌ها تأثیر می‌گذارند.

COLORTERM

روی "yes" تنظیم می‌شود. برخی برنامه‌ها برای آگاهی از ویژگی‌های ترمینالی که در آن اجرا می‌شوند این متغیر را می‌خوانند.

EDITOR

در صورتی که قبلاً تنظیم نشده باشد، ویرایشگر پیش‌فرض را تنظیم می‌کند. در صورت عدم دسترسی به vim(1)، به vi(1) برمی‌گردد.

LESS_TERMCAP_*

متغیرهای محیطی که پشتیبانی از رنگ را به less(1) برای مشاهده صفحات راهنما (man) اضافه می‌کنند. برای جزئیات به termcap(5) مراجعه کنید.

MAIL

پرونده صندوق پستی برای کاربر جاری در صورتی که قبلاً طور دیگری تنظیم نشده باشد، روی /var/mail/$USER تنظیم می‌شود.

PAGER

در صورت عدم تنظیم قبلی، less(1) را به عنوان صفحه‌بندی‌کننده (pager) پیش‌فرض تنظیم می‌کند.

جدا از گزینه‌های پیش‌فرض zsh، پیکربندی grmlzshrc گزینه‌هایی را تنظیم می‌کند که رفتار zsh را تغییر می‌دهند. گزینه‌هایی که تنظیمات پیش‌فرض Z-shell را تغییر می‌دهند با <grml> مشخص شده‌اند. اما توجه داشته باشید که پیش‌فرض‌های zsh بسته به حالت شبیه‌سازی آن (csh، ksh، sh یا zsh) متفاوت است. برای جزئیات به zshoptions(1) مراجعه کنید.

append_history

نشست‌های zsh که از grmlzshrc استفاده می‌کنند، فهرست تاریخچه خود را به جای جایگزینی، به انتهای پرونده تاریخچه ضمیمه می‌کنند. بدین ترتیب نشست‌های موازی zsh همگی ورودی‌های جدید را به ترتیب خروج به پرونده تاریخچه اضافه می‌کنند. این پرونده زمانی که تعداد خطوط آن 20٪ از مقدار مشخص‌شده در $SAVEHIST بیشتر شود، به صورت دوره‌ای هرس و بازنویسی می‌شود.

auto_cd <grml>

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

auto_pushd <grml>

باعث می‌شود cd پوشه قبلی را در پشته پوشه‌ها (directory stack) قرار دهد.

completeinword <grml>

اگر مکان‌نما داخل یک کلمه باشد، تکمیل خودکار به جای انتقال مکان‌نما به انتهای کلمه، از هر دو طرف انجام می‌شود.

extended_glob <grml>

نویسه‌های '#'، '~' و '^' را به عنوان نویسه‌های فعال الگوی تطبیق مسیر (globbing) در نظر می‌گیرد.

extended_history <grml>

برچسب زمانی شروع هر دستور (بر حسب ثانیه از مبدأ زمان) و مدت زمان اجرای آن (بر حسب ثانیه) را در پرونده تاریخچه ذخیره می‌کند.

hash_list_all

هر زمان که تکمیل خودکار دستور درخواست شود، ابتدا کل مسیر دستور هش می‌شود. این کار باعث کندتر شدن اولین تکمیل خودکار می‌شود.

histignorespace <grml>

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

longlistjobs <grml>

کارها (jobs) را به طور پیش‌فرض در قالب طولانی فهرست می‌کند.

nobeep <grml>

از بوق زدن هنگام بروز خطا در ویرایش خط فرمان zsh (zle) جلوگیری می‌کند.

noglobdots

نویسه‌های عام (wildcard) هرگز با نقطه ابتدایی '.' مطابقت داده نمی‌شوند.

nohup <grml>

هنگام خروج از شل، سیگنال قطعی ارتباط (HUP:1) را به کارهای در حال اجرا ارسال نمی‌کند.

nonomatch <grml>

اگر الگویی برای نام پرونده‌ها هیچ تطابقی نداشته باشد، خطایی چاپ نکرده و آن را بدون تغییر در فهرست آرگومان‌ها رها می‌کند. این امر همچنین در مورد گسترش اولیه `~' یا `=' صدق می‌کند.

notify

وضعیت کارهای پس‌زمینه را بلافاصله گزارش می‌دهد، به جای اینکه تا قبل از چاپ اعلان خط فرمان صبر کند.

pushd_ignore_dups <grml>

نسخه‌های تکراری از یک پوشه یکسان را در پشته پوشه‌ها قرار نمی‌دهد.

share_history <grml>

با افزودن هر خط به پرونده تاریخچه، بررسی می‌شود که آیا چیزی توسط شل دیگری نوشته شده است یا خیر و در صورت وجود، در تاریخچه شل فعلی نیز گنجانده می‌شود. با استفاده از تاریخچه به سبک !، دستورات سایر نشست‌ها در فهرست تاریخچه ظاهر نمی‌شوند مگر اینکه صراحتاً دستور "history" را تایپ کنید. این گزینه فقط برای نسخه‌های zsh >= 4 فعال است.

جدا از کلیدهای میانبر پیش‌فرض zsh، پیکربندی grmlzshrc با مجموعه‌ای از کلیدهای میانبر اختصاصی ارائه می‌شود. توجه داشته باشید که میانبرهایی مانند ESC-e را می‌توان به صورت ALT-e نیز در صفحه‌کلیدهای رایانه شخصی تایپ کرد.

ESC-e

ویرایش بافر دستور جاری در ویرایشگر مورد علاقه شما.

ESC-v

حذف کلمه سمت چپ مکان‌نما؛ در نظر گرفتن '/' به عنوان جداکننده کلمه اضافی.

CTRL-x-1

پرش به بلافاصله بعد از کلمه اول.

CTRL-x-M()

ایجاد پوشه زیر مکان‌نما یا ناحیه انتخاب‌شده. برای انتخاب یک ناحیه، ctrl-@ را فشار داده و از مکان‌نما استفاده کنید. مورد کاربرد: دستور "mv abc ~/testa/testb/testc/" را تایپ کرده و به یاد می‌آورید که پوشه هنوز وجود ندارد → فشردن CTRL-xM مشکل را حل می‌کند.

CTRL-x-p

جستجوی آخرین رخداد رشته قبل از مکان‌نما در تاریخچه دستورات.

CTRL-x-z

نمایش راهنمای کلیدهای میانبر و ویرایشگر خط zsh. برای پیمایش در محتوا به صورت متوالی فشار دهید.

CTRL-z

کاری را که با CTRL-z تعلیق شده است به پیش‌زمینه بازمی‌گرداند.

برای شخصی‌سازی کلیدهای میانبر، می‌توانید به سادگی از ابزار bindkey در zsh استفاده کنید. با این حال، اگر قصد دارید خودتان از قلاب‌های `zle-line-init' یا `zle-line-finish' استفاده کنید، اطمینان حاصل کنید که توابع زیر را در قلاب مربوطه فراخوانی می‌کنید:

•zle-line-init: zle-smkx
•zle-line-finish: zle-rmkx

این امر الزامی است تا کلیدهای میانبر تنظیم‌شده توسط grmlzshrc کار کنند. دلیل این امر قرار دادن ترمینال در حالت مناسب در حین اجرای ویرایشگر خط zsh (zle) است. این کار امکان پرس‌وجو از terminfo درباره دنباله‌های گریز برای کلیدهای ویژه را فراهم کرده و بخش کلیدهای میانبر را ساده و تعمیم‌پذیر می‌کند.

پیکربندی grmlzshrc با طیف گسترده‌ای از توابع تعریف‌شده شل ارائه می‌شود تا کار کاربر را آسان‌تر سازد.

accessed()

پرونده‌های موجود در پوشه جاری را که در N روز گذشته مورد دسترسی قرار گرفته‌اند فهرست می‌کند. N یک عدد صحیح است که به عنوان اولین و تنها آرگومان داده می‌شود. در صورت عدم تعیین آرگومان، N برابر با 1 در نظر گرفته می‌شود.

any()

فرایندهای منطبق با الگوی ارائه‌شده را فهرست می‌کند.

bk()

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

cdt()

یک پوشه موقت با استفاده از mktemp ایجاد کرده و پوشه کاری جاری را به آن تغییر می‌دهد. می‌توانید به صورت اختیاری یک پیشوند ارائه دهید که مثلاً منجر به /tmp/PREFIX.XXXXXXX می‌شود.

changed()

پرونده‌های موجود در پوشه جاری را که در N روز گذشته تغییر یافته‌اند فهرست می‌کند. N یک عدد صحیح است که به عنوان اولین و تنها آرگومان ارسال می‌شود. در صورت عدم تعیین آرگومان، N برابر با 1 در نظر گرفته می‌شود.

check_com()

اگر دستور داده‌شده به عنوان برنامه، تابع، نام مستعار، دستور توکار یا کلمه رزروشده وجود داشته باشد، مقدار درست (true) برمی‌گرداند. با ارائه گزینه -c، تنها در صورتی true برمی‌گرداند که دستور یک برنامه باشد.

cl()

پوشه جاری را به پوشه ارائه‌شده توسط آرگومان تغییر داده و پرونده‌های درون آن را، شامل پرونده‌هایی که با "." شروع می‌شوند، فهرست می‌کند.

dchange()

گزارش تغییرات (changelog) بسته داده‌شده را در $PAGER نمایش می‌دهد.

dcopyright()

حق نشر (copyright) بسته داده‌شده را در $PAGER نمایش می‌دهد.

debian2hd()

اگر کاربر بخواهد دبیان را روی دیسک سخت نصب کند، به او پیشنهاد می‌دهد از grml-debootstrap استفاده کند.

deswap()

روشی برگرفته از $LINUX-KERNELSOURCE/Documentation/power/swsusp.txt. این تابع در زمانی که سیستم به شدت از swap استفاده می‌کند، پاسخگویی تعاملی را پس از تعلیق (suspend) بازمی‌گرداند.

dnews()

پرونده NEWS بسته داده‌شده را در $PAGER نمایش می‌دهد.

dreadme()

پرونده README بسته داده‌شده را در $PAGER نمایش می‌دهد.

edalias()

ویرایش نام مستعار (alias) داده‌شده.

edfunc()

ویرایش تابع شل داده‌شده.

freload()

یک تابع شل بارگذاری‌خودکار (autoloadable) را مجدداً بارگذاری می‌کند (به autoload در zshbuiltins(1) مراجعه کنید).

grml_status_features()

خلاصه‌ای از قابلیت‌هایی را که پیکربندی گرمل در تلاش برای بارگذاری آن‌هاست چاپ می‌کند. نتیجه بارگذاری یک قابلیت ثبت می‌شود. این تابع امکان پرس‌وجوی نتیجه را می‌دهد. تابع یک آرگومان می‌گیرد: "-h" یا "--help" برای نمایش راهنما، "" برای نمایش فهرست قابلیت‌های با موفقیت بارگذاری‌شده، "-" برای فهرستی از تمام قابلیت‌هایی که در بارگذاری شکست خورده‌اند، "+-" برای نمایش فهرستی از تمام قابلیت‌ها به همراه وضعیتشان. هر کلمه دیگری به عنوان یک قابلیت در نظر گرفته شده و وضعیت آن چاپ می‌شود. حالت پیش‌فرض "+-" است.

grml_vcs_info_toggle_colour()

تغییر وضعیت بین قالب‌های رنگی و بدون رنگ در پیکربندی vcs_info. این تابع برای اعلان‌هایی مفید است که کدهای رنگی در گسترش قالب vcs_info آن‌ها اختلال ایجاد می‌کند (مانند اعلان `clint` و هر اعلانی که از %v برای گسترش محتوای `$vcs_into_msg_0_` استفاده می‌کند). اگر از قالب‌های سفارشی vcs_info استفاده می‌کنید، نباید از این تابع استفاده کنید، زیرا تمام قالب‌ها را دوباره به مقادیر پیش‌فرض گرمل (رنگی یا ساده) بازمی‌گرداند.

hgdi()

استفاده از GNU diff با گزینه‌های -ubwd برای مرکوریال (Mercurial).

hgstat()

آمار تغییرات (diffstat) را بین نگارش ارائه‌شده به عنوان آرگومان و سرشاخه (tip) نمایش می‌دهد (نبود آرگومان به معنای آخرین نگارش است).

hidiff()

خروجی diff برجسته‌شده با رنگ تولید می‌کند؛ به highstring(1) نیاز دارد.

isdarwin()

در صورت اجرا روی داروین (Darwin/macOS) مقدار true و در غیر این صورت false برمی‌گرداند.

isfreebsd()

در صورت اجرا روی FreeBSD مقدار true و در غیر این صورت false برمی‌گرداند.

isgrml()

در صورت اجرا روی سیستم گرمل مقدار true و در غیر این صورت false برمی‌گرداند.

isgrmlcd()

در صورت اجرا روی سیستم زنده گرمل از روی دیسک زنده (Live CD) مقدار true و در غیر این صورت false برمی‌گرداند.

isgrmlsmall()

در صورت اجرا روی grml-small مقدار true و در غیر این صورت false برمی‌گرداند.

islinux()

در صورت اجرا روی لینوکس مقدار true و در غیر این صورت false برمی‌گرداند.

isopenbsd()

در صورت اجرا روی OpenBSD مقدار true و در غیر این صورت false برمی‌گرداند.

isutfenv()

در صورت اجرا در یک محیط UTF مقدار true و در غیر این صورت false برمی‌گرداند.

mkcd()

پوشه را به همراه پوشه‌های والد (در صورت لزوم) ایجاد کرده و سپس پوشه کاری جاری را به آن تغییر می‌دهد.

modified()

پرونده‌های موجود در پوشه جاری را که در N روز گذشته دستکاری شده‌اند فهرست می‌کند. N یک عدد صحیح است که به عنوان اولین و تنها آرگومان ارسال می‌شود. در صورت عدم تعیین آرگومان، N برابر با 1 در نظر گرفته می‌شود.

nt()

یک تابع کمکی برای واجد شرایط گلوبینگ "e" جهت فهرست کردن تمام پرونده‌های جدیدتر از یک پرونده مرجع. نمونه‌های کاربرد:
% NTREF=/reference/file
% ls -l *(e:nt:)
% # به‌صورت درخط:
% ls -l *(e:'nt /reference/file':)

profile()

یک دستور را در zsh در حالی که پروفایل‌سازی فعال است اجرا می‌کند (متغیر راه‌اندازی ZSH_PROFILE_RC در بالا را ببینید).

salias()

در صورتی که $EUID صفر نباشد، یک نام مستعار ایجاد می‌کند که sudo به ابتدای آن اضافه شده است. برای جزئیات دستور "salias -h" را اجرا کنید.

simple-extract()

تلاش می‌کند پرونده‌های ارائه‌شده را با برنامه‌های مناسب از حالت فشرده/بسته‌بندی خارج کند. اگر یک نشانی اینترنتی (URI) که با https، http یا ftp شروع می‌شود ارائه گردد، simple-extract تلاش می‌کند پرونده را بارگیری کرده و سپس آن را از حالت فشرده خارج سازد. انتخاب برنامه بر اساس پسوند نام پرونده انجام می‌شود. simple-extract آرشیو اصلی را حذف نخواهد کرد (حتی در فشرده‌سازی‌های .gz، .bz2 یا .xz) مگر اینکه از گزینه '-d' استفاده کنید.

sll()

جزئیات پیوندهای نمادین داده‌شده به عنوان آرگومان را چاپ می‌کند.

ssl-cert-fingerprints

خلاصه پیام‌های SHA512، SHA256، SHA1 و MD5 یک گواهی x509 را چاپ می‌کند. اولین و تنها پارامتر باید یک پرونده حاوی گواهی باشد. اگر می‌خواهید گواهی را از طریق لوله‌کشی (pipe) به این توابع بفرستید، از /dev/stdin به عنوان پرونده استفاده کنید.

ssl-cert-info

تمام اطلاعات یک گواهی x509 از جمله خلاصه‌های پیام SHA512، SHA256، SHA1 و MD5 را چاپ می‌کند. اولین و تنها پارامتر باید پرونده‌ای حاوی گواهی باشد. اگر می‌خواهید گواهی را به این تابع پایپ کنید از /dev/stdin به عنوان پرونده استفاده کنید.

ssl-cert-sha512(), ssl-cert-sha256(), ssl-cert-sha1(), ssl-cert-md5()

خلاصه پیام مربوطه (SHA512، SHA256، SHA1 یا MD5) یک گواهی x509 را چاپ می‌کند. اولین و تنها پارامتر باید پرونده حاوی گواهی باشد. در صورت تمایل به ارسال گواهی از طریق پایپ از /dev/stdin استفاده کنید.

Start(), Restart(), Stop(), Force-Reload(), Reload()

توابعی برای کنترل دیمن‌ها و سرویس‌ها. نمونه کاربرد:
% Restart ssh

trans()

یک کلمه را از آلمانی به انگلیسی (-D) یا برعکس (-E) ترجمه می‌کند.

uchange()

گزارش تغییرات بالادستی (upstream changelog) یک بسته مشخص را در $PAGER نمایش می‌دهد.

vim()

پوشش‌دهنده‌ای برای vim(1). تلاش می‌کند عنوان پنجره را تنظیم کند و متغیر محیطی VIM_OPTIONS را در خط فرمان به vim ارسال کند. بدین ترتیب کاربر می‌تواند گزینه‌های خط فرمانی را که همیشه می‌خواهد، در .zshrc.local خود تعریف کند.

whatwhen()

تاریخچه را برای یک الگوی معین جستجو کرده و نتایج را بر اساس تاریخ فهرست می‌کند. اولین آرگومان الگوی جستجو است. آرگومان‌های دوم و سوم اختیاری هستند و محدوده جستجو را مشخص می‌کنند (پیش‌فرض: -100).

xcat()

تلاش می‌کند پرونده(های) داده‌شده به عنوان پارامتر را با cat(1) نمایش دهد. همیشه مقدار true بازمی‌گرداند.

xsource()

تلاش می‌کند پرونده(های) داده‌شده را درون‌ریزی و اجرا (source) کند. همیشه مقدار true بازمی‌گرداند. برای شرح دقیق دستور source به zshbuiltins(1) مراجعه کنید.

xtrename()

عنوان پنجره xterm را از درون screen(1) تغییر می‌دهد. برای دیدن جزئیات بدون آرگومان اجرا کنید.

zrcautoload()

پوشش‌دهنده‌ای در اطراف دستور توکار autoload. تعاریف توابع را از پرونده ارائه‌شده بارگذاری می‌کند. پرونده را در $fpath جستجو می‌کند.

zrclocal()

پرونده‌های /etc/zsh/zshrc.local و ${HOME}/.zshrc.local را سورس و اجرا می‌کند. این‌ها پرونده‌هایی هستند که اصلاحات شخصی باید در آن‌ها قرار گیرند. همچنین به zshbuiltins(1) برای شرح دستور source مراجعه کنید.

پیکربندی grmlzshrc با طیف گسترده‌ای از نام‌های مستعار از پیش تعریف‌شده برای آسایش کاربر ارائه می‌شود. چند نام مستعار (مانند موارد مربوط به grep یا ls) از گزینه --color=auto برای خروجی رنگی استفاده می‌کنند. این گزینه بخشی از پیاده‌سازی‌های GNU از این ابزارهاست و تنها در صورت شناسایی چنین پیاده‌سازی استفاده خواهد شد.

acp (apt-cache policy)

بدون آرگومان، اولویت‌های هر منبع را چاپ می‌کند. در صورت ارائه نام یک بسته، اطلاعات دقیقی درباره اولویت انتخاب آن بسته نمایش می‌دهد.

acs (apt search)

فهرست بسته‌های دبیان را برای عبارت منظم ارائه‌شده جستجو می‌کند. جستجو شامل نام و توضیحات بسته‌ها است. نام و شرح کوتاه بسته‌های منطبق را چاپ می‌کند.

acsh (apt show)

رکوردهای بسته‌های ارائه‌شده به عنوان آرگومان را نمایش می‌دهد.

adg (apt dist-upgrade)

ارتقای تمامی بسته‌های نصب‌شده را انجام می‌دهد. همچنین تلاش می‌کند تغییرات وابستگی‌ها با نگارش‌های جدید بسته‌ها را به طور خودکار مدیریت کند. از آنجا که این کار ممکن است وضعیت نصب بسته‌ها را تغییر دهد (یا حتی بسته‌هایی را حذف کند)، استفاده از dist-upgrade می‌تواند بالقوه خطرناک باشد؛ در صورت نیاز با sudo اجرا می‌شود.

ag (apt upgrade)

جدیدترین نگارش‌های تمام بسته‌های نصب‌شده فعلی روی سیستم را بارگیری و نصب می‌کند. تحت هیچ شرایطی بسته‌های فعلی حذف نمی‌شوند و بسته‌های نصب‌نشده دریافت و نصب نمی‌گردند. نگارش‌های جدیدی از بسته‌ها که بدون تغییر وضعیت نصب بسته دیگر قابل ارتقا نیستند، در همان نگارش فعلی باقی می‌مانند. ابتدا باید یک به‌روزرسانی شاخص‌ها انجام شود (au در پایین را ببینید)؛ در صورت نیاز با sudo اجرا می‌شود.

agi (apt install)

بسته‌های مشخص‌شده در خط فرمان را بارگیری و نصب یا ارتقا می‌دهد. اگر یک خط تیره (-) به انتهای نام بسته اضافه شود، بسته در صورت نصب بودن حذف خواهد شد. به طور مشابه، علامت مثبت (+) می‌تواند برای تعیین بسته‌ای جهت نصب استفاده شود. این امر برای لغو تصمیمات سامانه حل تعارض apt مفید است. یک نگارش خاص از بسته را می‌توان با قرار دادن علامت مساوی (=) به دنبال نام بسته برای نصب انتخاب کرد. همچنین می‌توان توزیع خاصی را با درج اسلش (/) و نام آرشیو (stable، testing، unstable) انتخاب کرد. در صورت غیرصفر بودن شناسه کاربر با sudo فراخوانی می‌شود.

ati (aptitude install)

ابزار aptitude یک مدیر بسته مبتنی بر ترمینال با حالتی شبیه به apt است؛ در صورت نیاز با sudo فراخوانی می‌شود.

au (apt update)

پرونده‌های نمایه بسته‌ها را از منابع بازهمگام‌سازی می‌کند. نمایه‌ها از مکان‌های مشخص‌شده در /etc/apt/sources.list دریافت می‌شوند. همیشه باید قبل از upgrade یا dist-upgrade اجرا شود؛ در صورت لزوم با sudo فراخوانی می‌گردد.

afs (apt-file search)

ابزار apt-file یک ابزار خط فرمان برای جستجوی پرونده‌های موجود در بسته‌های سیستم مدیریت بسته APT است. می‌توانید جستجو کنید که یک پرونده در کدام بسته قرار دارد یا محتوای یک بسته را بدون نصب یا دریافت آن فهرست کنید.

da (du -sch)

میزان استفاده از دیسک را برای آرگومان‌ها به همراه جمع کل در قالبی خوانا برای انسان چاپ می‌کند.

dbp (dpkg-buildpackage)

بسته‌های دودویی یا سورس را از روی کد منبع می‌سازد (نگاه کنید به: dpkg-buildpackage(1)).

debs-by-size (grep-status -FStatus -sInstalled-Size,Package -n "install ok installed" | paste -sd " \n" | sort -rn)

بسته‌های نصب‌شده را بر اساس اندازه (نزولی) مرتب و چاپ می‌کند.

dir (ls -lSrah)

پرونده‌ها (شامل پرونده‌های پنهان) را بر اساس اندازه (بزرگ‌ترین در انتها) در قالبی طولانی و خوانا فهرست می‌کند.

ge (grep-excuses)

پرونده‌های excuses شاخه آزمایشی (testing) را برای یک نگه‌دارنده خاص جستجو می‌کند (نگاه کنید به: grep-excuses(1)).

grep (grep --color=auto)

خروجی grep را در صورت پشتیبانی ترمینال با رنگ‌های زیبا نمایش می‌دهد.

grml-version (cat /etc/grml_version)

نگارش سیستم در حال اجرای گرمل را چاپ می‌کند.

insecscp (scp -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null")

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

insecssh (ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null")

اجرای ssh با امکان حمله مرد میانی (برای توضیح به insecscp در بالا مراجعه کنید).

help-zshglob (H-Glob())

تابع H-Glob() را برای گسترش یا توضیح نویسه‌های عام (wildcards) اجرا می‌کند.

l (ls -l --color=auto)

پرونده‌ها را در قالب طولانی به همراه نشانگر نوع پرونده که به انتهای نام پرونده چسبیده است فهرست می‌کند. در صورت پشتیبانی ترمینال، با خروجی رنگی همراه است.

la (ls -la --color=auto)

پرونده‌ها را در قالب خروجی رنگی طولانی فهرست می‌کند، از جمله پرونده‌هایی که با "." شروع می‌شوند.

lad (ls -d .*(/))

پوشه‌های پنهان (نه محتویات آن‌ها) را در پوشه جاری فهرست می‌کند.

lh (ls -hAl --color=auto)

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

ll (ls -l --color=auto)

پرونده‌ها را در قالب طولانی رنگی فهرست می‌کند.

llog ($PAGER /var/log/syslog)

گزارش‌های syslog را در صفحه‌بندی‌کننده باز می‌کند.

ls (ls -C --color=auto)

پوشه را فهرست می‌کند؛ ورودی‌ها به صورت ستونی فهرست شده و نشانگری برای نوع پرونده به انتهای هر نام پرونده اضافه می‌شود. همچنین در صورت پشتیبانی ترمینال خروجی رنگی است.

lsa (ls -a .*(.))

پرونده‌های پنهان (dot files) را در پوشه کاری جاری فهرست می‌کند.

lsbig (ls -flh *(.OL[1,10]))

ده پرونده بزرگ‌تر را نمایش می‌دهد (قالب خروجی طولانی و خوانا).

lsd (ls -d *(/))

پوشه‌ها را نمایش می‌دهد.

lse (ls -d *(/^F))

پوشه‌های خالی را نمایش می‌دهد.

lsl (ls -l *(@))

پیوندهای نمادین را در پوشه جاری فهرست می‌کند.

lsnew (ls -rl *(D.om[1,10]))

ده پرونده جدیدتر را نمایش می‌دهد (قالب خروجی طولانی).

lsnewdir (ls -rthdl *(/om[1,10]) .*(D/om[1,10]))

ده پوشه جدیدتر و ده پوشه پنهان جدیدتر را نمایش می‌دهد.

lsold (ls -rtlh *(D.om[1,10]))

ده پرونده قدیمی‌تر را نمایش می‌دهد (قالب خروجی طولانی).

lsolddir (ls -rthdl *(/Om[1,10]) .*(D/Om[1,10]))

ده پوشه قدیمی‌تر و ده پوشه پنهان قدیمی‌تر را نمایش می‌دهد.

lss (ls -l *(s,S,t))

پرونده‌هایی را در پوشه جاری فهرست می‌کند که بیت‌های setuid، setgid یا sticky bit آن‌ها تنظیم شده است.

lssmall (ls -Srl *(.oL[1,10]))

ده پرونده کوچک‌تر را نمایش می‌دهد (قالب خروجی طولانی).

lsw (ls -ld *(R,W,X.^ND/))

تمام پرونده‌هایی را که برای همه قابل خواندن و/یا قابل نوشتن و/یا قابل اجرا هستند نمایش می‌دهد (قالب طولانی).

lsx (ls -l *(*))

تنها پرونده‌های قابل اجرا را فهرست می‌کند.

mdstat (cat /proc/mdstat)

تمام دستگاه‌های md فعال (یعنی رید نرم‌افزاری لینوکس) را با اطلاعاتی درباره آن‌ها فهرست می‌کند.

mq (hg -R $(readlink -f $(hg root)/.hg/patches))

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

rmcdir ('cd ..; rmdir $OLDPWD || cd $OLDPWD)

حذف پوشه کاری جاری با rmdir.

screen (screen -c file)

مگر در صورت وجود $HOME/.screenrc، یک نشست screen با /etc/grml/screenrc به عنوان پرونده پیکربندی آغاز می‌کند. اگر تشخیص داده شود که نگارش screen قدیمی‌تر است، نشست با /etc/grml/screenrc_v4 آغاز می‌شود.

su (sudo su)

اگر کاربر در حال اجرای سامانه زنده گرمل باشد، در صورت درخواست شل ریشه (root)، هیچ گذرواژه‌ای درخواست نمی‌کند.

tlog (tail --follow=name /var/log/syslog)

گزارش‌های syslog را به طور مداوم چاپ می‌کند (نگاه کنید به tail(1)).

up (aptitude update ; aptitude safe-upgrade)

به‌روزرسانی نمایه‌ها و سپس ارتقای امن سیستم را با استفاده از aptitude انجام می‌دهد؛ در صورت نیاز با sudo اجرا می‌شود. au و ag در بالا را ببینید.

url-quote (autoload -U url-quote-magic ; zle -N self-insert url-quote-magic)

پس از فراخوانی، نویسه‌های نشانی‌های وب (URLs) تایپ‌شده در صورت لزوم به صورت خودکار اسکیپ می‌شوند تا از تداخل با شل محافظت شوند.

$(uname -r)-reboot (kexec -l --initrd=/boot/initrd.img-"$(uname -r)" --command-line=\"$(cat /proc/cmdline)\" /boot/vmlinuz-"$(uname -r)")

راه‌اندازی مجدد با kexec(8) که زمان راه‌اندازی را با صرف‌نظر از راه‌اندازی اولیه سخت‌افزاری BIOS/firmware کاهش می‌دهد.

... (cd ../../)

تغییر پوشه جاری به دو سطح بالاتر.

مجموعه‌ای از پرونده‌ها که در صورت وجود، می‌توانند برای سفارشی‌سازی رفتار grmlzshrc استفاده شوند.

.zshrc.pre در همان ابتدای grmlzshrc درون‌ریزی و اجرا (source) می‌شود. از جمله کاربردهای آن تغییر دائمی متغیرهای راه‌اندازی grmlzshrc است (بالا را ببینید):

# نمایش وضعیت باتری در RPROMPT
GRML_DISPLAY_BATTERY=1
# بارگذاری کامل تنظیمات حتی برای کاربر ریشه
GRML_ALWAYS_LOAD_ALL=1

.zshrc.local درست پیش از پایان بارگذاری grmlzshrc سورس می‌شود. یک نگارش سراسری از این پرونده (/etc/zsh/zshrc.local) وجود دارد که قبل از پرونده اختصاصی کاربر اجرا می‌شود.

.zdirs فهرست پوشه‌ها برای پشته پوشه‌های ماندگار (بالا را ببینید).

.important_commands فهرست دستورات مورد استفاده در تاریخچه ماندگار (بالا را ببینید).

روی سامانه‌های دبیان ( http://www.debian.org) - و احتمالاً اوبونتو ( http://www.ubuntu.com) و سامانه‌های مشابه - دریافت grmlzshrc از طریق مخازن deb. گرمل بسیار آسان است.

روی سامانه‌های غیر دبیانی این یک گزینه نیست، اما همه چیز از دست نرفته است:

% wget -O .zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc

اگر مایلید پرونده‌های توابع مجزا را نیز دریافت کنید (که می‌توانید در $fpath خود قرار دهید)، می‌توانید آن‌ها را در پیوند زیر مرور و بارگیری کنید:

http://git.grml.org/?p=grml-etc-core.git;a=tree;f=usr_share_grml/zsh;hb=HEAD

اگر کد grmlzshrc را بخوانید متوجه کامنت‌های عجیبی در آن می‌شوید. این کامنت‌ها با هدفی مشخص قرار داده شده‌اند. کارت مرجع zsh گرمل (zsh-refcard) به صورت خودکار از محتوای پرونده پیکربندی واقعی تولید می‌شود. با این حال، به مقداری اطلاعات اضافه درباره اینکه کدام کامنت‌ها و خطوط کد (و با چه هدفی) در نظر گرفته شوند نیاز است.

معنی هر یک از این موارد به شرح زیر است:

فهرست برچسب‌ها (انواع کامنت) مورد استفاده:

#a# خط بعدی شامل یک نام مستعار مهم است که باید در grml-zsh-refcard گنجانده شود. (برچسب جای‌گذاری: @@INSERT-aliases@@)

#f# خط بعدی شامل شروع یک تابع مهم است. (برچسب جای‌گذاری: @@INSERT-functions@@)

#v# خط بعدی شامل یک متغیر مهم است. (برچسب جای‌گذاری: @@INSERT-variables@@)

#k# خط بعدی شامل یک کلید میانبر مهم است. (برچسب جای‌گذاری: @@INSERT-keybindings@@)

#d# تولید فهرست پوشه‌های هش‌شده: start: نشان‌دهنده شروع فهرستی از تعاریف 'hash -d' است. end: نشان‌دهنده پایان آن است. (برچسب جای‌گذاری: @@INSERT-hasheddirs@@)

#A# تولید فهرست گسترش کوته‌نوشت‌ها: start: نشان‌دهنده شروع کوته‌نوشت‌ها است. end: پایان آن‌ها را نشان می‌دهد.

خطوط درون این بخش که با '#d .*' خاتمه می‌یابند، مستندات اضافی برای گنجاندن در کارت مرجع را فراهم می‌کنند. (برچسب جای‌گذاری: @@INSERT-abbrev@@)

#m# این برچسب امکان تولید دستی ورودی‌های کارت مرجع را برای خطوط کدی فراهم می‌کند که تجزیه (parse) آن‌ها دشوار یا غیرممکن است.

مثال:

#m# k ESC-h Call the run-help function

این کار ورودی جدیدی را به جدول کلیدهای میانبر برای 'ESC-h' با کامنت ارائه‌شده اضافه می‌کند.

بنابراین ساختار به شکل زیر است:

#m# <section> <argument> <comment>

#o# این برچسب امکان درج ورودی‌ها را در جدول درهم‌سازی 'other' می‌دهد. به طور کلی نباید استفاده شود. برای مواردی است که نمی‌توان به روش دیگری به راحتی انجام داد. (برچسب جای‌گذاری: @@INSERT-other-foobar@@)

تمام این برچسب‌ها (به جز m و o) دو آرگومان می‌گیرند؛ اولی درون برچسب و دومی پس از برچسب:

#<tag><section># <comment>

که در آن <section> در واقع تنها یک عدد است که توسط آرایه @secmap در بالای 'genrefcard.pl' تعریف شده است. دلیل استفاده از اعداد به جای نام‌ها این است که برای خواننده، تفاوت چندانی با یک کامنت معمولی نداشته باشد. برای zsh این در واقع یک کامنت معمولی است. اعداد دارای معانی زیر هستند:

0 default (پیش‌فرض)

1 system (سیستم)

2 user (کاربر)

3 debian (دبیان)

4 search (جستجو)

5 shortcuts (میانبرها)

6 services (سرویس‌ها)

بنابراین، دستور زیر یک ورودی به جدول 'functions' در بخش 'system' با یک کامنت توصیفی اضافه می‌کند:

#f1# Edit an alias via zle
edalias() {

سپس در برچسب جایگزین @@INSERT-aliases-system@@ که در 'grml-zsh-refcard.tex.in' وجود دارد ظاهر خواهد شد. اگر شماره بخش حذف شود، بخش 'default' فرض می‌شود. علاوه بر این، در 'grml-zsh-refcard.tex.in' عبارت @@INSERT-aliases@@ دقیقاً معادل @@INSERT-aliases-default@@ است. اگر برای مثال فهرستی از تمام نام‌های مستعار را می‌خواهید، از @@INSERT-aliases-all@@ استفاده کنید.

اگر می‌خواهید به بهبود پیکربندی zsh گرمل کمک کنید، مخزن grml-etc-core را از git.grml.org کلون کنید:

% git clone git://git.grml.org/grml-etc-core.git

تغییرات خود را اعمال و کامیت کنید؛ با استفاده از 'git format-patch' مجموعه‌ای از وصله‌ها را ایجاد کرده و آن‌ها را از طریق 'git send-email' به نشانی زیر ارسال کنید:

grml-etc-core@grml.org

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

این صفحه راهنما، کتابچه راهنمای مرجع برای grmlzshrc است.

این بدان معناست که بر خلاف کارت مرجع موجود، باید تمام جنبه‌های این پیکربندی را مستند کند.

این راهنما در حال حاضر کامل نیست. اگر می‌خواهید در بهبود آن کمک کنید، از صفحات زیر دیدن فرمایید:

http://wiki.grml.org/doku.php?id=zshrcmanual

http://lists.mur.at/pipermail/grml/2009-August/004609.html

از مشارکت‌ها به گرمی استقبال می‌شود.

این صفحه راهنما توسط فرانک تربک <mailto:ft@grml.org>، یورگ وولکه <mailto:joewoe@fsmail.de>، موریس مک‌کارتی <mailto:manselton@googlemail.com> و اکسل بکرت <mailto:abe@deuxchevaux.org> نوشته شده است.

حق نشر (c) 2009-2025 پروژه Grml https://grml.org

این صفحه راهنما تحت شرایط پروانه عمومی همگانی گنو (GPL) نگارش ۲ منتشر شده است.

بیشتر بخش‌های zshrc گرمل نیز تحت شرایط GPL v2 منتشر شده‌اند، به جز accept-line() که تحت همان شرایط خود zsh (که شبیه به BSD است) توزیع می‌شود.

2026-09-02