| GDBMTOOL(1) | مرجع کاربری GDBM | GDBMTOOL(1) |
نام (NAME)
gdbmtool - بررسی و تغییر پایگاهداده GDBM
خلاصه دستور (SYNOPSIS)
gdbmtool [-lmNnqrs] [-b SIZE] [-c SIZE] [-f FILE] [--block-size=SIZE] [--cache-size=SIZE] [--file FILE] [--newdb] [--no-lock] [--no-mmap] [--norc] [--quiet] [--read-only] [--synchronize] [DBFILE] [COMMAND [; COMMAND...]]
gdbmtool [-Vh] [--help] [--usage] [--version]
توضیحات (DESCRIPTION)
ابزار gdbmtool به شما امکان میدهد یک پایگاهداده موجود GDBM را مشاهده و ویرایش کرده یا یک پایگاهداده جدید ایجاد کنید.
آرگومان DBFILE نام پایگاهداده جهت باز کردن را مشخص میکند. اگر مشخص نشود، نام پیشفرض junk.gdbm به جای آن استفاده میشود. اگر پایگاهداده مشخصشده وجود نداشته باشد، ایجاد خواهد شد. یک پایگاهداده موجود را میتوان با استفاده از گزینه --newdb پاکسازی کرد (یعنی تمام رکوردها از آن حذف شوند؛ به ادامه مراجعه کنید).
مگر اینکه گزینه -N (--norc) داده شده باشد، پس از راهاندازی، gdbmtool ابتدا به دنبال فایلی به نام .gdbmtoolrc در دایرکتوری کاری جاری میگردد، و اگر آنجا پیدا نشد، در دایرکتوری خانگی کاربری که برنامه را آغاز کرده جستجو میکند. در صورت یافت شدن، این فایل خوانده شده و به عنوان فهرستی از دستورات gdbmtool تفسیر میشود.
سپس gdbmtool یک حلقه را آغاز میکند که در آن دستورات را از ورودی استاندارد میخواند، آنها را اجرا کرده و نتایج را در خروجی استاندارد چاپ میکند. اگر ورودی استاندارد به یک کنسول متصل باشد، برنامه در حالت تعاملی اجرا میشود.
برنامه زمانی خاتمه مییابد که دستور quit داده شود، یا پایان فایل (EOF) در ورودی استاندارد آن تشخیص داده شود.
دستورات را میتوان در خط فرمان نیز پس از آرگومان DBFILE مشخص کرد. در این حالت، آنها بدون تلاش برای خواندن دستورات بیشتر از ورودی استاندارد تفسیر خواهند شد.
اگر چندین دستور مشخص شوند، باید با نقطه ویرگول (semicolons) از هم جدا شوند (بهدرستی اسکیپ یا نقلقول شوند تا از تفسیر آنها توسط پوسته جلوگیری گردد).
یک دستور gdbmtool شامل یک فعل دستوری است که بهصورت اختیاری یک یا چند آرگومان به دنبال آن میآید و با هر مقدار فاصله خالی از هم جدا میشوند. فعل دستوری را میتوان بهصورت کامل یا به شکل مخفف وارد کرد، مشروط بر اینکه آن مخفف با هیچ فعل دیگری تداخل نداشته باشد.
هر دنبالهای از نویسههای غیرفاصله که پس از فعل دستوری ظاهر شود یک آرگومان را تشکیل میدهد. اگر آرگومان حاوی فاصله خالی یا نویسههای غیرقابل چاپ باشد، باید در نقلقول دوگانه (double quotes) قرار گیرد. در داخل نقلقول دوگانه، توالیهای گریز معمول پشتیبانی میشوند، همانطور که در جدول زیر نشان داده شده است:
Escape Expansion \a نویسه زنگ شنیداری (ASCII 7) \b نویسه پسبر (ASCII 8) \f نویسه برگه جدید (ASCII 12) \n نویسه خط جدید (ASCII 10) \r نویسه بازگشت به ابتدای سطر (ASCII 13) \t نویسه تب افقی (ASCII 9) \v نویسه تب عمودی (ASCII 11) \\ اسلش تکی \" نقلقول دوگانه
علاوه بر این، یک بکاسلش بلافاصله پیش از نویسه پایان خط، آن نویسه را حذف میکند و امکان شکستن آرگومانهای طولانی را در چندین خط ورودی فراهم میسازد.
گزینهها (OPTIONS)
- -b, --block-size=SIZE
- تنظیم اندازه بلوک.
- -c, --cache-size=SIZE
- تنظیم اندازه حافظه موقت (کَش).
- -f, --file=FILE
- خواندن دستورات از FILE، به جای ورودی استاندارد.
- -l, --no-lock
- غیرفعال کردن قفلگذاری پرونده.
- -m, --no-mmap
- عدم استفاده از mmap(2).
- -n, --newdb
- ایجاد پایگاهداده، و در صورت وجود، تخلیه کامل آن (truncate).
- -q, --quiet
- عدم نمایش بنر اولیه.
- -r, --read-only
- باز کردن پایگاهداده در حالت فقطخواندنی.
- -s, --synchronize
- همگامسازی با دیسک پس از هر نوشتن.
- -h, --help
- نمایش خلاصهای کوتاه از نحوه استفاده.
- --usage
- نمایش فهرستی از گزینههای موجود.
- -V, --version
- نمایش نسخه برنامه.
دستورهای پوسته (SHELL COMMANDS)
- avail
- چاپ avail list (فهرست فضاهای خالی و در دسترس).
- bucket NUM
- چاپ باکت شماره NUM و تنظیم آن به عنوان باکت جاری.
- cache
- چاپ حافظه موقت (کَش) باکت.
- close
- بستن پایگاهداده باز جاری.
- count
- چاپ تعداد مدخلهای موجود در پایگاهداده.
- current
- چاپ باکت جاری.
- delete KEY
- حذف رکورد با کلید مشخصشده KEY.
- dir
- چاپ دایرکتوری درهمسازی (هش).
- downgrade
- تنزل قالب پایگاهداده از قالب گسترشیافته numsync به قالب استاندارد.
- export FILE-NAME [truncate] [binary|ascii]
- برونبری پایگاهداده به فایل مسطح (تخت) FILE-NAME. این معادل با دستور gdbm_dump(1) است.
- این دستور یک پرونده موجود را بازنویسی نمیکند، مگر اینکه پارامتر truncate نیز مشخص شده باشد. پارامتر اختیاری دیگر، نوع فایل تخلیه را تعیین میکند (*به Flat files مراجعه کنید). بهطور پیشفرض، فایل تخلیه اسکی (ASCII) ایجاد خواهد شد.
- fetch KEY
- واکشی و نمایش رکورد با کلید مشخصشده KEY.
- first
- واکشی و نمایش اولین رکورد در پایگاهداده. رکوردهای بعدی را میتوان با استفاده از دستور next واکشی کرد (به ادامه مراجعه کنید).
- hash KEY
- محاسبه و نمایش مقدار هش برای کلید مشخصشده KEY.
- header
- چاپ سرآیند فایل.
- help یا ?
- چاپ خلاصهای فشرده از دستورات، شامل حرف و فعل دستوری همراه با پارامترها و توضیحی کوتاه از عملکرد هرکدام. آرگومانهای اختیاری در کروشه قرار دارند.
- history
- نمایش فهرست تاریخچه دستورات به همراه شماره خطوط. این دستور تنها در صورتی در دسترس است که برنامه با GNU Readline کامپایل شده باشد.
- history COUNT.
- نمایش COUNT دستور پایانی از تاریخچه دستورات.
- history N COUNT.
- نمایش COUNT دستور از تاریخچه دستورات با شروع از دستور Nام.
- import FILE-NAME [replace] [nometa]
- درونریزی دادهها از یک فایل تخلیه تخت FILE-NAME. اگر آرگومان replace داده شود، هر رکوردی با کلیدی مشابه با رکوردهای از قبل موجود، جایگزین آنها خواهد شد. آرگومان nometa بازیابی اطلاعات فراداده از فایل تخلیه را غیرفعال میکند.
- list
- فهرست کردن محتویات پایگاهداده.
- next [KEY]
- دسترسی ترتیبی: واکشی و نمایش رکورد بعدی. اگر KEY داده شده باشد، رکورد پس از رکوردی با این کلید واکشی خواهد شد.
- open FILE
- باز کردن پرونده پایگاهداده FILE. در صورت موفقیت، پایگاهدادهای که پیشتر باز بوده بسته میشود. در غیر این صورت، اگر عملیات ناموفق باشد، پایگاهداده باز فعلی بدون تغییر باقی میماند.
- این دستور اطلاعات تکمیلی را از متغیرهای open، lock، mmap، و sync دریافت میکند. برای شرح تفصیلی این متغیرها، به بخش متغیرها (VARIABLES) مراجعه کنید.
- quit
- بستن پایگاهداده و خروج از برنامه.
- reorganize
- سازماندهی مجدد پایگاهداده.
- set [VAR=VALUE...]
- بدون آرگومان، متغیرها و مقادیر آنها را فهرست میکند. اگر آرگومانها مشخص شوند، متغیرها را تنظیم میکند. متغیرهای بولی را میتوان با تعیین نام متغیر، که بهصورت اختیاری پیشوند no دارد، روی false تنظیم کرد.
- snapshot FILE FILE
- دو تصویر لحظهای (اسنپشات) از پایگاهداده را تحلیل کرده و تازهترین آنها را برمیگزیند. در صورت بروز خطا، یک گزارش تشخیصی با جزئیات کامل چاپ میکند. از این دستور برای بازیابی دستی پس از خرابی استفاده کنید. برای جزئیات بیشتر، لطفاً به فصل Crash Tolerance (تحمل خرابی) در راهنمای GDBM مراجعه کنید.
- source FILE
- خواندن دستورات از پرونده مشخصشده FILE.
- status
- چاپ وضعیت جاری برنامه.
- store KEY DATA
- ذخیره DATA با کلید مشخصشده KEY در پایگاهداده. اگر KEY از قبل موجود باشد، داده آن جایگزین خواهد شد.
- sync
- همگامسازی پرونده پایگاهداده با فضای ذخیرهسازی دیسک.
- upgrade
- ارتقای پایگاهداده از قالب استاندارد به قالب گسترشیافته numsync.
- unset VARIABLE...
- لغو تنظیم متغیرهای فهرستشده.
- version
- چاپ نسخه gdbm.
لولهها (PIPES)
یک دستور میتواند با یک علامت خط لوله (|) و یک دستور پوسته دنبال شود. معنای آن همانند پوسته Bourne است: خروجی دستور gdbmtool به ورودی دستور پوستهای که در سمت راست | مشخص شده متصل میشود. در این حالت صفحهبند (pager) غیرفعال میشود.
تعریف دادهها (DATA DEFINITIONS)
دستور define سازوکاری را برای تعریف ساختارهای کلید یا محتوا فراهم میکند. این دستور مشابه با اعلان ساختار (struct) در زبان C است:
define key|content { defnlist }
آرگومان defnlist فهرستی از اعلانهای اعضا است که با کاما از یکدیگر جدا شدهاند. در داخل defnlist، نویسه خط جدید معنای ویژه خود را به عنوان پایاندهنده دستور از دست میدهد، بنابراین هر اعلان میتواند در یک خط جداگانه قرار گیرد و میتوان هر تعداد یادداشت دلخواه را برای مستندسازی تعاریف درج کرد.
هر اعلان یکی از قالبهای زیر را دارد:
type name type name [N]
که در آن type نوع داده و name نام عضو است. قالب دوم عضو name را به عنوان آرایهای از N عنصر از نوع type تعریف میکند.
انواع دادههای پشتیبانیشده عبارتند از:
type meaning char تکبایت (علامتدار) short عدد صحیح کوتاه علامتدار ushort عدد صحیح کوتاه بدون علامت int عدد صحیح علامتدار unsigned عدد صحیح بدون علامت uint همانند مورد قبل long عدد صحیح بلند علامتدار ulong عدد صحیح بلند بدون علامت llong عدد صحیح بسیار بلند علامتدار ullong عدد صحیح بسیار بلند بدون علامت float عدد ممیز شناور double عدد ممیز شناور با دقت مضاعف string آرایهای از نویسهها (به نکته زیر مراجعه کنید) stringz رشته نویسهای خاتمهیافته با تهی (null-terminated)
اعلانهای همترازی زیر را میتوان در داخل defnlist به کار برد:
برای نمونه:
define content {
int status,
pad 8,
char id[3],
stringz name
}
برای تعریف دادهای متشکل از تنها یک عضو، میتوان از ساختار سادهشده زیر استفاده کرد:
define key|content type
که در آن type یکی از انواع دادههای بررسیشده در بالا است.
نکته: از نوع string تنها زمانی میتوان به شکل معقول استفاده کرد که آخرین یا تنها عضو ساختار داده باشد. دلیل آن این است که این نوع هیچ اطلاعاتی در مورد تعداد عناصر آرایه ارائه نمیدهد، بنابراین به گونهای تفسیر میشود که تمام بایتها تا انتهای داده را در بر میگیرد.
متغیرها (VARIABLES)
- confirm، بولی
- آیا پیش از برخی عملیاتهای مخرب، مانند تخلیه کامل پایگاهداده موجود، تأییدیه خواسته شود یا خیر. مقدار پیشفرض true است.
- ps1، رشتهای
- رشته اعلان
اولیه.
مقدار آن
میتواند
حاوی
مشخصکنندههای
تبدیل
باشد که
شامل نویسه
% به همراه
یک نویسه
دیگر است.
این
مشخصکنندهها
در اعلان
نهایی به
شرح زیر بسط
مییابند:
توالی معادل / گسترش %f نام پرونده پایگاهداده %p نام برنامه %P نام بسته (gdbm) %_ فاصله افقی (ASCII 32) %v نسخه برنامه %% %
اعلان پیشفرض %p>%_ است.
- ps2، رشتهای
- اعلان ثانویه. برای شرح مقادیر آن، به ps1 مراجعه کنید. این اعلان پیش از خواندن خط دوم و خطوط بعدی یک دستور چندخطی نمایش داده میشود.
- مقدار پیشفرض %_>%_ است.
- delim1، رشتهای
- رشتهای که برای جداسازی فیلدهای یک داده ساختاریافته در خروجی به کار میرود (به بخش تعریف دادهها (DATA DEFINITIONS) مراجعه کنید).
- پیشفرض , (یک ویرگول) است. مقدار این متغیر را نمیتوان لغو کرد.
- delim2، رشتهای
- رشتهای که برای جداسازی عناصر آرایه هنگام چاپ یک داده ساختاریافته به کار میرود.
- پیشفرض , (یک ویرگول) است. مقدار این متغیر را نمیتوان لغو کرد.
- pager، رشتهای
- نام و خط فرمان برنامه صفحهبند (pager) که خروجی به آن هدایت (pipe) میشود. این برنامه در حالت تعاملی زمانی استفاده میشود که تعداد تخمینی خطوط خروجی بیشتر از تعداد خطوط صفحه نمایش شما باشد.
- مقدار پیشفرض از متغیر محیطی PAGER به ارث برده میشود. لغو مقدار این متغیر صفحهبندی را غیرفعال میکند.
- quiet، بولی
- آیا بنر خوشآمدگویی در هنگام راهاندازی نمایش داده شود یا خیر. این متغیر باید در یک پرونده اسکریپت راهاندازی تنظیم شود.
متغیرهای زیر نحوه باز شدن پایگاهداده را کنترل میکنند:
- cachesize، عددی
- تنظیم اندازه حافظه موقت (کَش). بهطور پیشفرض این متغیر تنظیم نشده است.
- blocksize، عددی
- تنظیم اندازه بلوک. بهطور پیشفرض تنظیم نشده است.
- open، رشتهای
- حالت باز کردن پرونده. مقادیر زیر مجاز هستند:
- newdb
- تخلیه کامل پایگاهداده در صورت وجود، یا ایجاد یک پایگاهداده جدید. باز کردن آن در حالت خواندن-نوشتن.
- wrcreat یا rw
- باز کردن پایگاهداده در حالت خواندن-نوشتن. در صورت عدم وجود، ایجاد میشود. این حالت پیشفرض است.
- reader یا readonly
- باز کردن پایگاهداده در حالت فقطخواندنی. در صورت عدم وجود آن، اعلام خطا میشود.
- filemode، مبنای هشت
- تنظیم حالت پرونده برای پروندههای پایگاهداده تازه ایجادشده. مقدار پیشفرض 0644 است.
- lock، بولی
- قفلگذاری پایگاهداده. این حالت پیشفرض است.
- mmap، بولی
- استفاده از نگاشت حافظه. این حالت پیشفرض است.
- coalesce، بولی
- هنگامی که فعال باشد، این گزینه باعث ادغام بلوکهای خالی مجاور میشود که مدیریت کارآمدتر حافظه را به قیمت افزایش مشخصی در مصرف CPU امکانپذیر میسازد.
- centfree، بولی
- فعال کردن استخر مرکزی بلوکهای خالی. این گزینه باعث میشود تمام بلوکهای خالی فضا در استخر سراسری قرار گیرند و در نتیجه تخصیص فضای داده سرعت یابد.
همچنین ببینید (SEE ALSO)
گزارش باگها (REPORTING BUGS)
گزارش باگها را به <bug-gdbm@gnu.org> ارسال کنید.
کپیرایت (COPYRIGHT)
حق نشر © 2013-2025 Free
Software Foundation, Inc.
مجوز GPLv3+: گنو GPL
نسخه ۳ یا
بالاتر
http://gnu.org/licenses/gpl.html
این
نرمافزار
آزاد است:
شما برای
تغییر و
بازتوزیع
آن آزاد
هستید.
هیچگونه
ضمانتی
وجود
ندارد، تا
حدی که
قانون
اجازه
میدهد.
| ۶ مارس ۲۰۲۵ | GDBM |