نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
نوشته‌های ترمینالی
#terminal به عنوان دستور اول، برخلاف آموزش‌های سنتی ترمینال که ls و cd رو می‌گن، میخوام دستور shutdown رو بگم. اسم دستور که خب shutdown هست و مشخصه که سیستم رو خاموش می‌کنه. اگه همینطوری بزنید shutdown میاد و ۶۰ ثانیه بعد حاموش می‌کنه سیستم رو یعنی پیش‌فرض…
#terminal
خب امشب دستور cal رو بررسی می‌کنیم. این دستور همونطور که از اسمش مشخصه کار تقویم رو برامون انجام می‌ده. توی استفاده ازش می‌تونه خیلی انعطاف نشون بده (بخونید گزینه‌های زیاد داشته باشه) ولی می‌تونیم در حد کاری که با ویجت های موبایلمون می‌کردیم رو ازش بخوایم.
به راحتی کافیه که دستور cal رو بزنیم و تقویم ماه جاری رو بهمون نشون بده. (البته ماه میلادی، در مورد شمسی هم آخرش صخبت می کنم.)
اگر بخوایم به جای تقویم فعلی یه ماه/سال دیگه رو نشون بده می‌تونیم این کارو کنیم:
برای سال:
cal 2020
کل سال ۲۰۲۰ رو نشون می‌ده. یعنی ۱۲ ماه که توی ۴ سطر (۴خط) از هم جدا شدن و واقعا خوانا و خوبه.
اگر یه ماه دیگه رو خواستید باید ماه و سال رو (به همین ترتیب، اول ماه بعد سال) بزنید. یعنی مثلا برای ماه ۴ از سال ۲۰۲۰ می‌‌زنیم:
cal 4 2020
و اون ماه رو میاره برامون.

می‌تونیم به همین روند روز رو هم اضافه کنیم. مثلا اگر بگیم
cal 2 2 2019
میاد اون روز خاص رو هایلایت می‌کنه تا با یه نگاه بفهمیم کدوم روزه، مثلا برای اینکه ببینیم قلان تاریخ چند شنبه‌س می‌تونه خوب باشه.
نوشته‌های ترمینالی
#terminal خب امشب دستور cal رو بررسی می‌کنیم. این دستور همونطور که از اسمش مشخصه کار تقویم رو برامون انجام می‌ده. توی استفاده ازش می‌تونه خیلی انعطاف نشون بده (بخونید گزینه‌های زیاد داشته باشه) ولی می‌تونیم در حد کاری که با ویجت های موبایلمون می‌کردیم رو…
اما برای تاریخ شمسی چی؟
اقای قاسمی یه ابزار با رابط مشابه cal نوشتن با نام jcal

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

مثال ها:
ماه فعلی:
jcal

سال ۱۴۰۰:
jcal 1400

ماه شهریور سال ۱۳۹۹:
jcal 1399 6


برای نصب باید خودون دست به آچار بشید.

اینک لینک گیتهابشه:
https://github.com/ashkang/jcal
بعد که کلون کردید وارد پوشه sources بشید راهنمای نصب رو داره. (۲ تا دستوره کلا ولی خب)

توضیحات بیشتر رو می‌تونید اینجا ببینید:
https://www.nongnu.org/jcal/
#terminal
خب دستور امروز date هست. به رابطه تنگاتنگی با cal داره.
اگر ساده بخوام بگم اینه که زمان فعلی + تاریخ سیستم رو نشون میده.
ولی خب توی اسکریپت ها خیلی به کار میاد. می‌تونه با فرمت‌های خیلی گوناگون و کاستومی نشون بده. می‌تونه هم از روی string یا فایل یه تاریخ رو بسازه (یعنی به تاریخ فعلی محدود نیست)

مثال‌هاش:
نمایش تاری فعلی:
date

زمان گرینویچ رو نشون می‌ده
date -u


