.\" This file is part of GDBM. -*- nroff -*- .\" Copyright (C) 2013-2025 Free Software Foundation, Inc. .\" .\" GDBM is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 3, or (at your option) .\" any later version. .\" .\" GDBM is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with GDBM. If not, see . .TH "GDBMTOOL" "1" "۶ مارس ۲۰۲۵" "GDBM" "مرجع کاربری GDBM" .SH "نام (NAME)" gdbmtool \- بررسی و تغییر پایگاه‌داده GDBM .SH "خلاصه دستور (SYNOPSIS)" \fBgdbmtool\fR\ [\fB\-lmNnqrs\fR]\ [\fB\-b\fR \fISIZE\fR]\ [\fB\-c\fR \fISIZE\fR]\ [\fB\-f\fR \fIFILE\fR]\ [\fB\-\-block\-size\fR=\fISIZE\fR]\ [\fB\-\-cache\-size\fR=\fISIZE\fR]\ [\fB\-\-file\fR \fIFILE\fR]\ [\fB\-\-newdb\fR]\ [\fB\-\-no\-lock\fR]\ [\fB\-\-no\-mmap\fR]\ [\fB\-\-norc\fR]\ [\fB\-\-quiet\fR]\ [\fB\-\-read\-only\fR]\ [\fB\-\-synchronize\fR]\ [\fIDBFILE\fR] [\fICOMMAND\fR [; \fICOMMAND\fR...]] .sp \fBgdbmtool\fR\ [\fB\-Vh\fR]\ [\fB\-\-help\fR]\ [\fB\-\-usage\fR]\ [\fB\-\-version\fR] .SH "توضیحات (DESCRIPTION)" ابزار .B gdbmtool به شما امکان می‌دهد یک پایگاه‌داده موجود GDBM را مشاهده و ویرایش کرده یا یک پایگاه‌داده جدید ایجاد کنید. .PP آرگومان \fIDBFILE\fR نام پایگاه‌داده جهت باز کردن را مشخص می‌کند. اگر مشخص نشود، نام پیش‌فرض .B junk.gdbm به جای آن استفاده می‌شود. اگر پایگاه‌داده مشخص‌شده وجود نداشته باشد، ایجاد خواهد شد. یک پایگاه‌داده موجود را می‌توان با استفاده از گزینه \fB\-\-newdb\fR پاک‌سازی کرد (یعنی تمام رکوردها از آن حذف شوند؛ به ادامه مراجعه کنید). .PP مگر اینکه گزینه \fB\-N\fR (\fB\-\-norc\fR) داده شده باشد، پس از راه‌اندازی، .B gdbmtool ابتدا به دنبال فایلی به نام .B .gdbmtoolrc در دایرکتوری کاری جاری می‌گردد، و اگر آنجا پیدا نشد، در دایرکتوری خانگی کاربری که برنامه را آغاز کرده جستجو می‌کند. در صورت یافت شدن، این فایل خوانده شده و به عنوان فهرستی از دستورات .B gdbmtool تفسیر می‌شود. .PP سپس .B gdbmtool یک حلقه را آغاز می‌کند که در آن دستورات را از ورودی استاندارد می‌خواند، آن‌ها را اجرا کرده و نتایج را در خروجی استاندارد چاپ می‌کند. اگر ورودی استاندارد به یک کنسول متصل باشد، برنامه در حالت تعاملی اجرا می‌شود. .PP برنامه زمانی خاتمه می‌یابد که دستور .B quit داده شود، یا پایان فایل (EOF) در ورودی استاندارد آن تشخیص داده شود. .PP دستورات را می‌توان در خط فرمان نیز پس از آرگومان \fIDBFILE\fR مشخص کرد. در این حالت، آن‌ها بدون تلاش برای خواندن دستورات بیشتر از ورودی استاندارد تفسیر خواهند شد. .PP اگر چندین دستور مشخص شوند، باید با نقطه ویرگول (semicolons) از هم جدا شوند (به‌درستی اسکیپ یا نقل‌قول شوند تا از تفسیر آن‌ها توسط پوسته جلوگیری گردد). .PP یک دستور .B gdbmtool شامل یک فعل دستوری است که به‌صورت اختیاری یک یا چند آرگومان به دنبال آن می‌آید و با هر مقدار فاصله خالی از هم جدا می‌شوند. فعل دستوری را می‌توان به‌صورت کامل یا به شکل مخفف وارد کرد، مشروط بر اینکه آن مخفف با هیچ فعل دیگری تداخل نداشته باشد. .PP هر دنباله‌ای از نویسه‌های غیرفاصله که پس از فعل دستوری ظاهر شود یک آرگومان را تشکیل می‌دهد. اگر آرگومان حاوی فاصله خالی یا نویسه‌های غیرقابل چاپ باشد، باید در نقل‌قول دوگانه (double quotes) قرار گیرد. در داخل نقل‌قول دوگانه، توالی‌های گریز معمول پشتیبانی می‌شوند، همان‌طور که در جدول زیر نشان داده شده است: .sp .nf .ta 8n 20n .ul Escape Expansion \\a نویسه زنگ شنیداری (ASCII 7) \\b نویسه پس‌بر (ASCII 8) \\f نویسه برگه جدید (ASCII 12) \\n نویسه خط جدید (ASCII 10) \\r نویسه بازگشت به ابتدای سطر (ASCII 13) \\t نویسه تب افقی (ASCII 9) \\v نویسه تب عمودی (ASCII 11) \\\\ اسلش تکی \\" نقل‌قول دوگانه .fi .PP علاوه بر این، یک بک‌اسلش بلافاصله پیش از نویسه پایان خط، آن نویسه را حذف می‌کند و امکان شکستن آرگومان‌های طولانی را در چندین خط ورودی فراهم می‌سازد. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-b\fR, \fB\-\-block\-size\fR=\fISIZE\fR تنظیم اندازه بلوک. .TP \fB\-c\fR, \fB\-\-cache\-size\fR=\fISIZE\fR تنظیم اندازه حافظه موقت (کَش). .TP \fB\-f\fR, \fB\-\-file\fR=\fIFILE\fR خواندن دستورات از \fIFILE\fR، به جای ورودی استاندارد. .TP \fB\-l\fR, \fB\-\-no\-lock\fR غیرفعال کردن قفل‌گذاری پرونده. .TP \fB\-m\fR, \fB\-\-no\-mmap\fR عدم استفاده از .BR mmap (2). .TP \fB\-n\fR, \fB\-\-newdb\fR ایجاد پایگاه‌داده، و در صورت وجود، تخلیه کامل آن (truncate). .TP \fB\-q\fR, \fB\-\-quiet\fR عدم نمایش بنر اولیه. .TP \fB\-r\fR, \fB\-\-read\-only\fR باز کردن پایگاه‌داده در حالت فقط‌خواندنی. .TP \fB\-s\fR, \fB\-\-synchronize\fR همگام‌سازی با دیسک پس از هر نوشتن. .TP \fB\-h\fR, \fB\-\-help\fR نمایش خلاصه‌ای کوتاه از نحوه استفاده. .TP \fB\-\-usage\fR نمایش فهرستی از گزینه‌های موجود. .TP \fB\-V\fR, \fB\-\-version\fR نمایش نسخه برنامه. .SH "دستورهای پوسته (SHELL COMMANDS)" .TP .B avail چاپ .BR "avail list" (فهرست فضاهای خالی و در دسترس). .TP \fBbucket\fR \fINUM\fR چاپ باکت شماره \fINUM\fR و تنظیم آن به عنوان باکت جاری. .TP .B cache چاپ حافظه موقت (کَش) باکت. .TP .B close بستن پایگاه‌داده باز جاری. .TP .B count چاپ تعداد مدخل‌های موجود در پایگاه‌داده. .TP .B current چاپ باکت جاری. .TP \fBdelete\fR \fIKEY\fR حذف رکورد با کلید مشخص‌شده \fIKEY\fR. .TP .B dir چاپ دایرکتوری درهم‌سازی (هش). .TP .B downgrade تنزل قالب پایگاه‌داده از قالب گسترش‌یافته \fInumsync\fR به قالب استاندارد. .TP \fBexport\fR \fIFILE\-NAME\fR [\fBtruncate\fR] [\fBbinary\fR|\fBascii\fR] برون‌بری پایگاه‌داده به فایل مسطح (تخت) \fIFILE\-NAME\fR. این معادل با دستور .BR gdbm_dump (1) است. .IP این دستور یک پرونده موجود را بازنویسی نمی‌کند، مگر اینکه پارامتر .B truncate نیز مشخص شده باشد. پارامتر اختیاری دیگر، نوع فایل تخلیه را تعیین می‌کند (*به Flat files مراجعه کنید). به‌طور پیش‌فرض، فایل تخلیه اسکی (ASCII) ایجاد خواهد شد. .TP \fBfetch\fR \fIKEY\fR واکشی و نمایش رکورد با کلید مشخص‌شده \fIKEY\fR. .TP .B first واکشی و نمایش اولین رکورد در پایگاه‌داده. رکوردهای بعدی را می‌توان با استفاده از دستور .B next واکشی کرد (به ادامه مراجعه کنید). .TP \fBhash\fR \fIKEY\fR محاسبه و نمایش مقدار هش برای کلید مشخص‌شده \fIKEY\fR. .TP .B header چاپ سرآیند فایل. .TP .BR help " یا " ? چاپ خلاصه‌ای فشرده از دستورات، شامل حرف و فعل دستوری همراه با پارامترها و توضیحی کوتاه از عملکرد هرکدام. آرگومان‌های اختیاری در کروشه قرار دارند. .TP .B history نمایش فهرست تاریخچه دستورات به همراه شماره خطوط. این دستور تنها در صورتی در دسترس است که برنامه با GNU Readline کامپایل شده باشد. .TP \fBhistory\fR \fICOUNT\fR. نمایش \fICOUNT\fR دستور پایانی از تاریخچه دستورات. .TP \fBhistory\fR \fIN\fR \fICOUNT\fR. نمایش \fICOUNT\fR دستور از تاریخچه دستورات با شروع از دستور \fIN\fRام. .TP \fBimport\fR \fIFILE\-NAME\fR [\fBreplace\fR] [\fBnometa\fR] درون‌ریزی داده‌ها از یک فایل تخلیه تخت \fIFILE\-NAME\fR. اگر آرگومان .B replace داده شود، هر رکوردی با کلیدی مشابه با رکوردهای از قبل موجود، جایگزین آن‌ها خواهد شد. آرگومان .B nometa بازیابی اطلاعات فراداده از فایل تخلیه را غیرفعال می‌کند. .TP \fBlist\fR فهرست کردن محتویات پایگاه‌داده. .TP \fBnext\fR [\fIKEY\fR] دسترسی ترتیبی: واکشی و نمایش رکورد بعدی. اگر \fIKEY\fR داده شده باشد، رکورد پس از رکوردی با این کلید واکشی خواهد شد. .TP \fBopen\fR \fIFILE\fR باز کردن پرونده پایگاه‌داده \fIFILE\fR. در صورت موفقیت، پایگاه‌داده‌ای که پیش‌تر باز بوده بسته می‌شود. در غیر این صورت، اگر عملیات ناموفق باشد، پایگاه‌داده باز فعلی بدون تغییر باقی می‌ماند. .IP این دستور اطلاعات تکمیلی را از متغیرهای .BR open ، .BR lock ، .BR mmap "، و" .B sync دریافت می‌کند. برای شرح تفصیلی این متغیرها، به بخش .B "متغیرها (VARIABLES)" مراجعه کنید. .TP .B quit بستن پایگاه‌داده و خروج از برنامه. .TP .B reorganize سازمان‌دهی مجدد پایگاه‌داده. .TP \fBset\fR [\fIVAR\fR=\fIVALUE\fR...] بدون آرگومان، متغیرها و مقادیر آن‌ها را فهرست می‌کند. اگر آرگومان‌ها مشخص شوند، متغیرها را تنظیم می‌کند. متغیرهای بولی را می‌توان با تعیین نام متغیر، که به‌صورت اختیاری پیشوند \fBno\fR دارد، روی \fBfalse\fR تنظیم کرد. .TP \fBsnapshot\fR \fIFILE\fR \fIFILE\fR دو تصویر لحظه‌ای (اسنپ‌شات) از پایگاه‌داده را تحلیل کرده و تازه‌ترین آن‌ها را برمی‌گزیند. در صورت بروز خطا، یک گزارش تشخیصی با جزئیات کامل چاپ می‌کند. از این دستور برای بازیابی دستی پس از خرابی استفاده کنید. برای جزئیات بیشتر، لطفاً به فصل .B "Crash Tolerance" (تحمل خرابی) در .BR "راهنمای GDBM" مراجعه کنید. .TP \fBsource\fR \fIFILE\fR خواندن دستورات از پرونده مشخص‌شده \fIFILE\fR. .TP .B status چاپ وضعیت جاری برنامه. .TP \fBstore\fR \fIKEY\fR \fIDATA\fR ذخیره \fIDATA\fR با کلید مشخص‌شده \fIKEY\fR در پایگاه‌داده. اگر \fIKEY\fR از قبل موجود باشد، داده آن جایگزین خواهد شد. .TP .B sync همگام‌سازی پرونده پایگاه‌داده با فضای ذخیره‌سازی دیسک. .TP .B upgrade ارتقای پایگاه‌داده از قالب استاندارد به قالب گسترش‌یافته \fInumsync\fR. .TP \fBunset\fR \fIVARIABLE\fR... لغو تنظیم متغیرهای فهرست‌شده. .TP .B version چاپ نسخه .BR gdbm . .SH "لوله‌ها (PIPES)" یک دستور می‌تواند با یک علامت خط لوله (\fB|\fR) و یک دستور پوسته دنبال شود. معنای آن همانند پوسته Bourne است: خروجی دستور .B gdbmtool به ورودی دستور پوسته‌ای که در سمت راست .B | مشخص شده متصل می‌شود. در این حالت صفحه‌بند (pager) غیرفعال می‌شود. .SH "تعریف داده‌ها (DATA DEFINITIONS)" دستور \fBdefine\fR سازوکاری را برای تعریف ساختارهای کلید یا محتوا فراهم می‌کند. این دستور مشابه با اعلان ساختار (\fBstruct\fR) در زبان \fBC\fR است: .sp .nf .in +4 \fBdefine\fR \fBkey\fR|\fBcontent\fR \fB{\fR \fIdefnlist\fR \fB}\fR .in .fi .PP آرگومان \fIdefnlist\fR فهرستی از اعلان‌های اعضا است که با کاما از یکدیگر جدا شده‌اند. در داخل \fIdefnlist\fR، نویسه خط جدید معنای ویژه خود را به عنوان پایان‌دهنده دستور از دست می‌دهد، بنابراین هر اعلان می‌تواند در یک خط جداگانه قرار گیرد و می‌توان هر تعداد یادداشت دلخواه را برای مستندسازی تعاریف درج کرد. .PP هر اعلان یکی از قالب‌های زیر را دارد: .sp .nf .in +4 \fItype\fR \fIname\fR \fItype\fR \fIname\fR \fB[\fIN\fB]\fR .in .fi .sp که در آن \fItype\fR نوع داده و \fIname\fR نام عضو است. قالب دوم عضو \fIname\fR را به عنوان آرایه‌ای از \fIN\fR عنصر از نوع \fItype\fR تعریف می‌کند. .PP انواع داده‌های پشتیبانی‌شده عبارتند از: .sp .nf .ta 8n 20n .ul type meaning char تک‌بایت (علامت‌دار) short عدد صحیح کوتاه علامت‌دار ushort عدد صحیح کوتاه بدون علامت int عدد صحیح علامت‌دار unsigned عدد صحیح بدون علامت uint همانند مورد قبل long عدد صحیح بلند علامت‌دار ulong عدد صحیح بلند بدون علامت llong عدد صحیح بسیار بلند علامت‌دار ullong عدد صحیح بسیار بلند بدون علامت float عدد ممیز شناور double عدد ممیز شناور با دقت مضاعف string آرایه‌ای از نویسه‌ها (به \fBنکته\fR زیر مراجعه کنید) stringz رشته نویسه‌ای خاتمه‌یافته با تهی (null-terminated) .fi .PP اعلان‌های هم‌ترازی زیر را می‌توان در داخل \fIdefnlist\fR به کار برد: .TP \fBoffset\fR \fIN\fR عضو بعدی در آفست \fIN\fR آغاز می‌شود. .TP \fBpad\fR \fIN\fR افزودن \fIN\fR بایت فاصله‌گذاری (padding) به عضو قبلی. .PP برای نمونه: .sp .nf .in +4 \fBdefine content { int status, pad 8, char id[3], stringz name }\fR .fi .PP برای تعریف داده‌ای متشکل از تنها یک عضو، می‌توان از ساختار ساده‌شده زیر استفاده کرد: .sp .nf .in +4 \fBdefine\fR \fBkey\fR|\fBcontent\fR \fItype\fR .fi .PP که در آن \fItype\fR یکی از انواع داده‌های بررسی‌شده در بالا است. .PP \fBنکته\fR: از نوع \fBstring\fR تنها زمانی می‌توان به شکل معقول استفاده کرد که آخرین یا تنها عضو ساختار داده باشد. دلیل آن این است که این نوع هیچ اطلاعاتی در مورد تعداد عناصر آرایه ارائه نمی‌دهد، بنابراین به گونه‌ای تفسیر می‌شود که تمام بایت‌ها تا انتهای داده را در بر می‌گیرد. .SH "متغیرها (VARIABLES)" .TP .BR confirm "، بولی" آیا پیش از برخی عملیات‌های مخرب، مانند تخلیه کامل پایگاه‌داده موجود، تأییدیه خواسته شود یا خیر. مقدار پیش‌فرض .B true است. .TP .BR ps1 "، رشته‌ای" رشته اعلان اولیه. مقدار آن می‌تواند حاوی \fIمشخص‌کننده‌های تبدیل\fR باشد که شامل نویسه \fB%\fR به همراه یک نویسه دیگر است. این مشخص‌کننده‌ها در اعلان نهایی به شرح زیر بسط می‌یابند: .sp .nf .ta 8n 20n .ul توالی معادل / گسترش \fB%f\fR نام پرونده پایگاه‌داده \fB%p\fR نام برنامه \fB%P\fR نام بسته (\fBgdbm\fR) \fB%_\fR فاصله افقی (\fBASCII\fR 32) \fB%v\fR نسخه برنامه \fB%%\fR \fB%\fR .fi .sp اعلان پیش‌فرض \fB%p>%_\fR است. .TP .BR ps2 "، رشته‌ای" اعلان ثانویه. برای شرح مقادیر آن، به .B ps1 مراجعه کنید. این اعلان پیش از خواندن خط دوم و خطوط بعدی یک دستور چندخطی نمایش داده می‌شود. .IP مقدار پیش‌فرض \fB%_>%_\fR است. .TP .BR delim1 "، رشته‌ای" رشته‌ای که برای جداسازی فیلدهای یک داده ساختاریافته در خروجی به کار می‌رود (به بخش \fBتعریف داده‌ها (DATA DEFINITIONS)\fR مراجعه کنید). .IP پیش‌فرض \fB,\fR (یک ویرگول) است. مقدار این متغیر را نمی‌توان لغو کرد. .TP .BR delim2 "، رشته‌ای" رشته‌ای که برای جداسازی عناصر آرایه هنگام چاپ یک داده ساختاریافته به کار می‌رود. .IP پیش‌فرض \fB,\fR (یک ویرگول) است. مقدار این متغیر را نمی‌توان لغو کرد. .TP .BR pager "، رشته‌ای" نام و خط فرمان برنامه صفحه‌بند (pager) که خروجی به آن هدایت (pipe) می‌شود. این برنامه در حالت تعاملی زمانی استفاده می‌شود که تعداد تخمینی خطوط خروجی بیشتر از تعداد خطوط صفحه نمایش شما باشد. .IP مقدار پیش‌فرض از متغیر محیطی \fBPAGER\fR به ارث برده می‌شود. لغو مقدار این متغیر صفحه‌بندی را غیرفعال می‌کند. .TP .BR quiet "، بولی" آیا بنر خوش‌آمدگویی در هنگام راه‌اندازی نمایش داده شود یا خیر. این متغیر باید در یک پرونده اسکریپت راه‌اندازی تنظیم شود. .PP متغیرهای زیر نحوه باز شدن پایگاه‌داده را کنترل می‌کنند: .TP .BR cachesize "، عددی" تنظیم اندازه حافظه موقت (کَش). به‌طور پیش‌فرض این متغیر تنظیم نشده است. .TP .BR blocksize "، عددی" تنظیم اندازه بلوک. به‌طور پیش‌فرض تنظیم نشده است. .TP .BR open "، رشته‌ای" حالت باز کردن پرونده. مقادیر زیر مجاز هستند: .RS 7 .TP .B newdb تخلیه کامل پایگاه‌داده در صورت وجود، یا ایجاد یک پایگاه‌داده جدید. باز کردن آن در حالت خواندن-نوشتن. .TP .BR wrcreat " یا " rw باز کردن پایگاه‌داده در حالت خواندن-نوشتن. در صورت عدم وجود، ایجاد می‌شود. این حالت پیش‌فرض است. .TP .BR reader " یا " readonly باز کردن پایگاه‌داده در حالت فقط‌خواندنی. در صورت عدم وجود آن، اعلام خطا می‌شود. .RE .TP .BR filemode "، مبنای هشت" تنظیم حالت پرونده برای پرونده‌های پایگاه‌داده تازه ایجادشده. مقدار پیش‌فرض 0644 است. .TP .BR lock "، بولی" قفل‌گذاری پایگاه‌داده. این حالت پیش‌فرض است. .TP .BR mmap "، بولی" استفاده از نگاشت حافظه. این حالت پیش‌فرض است. .TP .BR coalesce "، بولی" هنگامی که فعال باشد، این گزینه باعث ادغام بلوک‌های خالی مجاور می‌شود که مدیریت کارآمدتر حافظه را به قیمت افزایش مشخصی در مصرف CPU امکان‌پذیر می‌سازد. .TP .BR centfree "، بولی" فعال کردن استخر مرکزی بلوک‌های خالی. این گزینه باعث می‌شود تمام بلوک‌های خالی فضا در استخر سراسری قرار گیرند و در نتیجه تخصیص فضای داده سرعت یابد. .SH "همچنین ببینید (SEE ALSO)" .BR gdbm_dump (1), .BR gdbm_load (1), .BR gdbm (3). .SH "گزارش باگ‌ها (REPORTING BUGS)" گزارش باگ‌ها را به ارسال کنید. .SH "کپی‌رایت (COPYRIGHT)" حق نشر \(co 2013-2025 Free Software Foundation, Inc. .br .na مجوز GPLv3+: گنو GPL نسخه ۳ یا بالاتر .br .ad این نرم‌افزار آزاد است: شما برای تغییر و بازتوزیع آن آزاد هستید. هیچ‌گونه ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد. .\" Local variables: .\" eval: (add-hook 'write-file-hooks 'time-stamp) .\" time-stamp-start: ".TH GDBM[A-Z_-]* 1 \"" .\" time-stamp-format: "%:B %:d, %:y" .\" time-stamp-end: "\"" .\" time-stamp-line-limit: 20 .\" end: