۲ مطلب با موضوع «رایانه» ثبت شده است

این مطلب یک برگردان از انگلیسی به فارسی است.

عنوان اصلی مطلب: Guerilla open access manifesto

نویسنده: آرون شوارتز (Aaron Swartz)

مترجم: متین غلامی

متن اصلی بیانیه: {لینک}

دانلود: {دانلود PDF بیانیه دسترسی آزاد چریکی}

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

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

چه بهای سنگینی! دانشگاهیان را مجبور کنند برای مطالعه‌ی آثار همکارانشان هزینه پرداخت کنند؟ همه‌ی کتابخانه‌ها را اسکن کنند اما فقط به کارکنان گوگل اجازه‌ی مطالعه بدهند؟ مقالات علمی را در اختیار آن‌هایی که در برترین دانشگاه‌ها هستند قرار دهند اما از کودکانِ جهان جنوب سلب کنند؟ این رفتار ظالمانه و غیر قابل قبول است.

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

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

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

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

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

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

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

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

آرون شوارتز
ژولای ۲۰۰۸، اِرِمو، ایتالیا

در این مطلب که بیشتر برای ارجاع خودم در آینده آماده شده شیوه‌ی مدیریت فایل‌ها در ترمینال را تشریح می‌کنم.

چرا باید از ترمینال بریم سراغ فایل‌ها؟

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

  • گاهی اوقات فایل منیجر در دسترس نیست؛ مثلا وقتی با SSH به یه دسکتاپ یا سرور وصل می‌شیم یا وقتی برنامه فایل منیجر رو دسکتاپ نداریم یا اینکه مشکلی داره!
  • اجرای بعضی دستورات در فایل منیجر ممکن نیست یا گاهی وقت‌گیره (مثلا دریافت لیست کامل محتویات دایرکتوری و ساب‌دایرکتوری‌ها یا جستجو در فایل‌ها)

توضیحات این صفحه به هیچ عنوان کامل نیست :) من فقط نکاتی که به نظرم کاربردی بودن رو اینجا گفتم.

۱- نمایش فهرست فایل‌ها و دایرکتوری‌ها در ترمینال

قاعدتا اولین دستور ls هست برای فهرست کردن فایل‌های موجود. برای نمایش توضیحات این دستور، ls --help رو وارد می‌کنیم اما آرگیومنت‌های پرکاربرد این‌ها هستن:

آرگیومنت توضیحات
 -l نمایش هر فایل در یک خط با توضیحات اضافه شامل نوع فایل، دسترسی‌ها، اندازه فایل‌ها و زمان آخرین ویرایش
 -F نمایش / در انتهای نام دایرکتوری‌ها
 -S مرتب سازی بر اساس اندازه فایل از بزرگترین به کوچک‌ترین
 -r برعکس کردن ترتیب فایل‌ها
 -lh نمایش سایز فایل‌ها در فرمت قابل خوانش (مگابایت، گیگابایت و...)
 -a نمایش فایل‌ها و دایرکتوری‌های مخفی (که نامشان با . شروع می‌شود)
 -R نمایش فایل‌های موجود در ساب‌دایرکتوری‌ها

معمولا دستور زیر یه خروجی مناسب و کاربردی بهم می‌ده:

ls -lha

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

ls -lharFRS > ~/list.txt

۲- تغییر دایرکتوری در ترمینال

برای تغییر دایرکتوری از cd استفاده می‌کنیم :) توضیحات خاصی نداره!

  • cd به تنهایی ما رو به user home directory منتقل می‌کنه
  • cd ~ هم باز ما رو به user home directory هدایت می‌کنه اما اگه بعد از ~ یه یوزرنیم وارد کنیم به home directory مربوط به همون کاربر منتقل می‌شیم
  • cd - ما رو به آخرین دایرکتوری برمی‌گردونه! مثلا اگه در  /home/usr/Downloads باشیم بعد دستور cd ~/Music رو بزنیم به /home/usr/Music منتقل می‌شیم و حالا با cd - به /home/usr/Downloads برمی‌گردیم.

۳- جستجو در فایل‌ها در ترمینال

در استفاده از این دستور مراقب باشید، مثلا find ~ -delete می‌تونه همه‌ی فایل‌های شخصی رو حذف کنه!

کلیت دستور find به این شکله:

find [options] [path] [expression]

که در options تعریف می‌کنیم چه رفتاری با پیوندهای نمادین (symbolic links) داشته باشه؟ بعد در path تعریف می‌کنیم که جستجو رو باید از کجا شروع کنه؟ و نهایتا در expression تعریف می‌کنیم که دنبال چه چیزی بگرده و باهاش چه کار کنه؟

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

در بخش options

در این بخش رفتار مطلوب در مقابل symbolic links رو تعریف می‌کنیم.

 -P حالت پیش‌فرض: پیوندهای نمادین را دنبال نکرده و اطلاعات مربوط به خودِ پیوند مرجع می‌شود.
 -L همواره پیوند نمادین را دنبال کرده و هم‌چنین اطلاعات مربوط به مقصد پیوند مورد ارجاع قرار گیرد.
 -H پیوند نمادین را دنبال نمی‌کند اما برای دستورات CLI، اطلاعات مقصد پیوند مرجع خواهند بود.
 -D چاپ موارد مربوط به دیباگ برنامه‌ی find

در بخش expression

عمده دستکاری‌های ما در این بخش هستند! اینجا تعریف می‌کنیم دنبال چه فایلی می‌گردیم یا چه بلایی می‌خوایم سرش بیاریم :)

نکته: هر کجا از عدد در دستور استفاده کنیم می‌تونیم + یا - قبل از عدد بیاریم که به معنای بیش‌تر یا کم‌تر از اون عدد خواهد بود.

جستجو بر اساس نام یا پسوند فایل در ترمینال

 -name []

جستجو بر اساس نام یا پسوند با حساسیت به حروف کوچک و بزرگ

 -iname []

جستجو بر اساس نام یا پسوند بدون حساسیت به حروف کوچک و بزرگ
find ~ -name name.txt
find ~ -iname name.txt
find ./ -name "*name*"
find ./ -iname "*name*"
find ./ -name "*.ext"
find ./ -iname "*.ext"

جستجو بر اساس سایز فایل در ترمینال

 -size n

جستجو بر اساس سایز

ما می‌تونیم برای سایز واحد تعریف کنیم: c برای بایت؛ k برای کیلوبایت؛ M برای مگابایت و G برای گیگابایت.

تمام فایل‌هایی که دقیقا ۱ گیگابایت حجم دارند
find -type f -size 1G
فایل‌هایی با پسوند txt که بیش از ۵۰ کیلوبایت حجم دارند
find -type f -name '*.txt' -size +50k
فایل‌هایی با حجم بین ۵ تا ۱۵ مگابایت در دانلودها
find ~/Downloads -type f -size +5M -size -15M

جستجو و حذف فایل‌ها و دایرکتوری‌ها در ترمینال

 -delete

حذف فایل‌های یافت شده!

دقت کنید که چون find از چپ به راست اجرا می‌شه -delete رو همیشه در انتها قرار بدین.

حذف فایل‌ها و دایرکتوری‌های خالی
find ~ -empty -delete
حذف تمام فایل‌ها در پوشه دانلودها و نه ساب‌دایرکتوری‌ها
find ~/Downloads -type f -maxdepth 0 -delete
حذف هر فایلی با نام test.txt در دانلودها و ساب‌دایرکتوری‌ها
find ~/Downloads name test.txt -delete

جستجوی فایل و اجرای دستور در ترمینال

ما می‌تونیم از find بخوایم هر دستوری (خارج از تعریفات خود برنامه) روی فایل‌های یافت شده اجرا کنه:

 -exec command {} \; اجرای command روی فایل‌ها و دایرکتوری‌های یافت شده بدون کسب اجازه
 -ok command {} \; اجرای command روی فایل‌ها و دایرکتوری‌های یافت شده با کسب اجازه

پیشنهاد می‌کنم همیشه قبل از اجرای هر دستوری روی فایل‌ها اول یه بار دستور ls رو اجرا کنید تا لیستی از فایل‌هایی که قراره تغییر کنن ببینید و احتمال اشتباه کم‌تر بشه:

find -exec ls {} \;

چند مثال تکمیلی:

تغییر مجوز دسترسی به تمام فایل‌های .php در دایرکتوری /var/www و ساب‌دایرکتوری‌ها:

find /var/www -iname '*.php' -exec chmod 664 {} \;

جابجا کردن تمام فایل‌های .PDF از دایرکتوری دانلودها (و نه ساب‌دایرکتوری‌ها) به /home/PDFs:

find ~/Downloads -iname '*.pdf' -exec mv {} /home/PDFs/ \;

حذف فایل‌های خالی با دستور rm:

find ~ -type f -empty -ok rm {} \;

حذف فایل‌های با حجم بالاتر از ۲ گیگابایت با کسب اجازه:

find ~ -type f -size +2G -ok rm{} \;

یافتن تمام فایل‌ها به جز فایل‌های .png در دانلودها و ذخیره سازی نتیجه در یک فایل txt:

find ~/Downloads -type f -not -iname '*.png' > ~/myfile.txt
find ~/Downloads -type f -not -iname '*.png' -fls ~/myfile.txt

۴- باز کردن فایل از ترمینال

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

xdg-open '~/Downloads/file.txt' => text editor

xdg-open 'https://matinu.ir' => Browser