حفت دستور‌ها، ساخت date از روی یه استرینگ که مثلا اینچا ۲ feb ۲۰۱۰ رو نشون میده.
date --date="2/02/2010"
date --date="Feb 2 2010"


تبدیل epoch به تاریخ: (اون عدد بزرگه ثانیه‌های گذشته از 1/1/1970 هست.
date --date='@2147483647'

یا حتی تبدیل های خفن تر مثل next year و tomorrow و اینا رو می‌فهمه!

برای فرمت کردنش هم توی man page ش بخونید اگه براتون جالب بود.
اینجا هم جالبه
https://www.geeksforgeeks.org/date-command-linux-examples/
نمونه jdate
#terminal
امروز دستور سادهٔ free رو بررسی می‌کنیم.
این دستور مقدار کل رم، مقدارِ رمِ مصرفی و رمِ خالیِ سیستم رو نشون می‌ده. راه منطقی‌ایه که ببینید حال سیستم چطوره بدون اینکه یه تسک منیجر سنگین باز کنید، فقط اون اطلاعاتی که می‌خواید رو به دست بیارید.

دستور:
free
اگرم خواستید (که ترجیحا بخواید) به جای اینکه با واحد بایت نشون بده، یه جور "آدم‌وار" با واجد مگابایت و گیگابایت نشون بده کافیه -h رو بهش بدید یعنی:
free -h
نوشته‌های ترمینالی
#terminal امروز دستور سادهٔ free رو بررسی می‌کنیم. این دستور مقدار کل رم، مقدارِ رمِ مصرفی و رمِ خالیِ سیستم رو نشون می‌ده. راه منطقی‌ایه که ببینید حال سیستم چطوره بدون اینکه یه تسک منیجر سنگین باز کنید، فقط اون اطلاعاتی که می‌خواید رو به دست بیارید. دستور:…
خروجی این دستور چند تا قسمت داره که بذارید توضیح بدم، برای خودم جالب بودن:
وقتی اجرا می‌کنید یه همچین چیزی می‌بینید.
total used free shared buff/cache available
Mem: 15Gi 2.0Gi 10Gi 201Mi 3.1Gi 13Gi
Swap: 0B 0B 0B

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


بخش دوم: used
اون مقداری که توسط برنامه‌ها استفاده شده و همه‌جای دنیا هم به ram usage شناخته می‌شه و چیز حاصی نیست. مثلا اگر من کلی برنامه باز کنم این عددش از ۲ گیگ (الانم کلی برنامه باز دارم البته) می‌رسه به ۴ گیگ یا مثلا اگر اندروید استودیو یا یه ide دیگه باز کنم تا ۱۰ گیگ می‌رسه مثلا.


بخش ششم: available
چرا از بخش دو رفتم شش؟ می بینیم.
این در واقع برعکس used هست. چیزی که استفاده نشده در دسترسه دیگه؟ منطقیه؟ در دسترس یعنی اینکه اونقدر فضا هست برای اینکه اگه برنامه باز کنید در اختیارتون قرار بده. جمع available+used میشه total


بخش سوم: free
این مقدار رمی هست که در حال حاظر خالیه، یعنی چیزی روش نوشته نشده.
می‌پرسین اقا فرق available و used چیه؟ فرقش توی buff/cache هست.

بخش پنجم: buff/cache
این واقعا از ۲ قسمت مختلف buffer و cache تشکیل شده و اگر -w بزنید می‌تونید ببینیدش ولی مهم نیست. مهم اینه که بدونید این قسمت اگرچه توی رم نوشته شده و یه سری اطلاعاته ولی مال خود سیستم‌عامله و برای سریع‌تر کار کردن ازشون استفاده می‌کنه. همچنین آماده‌ست که اگر لازمش داشتید خودکار خالیش کنه و به برنامه‌های شما تخصیصش بده.
جمع buf/cache + used میشه کل رمی که نوشته نشده، یعنی مکملِ free.
یا به عبارتی buff/cache+ used + free میشه total

سوال: اقا ما که ۲ گیگ رم استفاده کردیم× چرا ۳ گیگ دیگه خودش گرفته؟ مسخره اونیم مگه؟ اگه می‌تونه استفاده نکنه خب نکنه.
جواب: شما خودت شخصا از رم چه استفاده‌ای داری که می‌خوای خالی باشه؟ خب کل سیستم از جمله رم رو سپردی دست سیستم‌عامل، بذار استفاده کنه دیگه. اگه قراره از رمت برای سریع‌تر کار کردن استفاده بشه چه اشکالی داره؟



بخش آخر: swap
اینکه swap چیه داستان مفصلیه ولی یه قسمت روی "هارد دیسک" هست که به جای رم استفاده میشه و طبیعتا کندتره و اولویت اینه که استفاده نشه. باید موقع نصب سیستم‌عامل بگید چند گیگ برای اینکار اختصاص داده بشه و من اصلا اختصاص ندادم پس عددش صفره.
اقای مخابرات به نظرم سرعت دانلود باید 8 برابر اپلود باشه.
Channel name was changed to «نوشته های ترمینالی»
#terminal
امروزم یه دستور بدیهی رو می‌خوایم یاد بگیریم.
دستور clear
همونطور که از اسمش مشخصه، میاد صفحه ترمینال رو پاک می‌کنه.

حالا ۲ مدل پاک کردن صفحه داریم.
یکی اینکه میاد اینقدر اینتر میزنه که نوشته ها همشون برن بالای صفحه و صفحه کاملا خالی بشه
این میشه clear -x

مدل دیگه اینکه که میاد واقعا صفجه رو تمیز می‌کنه و اینتر نمی‌زنه.
فرقشون؟
توی حالت اول (-x) اگر اسکرول کنی بالا باز هم نوشته های قدیمی رو می بینی ولی توی حالت دوم نمی‌بینی.

خیلیامون هم میایم به جای دستور clear از ctrl-l استفاده می‌کنیم. این معادل حالت دوم یعنی clear -x هست و همچنان نوشته‌های قدیمی رو نگه می‌داره.


روش کار clear هم اساسا با ansi escape code ها هست که لینکش رو گذاشتم می‌تونید ببینید.
یه سری کار جالب هم میشه کرد.
اگر خروجی clear رو توی یه فایل بریزیم یا پایپ کنیم به یه ادیتور، همچین چیزی می بینیم.
یا مثلا اگه خروجیش رو بریزیم توی یه فایل مثلا
clear > /tmp/c1

بعد هر موقع اون فایله رو cat کنیم، صفحه برامون پاک میشه :)‌
تجربه: توی سیستم‌عامل آرچ‌لینوکس، وقتی که سیستم رو آپگرید می‌کنید (مثلا با pacman -Syu) اگر این اپدیت شامل کرنل هم باشه،‌ بعد از آپدیت، اگر دستگاه USB جدید (مثل فلش مموری) به سیستم وصل کنید، نمی‌شناسه. باید حتما یه بار ریستارت کنید تا همه چیز درست کار کنه دوباره.

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

https://www.reddit.com/r/archlinux/comments/442g8g/rebooting_after_kernel_update_to_make_the_usb_work/
چند روز پیش داشتم یه چیزی رو ارائه می‌دادم، بعد نیاز داشتم که یه چیزی رو بکشم و ازونجا که نوشتن روی تخته میسر نبود، با کاراکترهای |و - و <- شکلم رو کشیدم که لازم نیست بگم خیلی کار سختی بود.
امروز یه ابزار پیدا کردم با نام tdraw که همین کار رو خیلی مینیمال و دم دستی براتون انجام می‌ده.
https://github.com/aca/tdraw

چند تا mode مختلف داره:
۱− برای کشیدن خط/جعبه
۲− برای رسم فلش
۳− برای نوشتن متن
۴− برای پاک کردن

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