ncftp(1) نام (NAME) ncftp(1)
ncftp - برنامه مرورگر برای پروتکل انتقال فایل (FTP)

ncftp [host]

ncftp [ftp://host.name/directory/]

هدف از ncftp ارائه یک رابط کاربری قدرتمند و انعطاف‌پذیر برای استاندارد اینترنتی File Transfer Protocol است. این ابزار به منظور جایگزینی برنامه معمول ftp که همراه سیستم ارائه می‌شود طراحی شده است.

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

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

بسته توزیع ncftp همراه با برنامه‌های کمکی سودمندی مانند ncftpget(1) و ncftpput(1) عرضه می‌شود که برای اجرای عملیات FTP در خط فرمان طراحی شده‌اند. این ابزارها به‌ویژه در اسکریپت‌های شل بسیار کاربردی هستند. این نسخه از ncftp دیگر انتقال FTP مستقیم از خط فرمان را انجام نمی‌دهد، زیرا برنامه اصلی ncftp بیشتر برنامه‌ای از نوع مرورگر تعاملی است.

این برنامه به شما اجازه می‌دهد که یک میزبان یا نشانی (URL) دایرکتوری را در خط فرمان مشخص کنید. این کار معادل اجرای ncftp و سپس استفاده از دستور open است. در این حالت استفاده از چند پرچم خط فرمان مجاز است:

استفاده از نام کاربری XX به‌جای anonymous.
استفاده از گذرواژه XX همراه با نام کاربری.
استفاده از حساب XX به‌عنوان مکمل نام کاربری و گذرواژه (منسوخ شده).
استفاده از شماره پورت XX به‌جای پورت پیش‌فرض سرویس FTP (۲۱).

پس از اجرای برنامه، با یک اعلان خط فرمان مواجه می‌شوید که در آن دستورات را برای پوستهٔ برنامه تایپ می‌کنید. معمولاً می‌خواهید یک فایل‌سیستم راه دور را برای انتقال فایل‌ها به فایل‌سیستم دستگاه محلی خود و از آن باز کنید. برای انجام این کار، باید نام نمادین سیستم راه دور، یا نشانی Internet Protocol (IP) آن را بدانید. برای مثال، یک نام نمادین می‌تواند «typhoon.unl.edu» باشد، و نشانی IP آن ممکن است «129.93.33.24» باشد. برای باز کردن یک اتصال به آن سیستم، از دستور open برنامه استفاده می‌کنید:


open typhoon.unl.edu
open 129.93.33.24

هر دوی این‌ها تلاش می‌کنند دستگاهی به نام typhoon را در University of Nebraska باز کنند. استفاده از نام نمادین روش ترجیحی است، چرا که نشانی‌های IP ممکن است بدون اطلاع تغییر کنند، در حالی که نام‌های نمادین معمولاً ثابت می‌مانند.

هنگامی که یک فایل‌سیستم راه دور را باز می‌کنید، باید مجوز دسترسی داشته باشید. سیستم احراز هویت در FTP Protocol بسیار شبیه به فرآیند ورود به حساب کاربری شما است. شما باید یک نام حساب کاربری و گذرواژهٔ آن را برای دسترسی به فایل‌های آن حساب وارد کنید. با این حال، اکثر سیستم‌های راه دور که محتوای مورد علاقهٔ شما را دارند، برای استفاده نیازی به نام حساب کاربری ندارند. شما اغلب می‌توانید دسترسی ناشناس به یک فایل‌سیستم راه دور داشته باشید و فایل‌هایی را که به صورت عمومی در دسترس قرار گرفته‌اند تبادل کنید. این برنامه به صورت پیش‌فرض تلاش می‌کند مجوز دسترسی ناشناس به یک سیستم راه دور را دریافت کند. اتفاقی که در عمل می‌افتد این است که برنامه تلاش می‌کند از «anonymous» به عنوان نام حساب کاربری استفاده کند، و هنگامی که گذرواژه درخواست می‌شود، نشانی رایانامهٔ (E-mail) شما را جهت احترام به مدیر سیستم راه دور ارسال می‌نماید. همچنین می‌توانید برنامه را وادار کنید که از یک حساب کاربری خاص استفاده کند؛ این موضوع بعداً توضیح داده خواهد شد.

پس از اینکه دستور open با موفقیت به پایان رسید، شما به سیستم راه دور متصل شده و وارد آن می‌شوید. اکنون باید ببینید که اعلان فرمان تغییر کرده تا نام دایرکتوری راه دور فعلی را منعکس کند. برای مشاهدهٔ محتویات دایرکتوری راه دور فعلی، می‌توانید از دستورهای ls و dir برنامه استفاده کنید. اولی مختصر است و فایل‌های راه دور بیشتری را در فضای کمتری از صفحه نمایش می‌دهد، و دومی مفصل‌تر است و اطلاعات دقیقی دربارهٔ هر مورد در دایرکتوری ارائه می‌دهد.

می‌توانید از دستور cd برنامه برای رفتن به سایر دایرکتوری‌های سیستم راه دور استفاده کنید. دستور cd رفتاری بسیار شبیه به دستوری با همین نام در پوسته‌های Bourne و Korn دارد.

هدف این برنامه تبادل داده با سیستم‌های دیگر است. می‌توانید از دستور get برنامه برای کپی کردن یک فایل از سیستم راه دور به سیستم محلی خود استفاده کنید:


get README.txt

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

می‌توانید از دستور put برنامه برای کپی کردن یک فایل از سیستم خود به سیستم راه دور استفاده کنید:


put something.tar

هنگامی که کارتان با سیستم راه دور به پایان رسید، می‌توانید سیستم دیگری را باز کنید یا از دستور quit استفاده نمایید.

پیش از خروج، ممکن است بخواهید تنظیمات نشست FTP فعلی را برای بعد ذخیره کنید. می‌توانید از دستور bookmark برای ذخیرهٔ یک مدخل در فایل $HOME/.ncftp/bookmarks خود استفاده کنید. هنگامی که از دستور bookmark استفاده می‌کنید، یک نام نشانک نیز مشخص می‌نمایید، بنابراین دفعهٔ بعد به جای باز کردن نام کامل میزبان، می‌توانید از نام نشانک استفاده کنید. یک نشانک درست مانند نشانک‌های مرورگر وب شما عمل می‌کند؛ بنابراین دایرکتوری راه دوری که در آن بودید، نام حسابی که استفاده کردید و غیره، و سایر اطلاعاتی را که آموخته ذخیره می‌کند تا دفعهٔ بعد که از نشانک استفاده می‌کنید به کمترین تلاش ممکن از سوی شما نیاز باشد.

نخستین دستوری که باید بدانید، help. است. اگر تنها

help

را در پوستهٔ دستوری تایپ کنید، برنامه نام تمام دستورهای پشتیبانی‌شده را چاپ می‌کند. از آنجا می‌توانید با وارد کردن نام دستور پس از آن، راهنمای مربوط به یک دستور خاص را دریافت کنید؛ برای نمونه:

help open

اطلاعاتی را دربارهٔ دستور open چاپ می‌کند.
این دستور نوع انتقال را روی متن ASCII تنظیم می‌کند. این قابلیت برای انتقال‌های صرفاً متنی مفید است، زیرا مفهوم فایل‌های متنی در میان سیستم‌های عامل گوناگون تفاوت دارد. برای نمونه در UNIX، یک فایل متنی شکست‌های خط را با نویسهٔ خط‌جدید (linefeed) مشخص می‌کند، در حالی که در MS-DOS یک شکست خط با هر دو نویسهٔ بازگشت به ابتدای سطر (carriage return) و خط‌جدید مشخص می‌شود. بنابراین، برای انتقال داده‌هایی که محتوای آن‌ها را متنی می‌دانید، می‌توانید از ascii استفاده کنید تا مطمئن شوید هر دو سیستم دوردست و محلی تبدیل نویسه‌ها را بر همین اساس انجام می‌دهند. نوع انتقال پیش‌فرضی که ncftp استفاده می‌کند ASCII نیست، بلکه باینری خالص (straight binary) است.
این دستورها متناظر با دستورهای get و put هستند که در ادامه توضیح داده شده‌اند، با این تفاوت که کار را در پس‌زمینه انجام می‌دهند. در حالت عادی وقتی یک get انجام می‌دهید، برنامه بارگیری را بی‌درنگ انجام می‌دهد و تا زمان اتمام بارگیری، کنترل را به شما بازنمی‌گرداند. انتقال‌های پس‌زمینه بسیار سودمندند زیرا می‌توانید به مرور سیستم‌فایل دوردست ادامه دهید و حتی به سیستم‌های دیگری متصل شوید. در واقع، آن‌ها توسط یک فرآیند دیمن (daemon) انجام می‌شوند؛ بنابراین حتی اگر از میزبان UNIX خود خارج شوید (log off کنید)، دیمن همچنان باید انتقال‌های شما را به سرانجام برساند. دیمن همچنین تلاش مجدد برای انتقال‌ها را به‌طور خودکار تا زمان پایان یافتن آن‌ها پی خواهد گرفت. برای این که متوجه شوید کارهای پس‌زمینه چه زمانی به پایان رسیده‌اند، باید فایل $HOME/.ncftp/spool/log را بررسی کنید، یا دستور jobs را از درون NcFTP. اجرا نمایید.
هر دو دستور bgget و bgput به شما امکان می‌دهند زمان انجام انتقال‌ها را زمان‌بندی کنید. آن‌ها پارامتر ``-@'' را دریافت می‌کنند که آرگومان آن تاریخی به قالب YYYYMMDDhhmmss است (سال چهار رقمی، ماه، روز، ساعت، دقیقه، ثانیه). برای نمونه، جهت زمان‌بندی یک بارگیری در ساعت ۳ بامداد روز ۶ نوامبر، می‌توانید این را امتحان کنید:

bgget -@ 19971106030000 /pub/idstuff/quake/q2_100.zip

این دستور به ncftp می‌گوید که بی‌درنگ انتقال‌های پس‌زمینه‌ای را که درخواست کرده‌اید آغاز کند، که این کار صرفاً با اجرای یک نسخه از برنامهٔ ncftpbatch که مسئول کارهای پس‌زمینه است صورت می‌گیرد. به‌طور معمول، برنامه به محض اینکه سایت فعلی را ببندید، سایت جدیدی را باز کنید یا از برنامه خارج شوید، کار پس‌زمینه را آغاز خواهد کرد. دلیل این امر آن است که از آنجا که کاربران پرشماری هنوز از اتصالات کند شماره‌گیری (dialup) استفاده می‌کنند، شروع انتقال‌ها سرعت همه‌چیز را به شدت کاهش می‌دهد و مرور سیستم دوردست را دشوار می‌سازد. یک مزیت دیگر برای شروع کار پس‌زمینه هنگام بستن سایت این است که ncftp می‌تواند آن اتصال باز را به برنامهٔ ncftpbatch واگذار کند. این قابلیت زمانی بسیار مطلوب است که سایت همواره شلوغ باشد، تا کار پس‌زمینه نیازی نداشته باشد برای انجام کار خود منتظر بماند و دوباره به سیستم وارد شود.
نوع انتقال را به باینری خام تنظیم می‌کند، تا هیچ تبدیلی روی داده‌های منتقل‌شده صورت نگیرد. به هر حال این حالت پیش‌فرض است، زیرا بیشتر فایل‌ها باینری هستند.
تنظیمات نشست فعلی را برای استفاده‌های بعدی ذخیره می‌کند. این دستور برای ذخیره کردن سیستم دوردست و دایرکتوری کاری دوردست مفید است تا بتوانید بعداً به‌سرعت از همان‌جایی که کار را رها کرده‌اید ادامه دهید. داده‌های نشانک (bookmark) در فایل $HOME/.ncftp/bookmarks شما ذخیره می‌شوند.
محتویات فایل $HOME/.ncftp/bookmarks شما را در قالبی خوانا برای انسان فهرست می‌کند. می‌توانید از این دستور برای یادآوری نام نشانکی که قبلاً ذخیره کرده‌اید استفاده کنید تا بتوانید دستور open را با آن به کار ببرید.
مانند دستور UNIX ``/bin/cat'' عمل می‌کند، اما فقط برای فایل‌های دوردست. این دستور فایلی را که مشخص کرده‌اید بارگیری می‌کند و آن را مستقیماً روی صفحه نمایش می‌ریزد. احتمالاً دستور page را کاربردی‌تر خواهید یافت، زیرا به شما اجازه می‌دهد فایل را صفحه به صفحه ببینید، به‌جای آنکه کل فایل یک‌باره روی صفحه چاپ شود.
دایرکتوری کاری را روی میزبان دوردست تغییر می‌دهد. از این دستور برای رفتن به بخش‌های مختلف سرور دوردست استفاده کنید. اگر به‌تازگی یک سایت جدید را باز کرده باشید، ممکن است در دایرکتوری ریشه باشید. شاید دایرکتوری‌ای به نام ``/pub/news/comp.sources.d'' وجود داشته باشد که کسی به شما معرفی کرده باشد. از دایرکتوری ریشه می‌توانید این کار را انجام دهید:

cd pub
cd news
cd comp.sources.d

یا به‌صورت خلاصه‌تر:

cd /pub/news/comp.sources.d

سپس، دستورهایی مانند get، put و ls می‌توانند برای اشاره به موارد موجود در آن دایرکتوری استفاده شوند.
برخی پوسته‌ها در محیط UNIX قابلیتی دارند که من آن را می‌پسندم؛ بازگشت به دایرکتوری قبلی. مانند آن پوسته‌ها، می‌توانید دستور زیر را اجرا کنید:

cd -

تا به آخرین دایرکتوری‌ای که در آن بوده‌اید بروید.
مانند دستور UNIX ``/bin/chmod'' عمل می‌کند، اما فقط برای فایل‌های دوردست. با این وجود، این یک دستور استاندارد نیست، بنابراین سرورهای FTP دوردست ممکن است از آن پشتیبانی نکنند.
اتصال شما را از سرور دوردست قطع می‌کند. برنامه در صورت نیاز این کار را به‌طور خودکار برای شما انجام می‌دهد، بنابراین می‌توانید بدون نگرانی از بستن دستی اتصال، به‌سادگی سایت‌های دیگر را باز کنید یا از برنامه خارج شوید.
این دستور بیشتر برای آزمایش‌های داخلی است. می‌توانید تایپ کنید:

debug 1

تا حالت اشکال‌زدایی فعال شود. سپس می‌توانید تمام پیام‌های ردوبدل‌شده میان برنامه و سرور دوردست، و مواردی را که فقط در حالت اشکال‌زدایی چاپ می‌شوند، مشاهده کنید. با این حال، این اطلاعات در فایل $HOME/.ncftp/trace نیز در دسترس است که هر بار هنگام اجرای ncftp. ایجاد می‌شود. اگر نیاز به گزارش باگ دارید، در صورت امکان فایل trace را بفرستید. فهرست تفصیلی دایرکتوری را نمایش می‌دهد. تلاش می‌کند رفتاری شبیه به دستور ``/bin/ls -l'' در UNIX داشته باشد. اگر سرور دوردست یک میزبان UNIX به نظر برسد، می‌توانید از همان پرچم‌هایی استفاده کنید که برای ls به کار می‌برید؛ برای نمونه:

dir -rt

تلاش خواهد کرد همانند

/bin/ls -lrt

در UNIX رفتار کند.
فایل را برای ویرایش در میزبان محلی در یک فایل موقت بارگیری می‌کند، سپس فایل تغییریافته را دوباره در میزبان دوردست بارگذاری می‌کند.
فایل‌ها را از دایرکتوری کاری فعلی در میزبان دوردست به دایرکتوری کاری فعلی دستگاه شما رونوشت می‌کند. برای قرار دادن یک رونوشت از ``README'' و ``README.too'' در دایرکتوری محلی خود، می‌توانید دستور زیر را امتحان کنید:

get README README.too

همچنین می‌توانید این کار را با استفاده از یک عبارت نویسه عام (wildcard) انجام دهید، مانند:

get README*

این دستور شبیه به رفتار دستور mget در دیگر برنامه‌های FTP است. برای دریافت یک فایل دوردست با نامی متفاوت در میزبان خود، می‌توانید از پرچم ``-z'' استفاده کنید. این مثال نشان می‌دهد چگونه فایلی به نام ReadMe.txt را بارگیری کنید اما نام آن را در سیستم محلی README: بگذارید:

get -z ReadMe.txt README

این برنامه به‌طور پیش‌فرض تلاش می‌کند بارگیری‌ها را ادامه (resume) دهد. بدین معنا که اگر سرور FTP دوردست ارتباط را از دست داد و تنها موفق شد ۴۹۰ کیلوبایت از یک فایل ۵۰۰ کیلوبایتی را ارسال کند، می‌توانید دوباره به سرور FTP متصل شده و یک get دیگر را روی همان نام فایل اجرا کنید تا به‌جای دریافت مجدد کل فایل، ۱۰ کیلوبایت باقی‌مانده را دریافت کند. مواردی وجود دارد که ممکن است این رفتار را نخواهید. برای غیرفعال کردن آن می‌توانید از پرچم ``-f'' استفاده کنید.
همچنین زمان‌هایی وجود دارد که می‌خواهید داده‌ها را به انتهای یک فایل موجود ضمیمه (append) کنید. می‌توانید با استفاده از پرچم ``-A'' این کار را انجام دهید؛ برای نمونه:

get -A log.11

در صورت وجود محلی فایلی با نام ``log.11''، به انتهای آن اضافه خواهد کرد.
کار دیگری که می‌توانید انجام دهید، حذف فایل دوردست پس از بارگیری آن است. این قابلیت زمانی مفید است که میزبان دوردست انتظار دارد فایلی پس از دریافت پاک شود. برای انجام این کار از پرچم D دوگانه، مانند ``get -DD'' استفاده کنید.
دستور get به شما امکان می‌دهد درخت‌های کامل دایرکتوری را نیز دریافت کنید. اگرچه ممکن است با برخی سیستم‌های دوردست کار نکند، می‌توانید برای بارگیری دایرکتوری و محتویات آن، ``get -R'' را همراه با یک دایرکتوری امتحان کنید.
هنگام استفاده از پرچم ``-R''، می‌توانید از پرچم ``-T'' نیز برای غیرفعال کردن حالت خودکار و بی‌درنگ TAR جهت بارگیری کل درخت‌های دایرکتوری استفاده کنید. برنامه تا جای ممکن از TAR استفاده می‌کند، زیرا معمولاً پیوندهای نمادین و مجوزهای فایل را حفظ می‌کند. حالت TAR همچنین می‌تواند منجر به انتقال سریع‌تر دایرکتوری‌های حاوی فایل‌های کوچک متعدد شود، چرا که به‌جای باز کردن یک اتصال داده FTP برای هر فایل کوچک، از یک اتصال داده واحد استفاده می‌شود. نکته منفی استفاده از TAR این است که حتی اگر قبلاً بخشی از دایرکتوری را بارگیری کرده باشید، بارگیری کل دایرکتوری را اجباری می‌کند؛ بنابراین اگر می‌خواهید بارگیری یک دایرکتوری را از سر بگیرید (resume کنید)، ممکن است بخواهید از این گزینه استفاده کنید.
فهرست وظایف پس‌زمینه در حال اجرای فعلی NcFTP را نمایش می‌دهد. این کار در واقع فقط ncftpbatch -l را برای شما اجرا می‌کند.
دستور lcd نخستین دستور از چند دستور با پیشوند «l» است که با میزبان محلی کار می‌کنند. این دستور دایرکتوری کاری فعلی را در میزبان محلی تغییر می‌دهد. اگر می‌خواهید فایل‌ها را در دایرکتوری محلی متفاوتی بارگیری کنید، می‌توانید از lcd برای رفتن به آن دایرکتوری استفاده کرده و سپس بارگیری‌های خود را انجام دهید.
دستور ``/bin/chmod'' را در میزبان محلی اجرا می‌کند.
یکی دیگر از دستورات محلی کاربردی، دستور lls است که ``/bin/ls'' را در میزبان محلی اجرا کرده و نتایج را در پنجره برنامه نمایش می‌دهد. می‌توانید همان پرچم‌هایی را با lls به کار ببرید که در پوسته دستوری خود استفاده می‌کردید، بنابراین می‌توانید کارهایی مانند این را انجام دهید:

lcd ~/doc
lls -lrt p*.txt

دستور ``/bin/mkdir'' را در میزبان محلی اجرا می‌کند.
این برنامه همچنین از طریق دستور lookup دارای یک رابط داخلی با سرویس نام (name service) است. بدین معنا که می‌توانید مدخل‌های میزبان‌های دوردست را جستجو کنید، مانند:

lookup cse.unl.edu ftp.cs.unl.edu sphygmomanometer.unl.edu

چاپ می‌کند:

cse.unl.edu               129.93.33.1
typhoon.unl.edu           129.93.33.24
sphygmomanometer.unl.edu  129.93.33.126

همچنین گزینه مفصل‌تری وجود دارد که با ``-v'' فعال می‌شود، یعنی:

lookup -v cse.unl.edu ftp.cs.unl.edu

چاپ می‌کند:

cse.unl.edu:
    Name:     cse.unl.edu
    Address:  129.93.33.1
ftp.cs.unl.edu:
    Name:     typhoon.unl.edu
    Alias:    ftp.cs.unl.edu
    Address:  129.93.33.24

همچنین می‌توانید نشانی‌های IP را وارد کنید، بنابراین این مورد نیز کار خواهد کرد:

lookup 129.93.33.24

چاپ می‌کند:

typhoon.unl.edu           129.93.33.24

یک فایل محلی را با برنامه مورد نظر شما در $PAGER صفحه به صفحه نمایش می‌دهد. دایرکتوری جاری محلی را چاپ می‌کند. زمانی که فراموش کردید کجای رایانهٔ محلی خود هستید، از این دستور استفاده کنید.
دستور «/bin/mv» را روی میزبان محلی اجرا می‌کند.
دستور «/bin/rm» را روی میزبان محلی اجرا می‌کند.
دستور «/bin/rmdir» را روی میزبان محلی اجرا می‌کند.
فهرست دایرکتوری را از سیستم دوردست چاپ می‌کند. این دستور تلاش می‌کند رفتاری مشابه دستور UNIX «/bin/ls -CF» داشته باشد. اگر به نظر برسد که سرور دوردست یک میزبان UNIX است، همچنین می‌توانید از همان پرچم‌هایی استفاده کنید که برای ls به کار می‌برید؛ برای نمونه

ls -rt

تلاش خواهد کرد مشابه

/bin/ls -CFrt

در UNIX عمل کند.
برنامهٔ ncftp یک سامانهٔ درونی قدرتمند برای کار با فهرست‌های دایرکتوری دارد. تلاش می‌کند هر فهرست را در حافظهٔ نهان (cache) ذخیره کند؛ بنابراین اگر همان دایرکتوری را فهرست کنید، به احتمال زیاد بی‌درنگ نمایش داده خواهد شد. در پشت صحنه، ncftp همواره فهرست‌گیری طولانی (long listing) را امتحان می‌کند و سپس آن را بر حسب نیاز مجدداً قالب‌بندی می‌نماید. بنابراین حتی اگر نخستین فهرست‌گیری شما از یک دایرکتوری یک «ls» معمولی بوده که فایل‌ها را در ستون‌ها نمایش داده باشد، فهرست‌گیری بعدی شما می‌تواند «ls -lrt» باشد و ncftp همچنان از فهرست دایرکتوری ذخیره‌شده در حافظهٔ نهان برای نمایش سریع اطلاعات استفاده خواهد کرد!
یک دایرکتوری جدید روی میزبان دوردست ایجاد می‌کند. در بسیاری از آرشیوهای عمومی، مجوزهای دسترسی لازم برای انجام این کار را نخواهید داشت.
یک اتصال کنترلی FTP با یک میزبان دوردست برقرار می‌کند. به‌طور پیش‌فرض، ncftp به‌صورت ناشناس (anonymous) وارد میزبان دوردست می‌شود. ممکن است بخواهید هنگام ورود به سیستم از یک حساب کاربری مشخص استفاده کنید؛ ازاین‌رو می‌توانید از پرچم «-u» برای تعیین کاربر استفاده کنید. این مثال نحوهٔ اتصال به میزبان «bowser.nintendo.co.jp» با دستور open و نام کاربری «mario» را نشان می‌دهد:

open -u mario bowser.nintendo.co.jp

در اینجا فهرستی از گزینه‌های موجود برای استفاده با دستور open آمده است:
-u XX استفاده از نام کاربری XX به جای anonymous.
-p XX استفاده از گذرواژهٔ XX همراه با نام کاربری.
-j XX استفاده از حساب XX به عنوان مکمل نام کاربری و گذرواژه (منسوخ شده).
-P XX استفاده از شماره درگاه XX به جای درگاه پیش‌فرض سرویس FTP (21).
یک فایل دوردست را با استفاده از برنامهٔ $PAGER شما صفحه به صفحه مرور می‌کند. این دستور برای خواندن فایل‌های README در میزبان دوردست بدون نیاز به بارگیری اولیهٔ آن‌ها سودمند است.
این دستورها به ترتیب معادل dir و ls هستند، با این تفاوت که خروجی خود را به صفحه‌بندی‌کننده (pager) شما می‌فرستند. این دستورها زمانی که فهرست دایرکتوری از صفحهٔ نمایش شما فراتر می‌رود مفید هستند.
فایل‌ها را از میزبان محلی به دایرکتوری کاری جاری در رایانهٔ دوردست کپی می‌کند. برای قرار دادن یک نسخه از «xx.zip» و «yy.zip» در دایرکتوری دوردست، می‌توانید اجرا کنید:

put xx.zip yy.zip

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

put *.zip

این دستور مشابه رفتار دستور mput در سایر برنامه‌های FTP است. برای ارسال یک فایل دوردست اما با نامی متفاوت در میزبان مقصد، می‌توانید از پرچم «-z» استفاده کنید. این مثال نشان می‌دهد که چگونه می‌توان فایلی به نام «ncftpd-2.0.6.tar.gz» را بارگذاری کرد اما در سیستم دوردست با نام «NFTPD206.TGZ» ذخیره نمود:

put -z ncftpd-2.0.6.tar.gz NFTPD206.TGZ

این برنامه به‌طور پیش‌فرض تلاشی نمی‌کند تا بارگذاری‌ها را «از سر بگیرد» (resume). اگر می‌خواهید بارگذاری را از سر بگیرید، از پرچم «-z» استفاده کنید.
همچنین مواقعی وجود دارد که می‌خواهید محتوا را به انتهای یک فایل دوردست موجود اضافه کنید (append). می‌توانید این کار را با استفاده از پرچم «-A» انجام دهید؛ به عنوان مثال

put -A log11.txt

در صورت وجود فایلی به نام «log11.txt» روی سرور دوردست، محتوا به انتهای آن الحاق خواهد شد.
کار دیگری که می‌توانید انجام دهید، حذف فایل محلی پس از بارگذاری آن است. برای انجام این کار از پرچم D دوگانه، مانند «put -DD» استفاده کنید.
دستور put امکان ارسال کل درخت‌های دایرکتوری را نیز به شما می‌دهد. این قابلیت باید روی تمام سیستم‌های دوردست کار کند، بنابراین می‌توانید دستور «put -R» را همراه با یک دایرکتوری اجرا کنید تا آن دایرکتوری و محتویاتش بارگذاری شوند.
دایرکتوری کاری جاری دوردست را چاپ می‌کند. بخشی از نام مسیر در خط اعلان (prompt) شل نیز نمایش داده می‌شود.
طبیعتاً هنگامی که کار با برنامه پایان یافت، عبارت quit را برای خروج از برنامه وارد کنید (همچنین می‌توانید از bye، exit، یا ^D استفاده کنید).
از این دستور می‌توان برای ارسال مستقیم یک فرمان پروتکل FTP به سرور دوردست استفاده کرد. به‌طور کلی این دستور برای کاربران عادی کاربرد چندانی ندارد. اگر نیاز دارید نام یک فایل دوردست را تغییر دهید، می‌توانید از دستور rename استفاده کنید؛ مانند:

rename SPHYGMTR.TAR sphygmomanometer-2.3.1.tar

یک درخواست راهنما به کارساز دوردست می‌فرستد. اغلب فهرستی از دستورهای FTP Protocol چاپ می‌شود، و گاهی اطلاعات مفید دیگری نیز ارائه می‌شود؛ مانند نحوهٔ دسترسی به مدیر سایت.
بسته به کارساز دوردست، ممکن است بتوانید پارامتری را نیز به کارساز بدهید؛ مانند:

rhelp NLST

پاسخ یک کارساز:

Syntax: NLST [ <sp> path-name ]

اگر نیاز دارید فایلی را در سیستم دوردست حذف کنید، می‌توانید دستور rm را امتحان کنید. در بیشتر مواقع به دلیل نداشتن مجوزهای دسترسی مناسب، این کار انجام نخواهد شد. این دستور هیچ پرچمی نمی‌پذیرد، بنابراین نمی‌توانید با استفاده از پرچم‌های «-rf» کل یک درخت دایرکتوری را حذف کنید، برعکس آنچه در UNIX امکان‌پذیر است.
به‌طور مشابه، دستور rmdir یک دایرکتوری را حذف می‌کند. بسته به کارساز دوردست، ممکن است بتوانید یک دایرکتوری غیرخالی را نیز حذف کنید، بنابراین مراقب باشید.
این دستور به شما امکان می‌دهد برخی متغیرهای برنامه را پیکربندی کنید که در بین دفعات اجرا، در فایل $HOME/.ncftp/prefs ذخیره می‌شوند. نحو پایه به صورت زیر است:

set <option> <value>

برای نمونه، جهت تغییر مقداری که برای گذرواژهٔ ناشناس استفاده می‌کنید، می‌توانید این کار را انجام دهید:

set anon-password devnull@example.com

برای مشاهدهٔ فهرستی از مواردی که می‌توانید تغییر دهید، بخش بعدی را ببینید.
این دستور به شما امکان می‌دهد متغیرهای برنامه را مشاهده کنید. می‌توانید از «show all» برای نمایش همهٔ آن‌ها استفاده کنید، یا نام یک متغیر را وارد کنید تا فقط همان یک مورد نمایش داده شود؛ مانند:

show anon-password

یکی از دستورهای کم‌تر شناخته‌شده که ممکن است روزی مجبور به استفاده از آن شوید، site است. پروتکل FTP Protocol امکان استفاده از دستورهای «مختص سایت» (site specific) را فراهم می‌کند. البته این دستورهای «site» متفاوت هستند؛ مانند:

site chmod 644 README

در واقع، دستور chmod در ncftp دقیقاً کار بالا را انجام می‌دهد.
یکی از این دستورها را اجرا کنید تا ببینید کارساز دوردست از چه مواردی پشتیبانی می‌کند (در صورت وجود):

rhelp SITE
site help

ممکن است در طول یک نشست با کارساز، نیاز به تغییر نوع انتقال داشته باشید. می‌توانید از دستور type برای این کار استفاده کنید. یکی از این موارد را امتحان کنید:

type ascii
type binary
type image

دستور ascii معادل «type a» است، و دستور binary معادل «type i» و «type b» می‌باشد.
مقدار umask فرایند را در کارساز دوردست تنظیم می‌کند، در صورتی که کارساز مفهومی از umask داشته باشد؛ مانند:

umask 077

با این حال، این یک دستور استاندارد نیست، بنابراین ممکن است کارسازهای دوردست FTP از آن پشتیبانی نکنند.
این دستور اطلاعاتی را دربارهٔ نگارش ویژه‌ای از برنامه که استفاده می‌کنید و نحوهٔ نصب آن روی سیستمتان نمایش می‌دهد.
گذرواژه‌ای را که هنگام ورود ناشناس (anonymous) استفاده می‌شود، مشخص می‌کند. رسم معمول در اینترنت به نشانه احترام به مدیر پایگاه، استفاده از نشانی رایانامه (E-mail) شما بوده است. اگر این مقدار را تغییر می‌دهید، به یاد داشته باشید که برخی از پایگاه‌ها نشانی‌های رایانامه معتبر را الزامی می‌دانند (یعنی آن‌ها را بررسی می‌کنند).
اکنون NcFTP نسخه ۳ به‌طور پیش‌فرض زمانی که قصد بارگیری فایلی را دارید که از قبل به صورت محلی وجود دارد، یا بارگذاری فایلی که از قبل روی سرور دوردست موجود است، از کاربر سؤال می‌پرسد. نسخه‌های قدیمی‌تر برنامه به‌طور خودکار حدس می‌زدند که فایل موجود را بازنویسی کنند یا تلاش کنند ادامه دریافت را از جایی که متوقف شده بود از سر بگیرند، اما گاهی اوقات برنامه اشتباه حدس می‌زد. اگر ترجیح می‌دهید برنامه همیشه خود حدس بزند که چه اقدامی انجام دهد، این متغیر را روی yes، تنظیم کنید، در غیر این صورت آن را روی no باقی بگذارید تا برنامه همواره درباره اقدام مورد نظر از شما سؤال کند.
اگر روی فهرستی از پسوندها که با نویسه خط عمودی (pipe) از یکدیگر تفکیک شده‌اند تنظیم شود، فایل‌های دارای این پسوندها در حالت ASCII ارسال خواهند شد، حتی اگر حالت باینری (binary) در حال حاضر فعال باشد. این گزینه به شما امکان می‌دهد بیشتر فایل‌ها را به صورت باینری انتقال دهید، به استثنای چند نوع فایل شناخته‌شده که باید در حالت ASCII فرستاده شوند. این گزینه به‌طور پیش‌فرض فعال است و بر روی فهرستی از پسوندهای رایج (مانند .txt و .html) تنظیم شده است.
با انتشار نسخه ۳ از NcFTP، برنامه با نشانک‌ها (bookmarks) رفتاری شبیه‌تر به مرورگر وب خواهد داشت؛ بدین معنا که به محض نشانک‌گذاری یک پایگاه، دایرکتوری دوردست ثابت می‌ماند. اگر این متغیر را روی yes تنظیم کنید، برنامه به‌طور خودکار دایرکتوری دوردستِ آغازین نشانک را با دایرکتوری‌ای که هنگام بستن پایگاه در آن حضور داشتید به‌روزرسانی می‌کند. این رفتار بیشتر شبیه نسخه ۲ برنامه NcFTP خواهد بود.
به‌طور پیش‌فرض، هنگامی که قرار است پایگاهی که نشانک‌گذاری نکرده‌اید بسته شود، برنامه از شما تأیید می‌خواهد. برای غیرفعال کردن این پرسش، می‌توانید این متغیر را روی no تنظیم کنید.
نسخه‌های قبلی برنامه برای تمامی موارد از یک مقدار مهلت زمانی (timeout) واحد استفاده می‌کردند. اکنون می‌توانید مقادیر متفاوتی برای عملیات‌های گوناگون داشته باشید. با این حال، احتمالاً نیازی به تغییر این مقادیر از حالت پیش‌فرض نخواهید داشت مگر آنکه نیازمندی‌های خاصی داشته باشید.
متغیر connect-timeout مدت زمان انتظار (به ثانیه) را برای برقراری کامل یک اتصال پیش از قطع امید از آن کنترل می‌کند. می‌توانید با تنظیم این مقدار بر روی -1 مهلت زمانی را به کلی غیرفعال کنید.
این تایمری است که هنگام ارسال یک دستور FTP از طریق اتصال کنترلی توسط ncftp به سرور دوردست استفاده می‌شود. اگر سرور ظرف این تعداد ثانیه پاسخ ندهد، نشست از دست رفته تلقی می‌شود.
این متغیر مشخص می‌کند لاگ انتقال ($HOME/.ncftp/log) حداکثر تا چه اندازه‌ای (بر حسب کیلوبایت) می‌تواند رشد کند. مقدار پیش‌فرض 200 (به معنای ۲۰۰ کیلوبایت) است؛ اگر مایل به ثبت لاگ نیستید، این مقدار را 0 بگذارید.
این برنامه بیرونی جهت مشاهده فایل‌های متنی است که به‌طور پیش‌فرض more می‌باشد.
این متغیر رفتار ncftp را برای اتصالات داده (data connections) کنترل می‌کند و می‌تواند یکی از مقادیر on، off یا پیش‌فرض، optional باشد. هنگامی که حالت passive فعال باشد، ncftp از دستور پایه پروتکل FTP یعنی PASV استفاده می‌کند تا کلاینت اتصالات داده را با سرور برقرار سازد. رفتار پیش‌فرض پروتکل FTP استفاده از دستور پایه PORT است که باعث می‌شود سرور اتصالات داده را با کلاینت برقرار نماید. تنظیم پیش‌فرض این متغیر، یعنی optional، به ncftp اجازه می‌دهد هر روشی را که لازم می‌داند برگزیند.
می‌توانید نحوه نمایش وضعیت انتقال فایل توسط برنامه را تغییر دهید. از میان نشانگرهای 2، 1 یا 0 انتخاب کنید.
هنگامی که میزبانی مشغول یا در دسترس نباشد، برنامه به مدت این تعداد ثانیه پیش از تلاش دوباره منتظر می‌ماند. کمترین مقداری که می‌توانید تعیین کنید ۱۰ ثانیه است -- بنابراین اگر قصد زیاده‌روی داشتید، تجدید نظر کنید.
اگر این متغیر را روی yes تنظیم کنید، برنامه گذرواژه‌ها را همراه با نشانک‌هایی که ذخیره می‌کنید نگهداری خواهد کرد. اگرچه این کار ورودهای غیرناشناس را آسان‌تر می‌سازد، اما می‌تواند بسیار خطرناک باشد چرا که اطلاعات حساب شما در فایل $HOME/.ncftp/bookmarks قرار می‌گیرد. گذرواژه‌ها به صورت متن ساده (clear text) نیستند، اما اگر کسی اراده کند، رمزگشایی آن‌ها همچنان بسیار ساده خواهد بود.
show-status-in-xterm-titlebar
اگر روی yes تنظیم شده باشد و برنامه از درون پنجره xterm اجرا شود، برنامه نوار عنوان پنجره را متناسب با آن تغییر می‌دهد.
اگر سیستم‌عامل شما از پنجره‌های بزرگ TCP (TCP Large Windows) پشتیبانی می‌کند، می‌توانید این متغیر را روی تعداد بایت‌هایی که می‌خواهید برای بافر سوکت TCP/IP تنظیم شود، قرار دهید. این گزینه کاربرد چندانی نخواهد داشت مگر اینکه سرور دوردست نیز از اندازه‌های پنجره بزرگ پشتیبانی کرده و با فعال‌سازی آن‌ها از پیش پیکربندی شده باشد.
این تایمر مدت زمان انتظار برای تکمیل بلوک‌های داده را کنترل می‌کند. این مقدار را بیش از حد کم تنظیم نکنید، در غیر این صورت انتقال‌های شما بدون به پایان رسیدن، با خطای مهلت زمانی (timeout) متوقف می‌شوند.

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

راه حل ممکن است به سادگیِ تنظیم ncftp برای استفادهٔ انحصاری از حالت passive باشد، که می‌توانید آن را از خط فرمان ncftp به این صورت انجام دهید:


set passive on

دلیل این امر آن است که بسیاری از فایروال‌ها اجازهٔ برقراری اتصالات ورودی به سایت را نمی‌دهند، اما به کاربران اجازه می‌دهند که اتصالات خروجی برقرار کنند. یک اتصال دادهٔ passive توسط کلاینت به سمت سرور برقرار می‌شود، در حالی که در حالت پیش‌فرض، سرور اتصال را به سمت کلاینت برقرار می‌کند، که ممکن است فایروال‌ها آن را مسدود کنند. البته، ممکن است با سایت‌هایی که سرورهای FTP قدیمی آن‌ها از حالت passive پشتیبانی نمی‌کنند، دچار مشکل شوید.

در غیر این صورت، اگر می‌دانید که نیاز است ncftp مستقیماً با یک فایروال یا پروکسی ارتباط برقرار کند، می‌توانید فایل پیکربندی جداگانهٔ $HOME/.ncftp/firewall را ویرایش کنید. این فایل در نخستین باری که برنامه را اجرا می‌کنید به طور خودکار ایجاد می‌شود و شامل تمام اطلاعاتی است که برای کارکرد برنامه در این شرایط نیاز دارید.

اصول این فرآیند عبارت است از پیکربندی یک میزبان فایروال (پروکسی) برای عبور از آن، یک حساب کاربری و گذرواژه جهت احراز هویت در فایروال، و تعیین نوع روش فایروال برای استفاده. شما همچنین می‌توانید یک فهرست استثنا تنظیم کنید تا ncftp برای میزبان‌های موجود در شبکهٔ محلی از فایروال استفاده نکند.

$HOME/.ncftp/bookmarks
اطلاعات نشانک‌ها و میزبان‌ها را ذخیره می‌کند.
$HOME/.ncftp/firewall
فایل پیکربندی دسترسی به فایروال.
$HOME/.ncftp/prefs
ترجیحات برنامه.
$HOME/.ncftp/trace
خروجی اشکال‌زدایی برای کل مدت اجرای برنامه.
$HOME/.ncftp/v3init
برای تشخیص اینکه آیا این نسخه از برنامه پیش‌تر اجرا شده است یا خیر استفاده می‌شود.
$HOME/.ncftp/spool/
دایرکتوری‌ای که کارهای پس‌زمینه در قالب فایل‌های پیکربندی spool در آن ذخیره می‌شوند.
$HOME/.ncftp/spool/log
اطلاعات مربوط به فرآیندهای انتقال داده در پس‌زمینه.

مسیر جستجوی کاربر، برای یافتن برنامهٔ ncftpbatch، صفحه‌بندی‌کننده (pager) و برخی ابزارهای سیستمی دیگر استفاده می‌شود.
برنامه‌ای که برای مشاهدهٔ فایل‌های متنی به صورت صفحه به صفحه استفاده می‌شود.
اگر برنامه با پشتیبانی از GNU Readline کامپایل شده باشد، باید بداند چگونه ترمینال را برای ویرایش خط و موارد مشابه به درستی مدیریت کند. برنامهٔ صفحه‌بندی نیز از این تنظیم بهره خواهد برد.
به صورت پیش‌فرض، برنامه داده‌های پیکربندی خود را در زیردایرکتوری .ncftp از دایرکتوری HOME می‌نویسد.
در صورت تنظیم، برنامه به جای $HOME/.ncftp، از این دایرکتوری استفاده خواهد کرد. این متغیر اختیاری است، به جز برای کاربرانی که دایرکتوری خانگی آن‌ها دایرکتوری ریشه (root) است.
هر دو دستور داخلی ls و دستور خارجی ls برای تعیین تعداد ستون‌های نمایشگر ترمینال به این متغیر نیاز دارند.

هیچ سایتی با نام‌های bowser.nintendo.co.jp یا sphygmomanometer.unl.edu وجود ندارد.

قابلیت ادامهٔ خودکار (Auto-resume) باید به جای اتکای صرف به اندازهٔ فایل‌ها، مهر زمانی فایل‌ها را بررسی کند، اما انجام مطمئن این کار درون پروتکل FTP دشوار است.

حافظه‌نهان دایرکتوری و بارگیری‌های بازگشتی به رفتار UNIX-like (شبه‌یونیکسی) میزبان دوردست وابسته هستند.

Mike Gleason, NcFTP Software (http://www.ncftp.com).

ncftpput(1), ncftpget(1), ncftpbatch(1), ftp(1), rcp(1), tftp(1).

LibNcFTP (http://www.ncftp.com/libncftp).

NcFTPd (http://www.ncftp.com/ncftpd).

با تشکر از همهٔ کسانی که از این برنامه استفاده می‌کنند. حمایت شما همان چیزی است که به من برای بهبود برنامه انگیزه می‌دهد!

از Dale Botkin و Tim Russell در ارائه‌دهنده خدمات اینترنتی (ISP) سابقم، Probe Technology، تشکر می‌کنم.

ایده‌ها و بخشی از کد توسط همکارم، Phil Dietz، ارائه شد.

با تشکر از Brad Mittelstedt و Chris Tjon برای پیشبرد و بهبود توسعهٔ ستون فقرات این پروژه، LibNcFTP.

مایلم از مدیران سیستم سابقم، به‌ویژه Charles Daniel، تشکر کنم که آزمایش روی پلتفرم‌های گوناگون را ممکن ساختند، مقداری فضای دیسک اضافی در اختیارم گذاشتند و سایت FTP مربوط به UNL را نگهداری کردند.

برای آزمایش نسخه‌های ۱ و ۲ فراتر از حد انتظار و وظیفه، به‌طور ویژه سپاسگزار افراد زیر هستم: Phil Dietz، Kok Hon Yin و Andrey A. Chernov (ache@astral.msk.su).

با تشکر از Tim MacKenzie (t.mackenzie@trl.oz.au) برای کد اولیهٔ تکمیل خودکار نام فایل برای نسخهٔ 2.3.0 و 2.4.2.

با تشکر از DaviD W. Sanderson (dws@ora.com) بابت کمک به من در نگارش صفحهٔ راهنما (man page).

با تشکر از همهٔ شما در UNL که قدردان کار من هستید.

با تشکر از Red Hat Software برای احترام به توافق‌نامهٔ مجوز من، و مهم‌تر از آن، بابت ارائهٔ یک بستر توسعهٔ پایدار و مقرون‌به‌صرفه.

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

از Phil، بابت این‌که اوضاع آن‌طور که باید پیش نرفت.

NcFTP Software ncftp.SH