اخلاق نتیجهگرا؟ وظیفهگرا؟
https://www.zoomit.ir/2016/6/6/131659/trolley-dilemma-kill-one-to-save-five/
https://www.zoomit.ir/2016/6/6/131659/trolley-dilemma-kill-one-to-save-five/
زومیت
مساله تراموا: کشتن یک نفر برای نجات پنج نفر؟
مسالهی تراموا یکی از مسائل مهم و البته بحث برانگیز در زمینهی اخلاق و فلسفه به حساب میآید. شرایط این مساله طوری طراحی شده که فرد ناظر باید بین نجات پنج نفر از مرگ یا کشته شدن یک نفر انتخاب کند. با زومیت همراه باشید.
نوشتههای ترمینالی
#terminal به عنوان دستور اول، برخلاف آموزشهای سنتی ترمینال که ls و cd رو میگن، میخوام دستور shutdown رو بگم. اسم دستور که خب shutdown هست و مشخصه که سیستم رو خاموش میکنه. اگه همینطوری بزنید shutdown میاد و ۶۰ ثانیه بعد حاموش میکنه سیستم رو یعنی پیشفرض…
#terminal
خب امشب دستور cal رو بررسی میکنیم. این دستور همونطور که از اسمش مشخصه کار تقویم رو برامون انجام میده. توی استفاده ازش میتونه خیلی انعطاف نشون بده (بخونید گزینههای زیاد داشته باشه) ولی میتونیم در حد کاری که با ویجت های موبایلمون میکردیم رو ازش بخوایم.
به راحتی کافیه که دستور cal رو بزنیم و تقویم ماه جاری رو بهمون نشون بده. (البته ماه میلادی، در مورد شمسی هم آخرش صخبت می کنم.)
اگر بخوایم به جای تقویم فعلی یه ماه/سال دیگه رو نشون بده میتونیم این کارو کنیم:
برای سال:
cal 2020
کل سال ۲۰۲۰ رو نشون میده. یعنی ۱۲ ماه که توی ۴ سطر (۴خط) از هم جدا شدن و واقعا خوانا و خوبه.
اگر یه ماه دیگه رو خواستید باید ماه و سال رو (به همین ترتیب، اول ماه بعد سال) بزنید. یعنی مثلا برای ماه ۴ از سال ۲۰۲۰ میزنیم:
cal 4 2020
و اون ماه رو میاره برامون.
میتونیم به همین روند روز رو هم اضافه کنیم. مثلا اگر بگیم
cal 2 2 2019
میاد اون روز خاص رو هایلایت میکنه تا با یه نگاه بفهمیم کدوم روزه، مثلا برای اینکه ببینیم قلان تاریخ چند شنبهس میتونه خوب باشه.
خب امشب دستور 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/
اقای قاسمی یه ابزار با رابط مشابه cal نوشتن با نام jcal
هرچیزی که در مورد cal گفتم درسته فقط اینکه تاریخ شمسی رو نشون میده.
برای استفاده هم باید ماه و سال رو برعکس cal وارد کنید. (واقعا نمیدونم چرا)
مثال ها:
ماه فعلی:
jcal
سال ۱۴۰۰:
jcal 1400
ماه شهریور سال ۱۳۹۹:
jcal 1399 6
برای نصب باید خودون دست به آچار بشید.
اینک لینک گیتهابشه:
https://github.com/ashkang/jcal
بعد که کلون کردید وارد پوشه sources بشید راهنمای نصب رو داره. (۲ تا دستوره کلا ولی خب)
توضیحات بیشتر رو میتونید اینجا ببینید:
https://www.nongnu.org/jcal/
GitHub
GitHub - ashkang/jcal: Jalali Calendar Library
Jalali Calendar Library. Contribute to ashkang/jcal development by creating an account on GitHub.
#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/
خب دستور امروز 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/
GeeksforGeeks
How to Display and Set Date and Time in Linux | date Command - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
نوشتههای ترمینالی
#terminal خب دستور امروز date هست. به رابطه تنگاتنگی با cal داره. اگر ساده بخوام بگم اینه که زمان فعلی + تاریخ سیستم رو نشون میده. ولی خب توی اسکریپت ها خیلی به کار میاد. میتونه با فرمتهای خیلی گوناگون و کاستومی نشون بده. میتونه هم از روی string یا فایل…
مثل دستور دیشب، این دستور هم معادل jdate رو برای شمسی داره که باز با همون پکیج jcal نصب میشه و رابطش شبیه همین date هست.
#terminal
امروز دستور سادهٔ free رو بررسی میکنیم.
این دستور مقدار کل رم، مقدارِ رمِ مصرفی و رمِ خالیِ سیستم رو نشون میده. راه منطقیایه که ببینید حال سیستم چطوره بدون اینکه یه تسک منیجر سنگین باز کنید، فقط اون اطلاعاتی که میخواید رو به دست بیارید.
دستور:
free
اگرم خواستید (که ترجیحا بخواید) به جای اینکه با واحد بایت نشون بده، یه جور "آدموار" با واجد مگابایت و گیگابایت نشون بده کافیه -h رو بهش بدید یعنی:
free -h
امروز دستور سادهٔ 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 چیه داستان مفصلیه ولی یه قسمت روی "هارد دیسک" هست که به جای رم استفاده میشه و طبیعتا کندتره و اولویت اینه که استفاده نشه. باید موقع نصب سیستمعامل بگید چند گیگ برای اینکار اختصاص داده بشه و من اصلا اختصاص ندادم پس عددش صفره.
وقتی اجرا میکنید یه همچین چیزی میبینید.
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 برابر اپلود باشه.
اقا من اشتباه کردم. شما درست میگی
#terminal
امروزم یه دستور بدیهی رو میخوایم یاد بگیریم.
دستور clear
همونطور که از اسمش مشخصه، میاد صفحه ترمینال رو پاک میکنه.
حالا ۲ مدل پاک کردن صفحه داریم.
یکی اینکه میاد اینقدر اینتر میزنه که نوشته ها همشون برن بالای صفحه و صفحه کاملا خالی بشه
این میشه clear -x
مدل دیگه اینکه که میاد واقعا صفجه رو تمیز میکنه و اینتر نمیزنه.
فرقشون؟
توی حالت اول (-x) اگر اسکرول کنی بالا باز هم نوشته های قدیمی رو می بینی ولی توی حالت دوم نمیبینی.
خیلیامون هم میایم به جای دستور clear از ctrl-l استفاده میکنیم. این معادل حالت دوم یعنی clear -x هست و همچنان نوشتههای قدیمی رو نگه میداره.
روش کار clear هم اساسا با ansi escape code ها هست که لینکش رو گذاشتم میتونید ببینید.
امروزم یه دستور بدیهی رو میخوایم یاد بگیریم.
دستور clear
همونطور که از اسمش مشخصه، میاد صفحه ترمینال رو پاک میکنه.
حالا ۲ مدل پاک کردن صفحه داریم.
یکی اینکه میاد اینقدر اینتر میزنه که نوشته ها همشون برن بالای صفحه و صفحه کاملا خالی بشه
این میشه clear -x
مدل دیگه اینکه که میاد واقعا صفجه رو تمیز میکنه و اینتر نمیزنه.
فرقشون؟
توی حالت اول (-x) اگر اسکرول کنی بالا باز هم نوشته های قدیمی رو می بینی ولی توی حالت دوم نمیبینی.
خیلیامون هم میایم به جای دستور clear از ctrl-l استفاده میکنیم. این معادل حالت دوم یعنی clear -x هست و همچنان نوشتههای قدیمی رو نگه میداره.
روش کار clear هم اساسا با ansi escape code ها هست که لینکش رو گذاشتم میتونید ببینید.
یا مثلا اگه خروجیش رو بریزیم توی یه فایل مثلا
clear > /tmp/c1
بعد هر موقع اون فایله رو cat کنیم، صفحه برامون پاک میشه :)
clear > /tmp/c1
بعد هر موقع اون فایله رو cat کنیم، صفحه برامون پاک میشه :)
تجربه: توی سیستمعامل آرچلینوکس، وقتی که سیستم رو آپگرید میکنید (مثلا با pacman -Syu) اگر این اپدیت شامل کرنل هم باشه، بعد از آپدیت، اگر دستگاه USB جدید (مثل فلش مموری) به سیستم وصل کنید، نمیشناسه. باید حتما یه بار ریستارت کنید تا همه چیز درست کار کنه دوباره.
سوال: مگه ویندوزه که بعد آپدیت ریستارت کنیم؟
آپدیت کردن کرنل بدون ریبوت اصولا کار سختیه و توزیعهای مختلف مدلهای مختلفی هندلش میکنن و آرچ اینطوری هندلش میکنه که کل ماژولهای کرنل قبلی رو پاک میکنه (و ماژولهای کرنل جدید رو هم تا ریبوت نکنید نمیریزه) به همین خاطر تا وقتی که ریبوت نکنید اگر دستگاه جدیدی متصل کنید اون رو نمیشناسه ولی خب دستگاههای فعلی بدون مشکل کار میکنن.
https://www.reddit.com/r/archlinux/comments/442g8g/rebooting_after_kernel_update_to_make_the_usb_work/
سوال: مگه ویندوزه که بعد آپدیت ریستارت کنیم؟
آپدیت کردن کرنل بدون ریبوت اصولا کار سختیه و توزیعهای مختلف مدلهای مختلفی هندلش میکنن و آرچ اینطوری هندلش میکنه که کل ماژولهای کرنل قبلی رو پاک میکنه (و ماژولهای کرنل جدید رو هم تا ریبوت نکنید نمیریزه) به همین خاطر تا وقتی که ریبوت نکنید اگر دستگاه جدیدی متصل کنید اون رو نمیشناسه ولی خب دستگاههای فعلی بدون مشکل کار میکنن.
https://www.reddit.com/r/archlinux/comments/442g8g/rebooting_after_kernel_update_to_make_the_usb_work/
reddit
Rebooting after kernel update to make the usb work
Upgrading to kernel 4.4, I noticed that my usb ports didn't work properly right after the kernel update. Searching around, I found this...
چند روز پیش داشتم یه چیزی رو ارائه میدادم، بعد نیاز داشتم که یه چیزی رو بکشم و ازونجا که نوشتن روی تخته میسر نبود، با کاراکترهای |و - و <- شکلم رو کشیدم که لازم نیست بگم خیلی کار سختی بود.
امروز یه ابزار پیدا کردم با نام tdraw که همین کار رو خیلی مینیمال و دم دستی براتون انجام میده.
https://github.com/aca/tdraw
چند تا mode مختلف داره:
۱− برای کشیدن خط/جعبه
۲− برای رسم فلش
۳− برای نوشتن متن
۴− برای پاک کردن
متاسفانه undo نداره و وارد و خارج شدن به مود نوشتن متن یکم تریکیه که سر جای خودش بنویسید ولی به نظرم کاملا قابل استفادهس.
امروز یه ابزار پیدا کردم با نام tdraw که همین کار رو خیلی مینیمال و دم دستی براتون انجام میده.
https://github.com/aca/tdraw
چند تا mode مختلف داره:
۱− برای کشیدن خط/جعبه
۲− برای رسم فلش
۳− برای نوشتن متن
۴− برای پاک کردن
متاسفانه undo نداره و وارد و خارج شدن به مود نوشتن متن یکم تریکیه که سر جای خودش بنویسید ولی به نظرم کاملا قابل استفادهس.
GitHub
GitHub - aca/tdraw: Draw ASCII art in terminal
Draw ASCII art in terminal. Contribute to aca/tdraw development by creating an account on GitHub.
نوشتههای ترمینالی
چند روز پیش داشتم یه چیزی رو ارائه میدادم، بعد نیاز داشتم که یه چیزی رو بکشم و ازونجا که نوشتن روی تخته میسر نبود، با کاراکترهای |و - و <- شکلم رو کشیدم که لازم نیست بگم خیلی کار سختی بود. امروز یه ابزار پیدا کردم با نام tdraw که همین کار رو خیلی مینیمال…
نحوه استفاده ازش هم اینه که برنامه رو ران می کنیم و خروجی رو pipe میکنید به فایل خروجی. این خیلی جالب/معنیداره
یعنی با همچین دستوری خروجی رو مدیریت می کنید:
tdraw > out.txt
اخرم با ctrl-C میاید بیرون
یعنی با همچین دستوری خروجی رو مدیریت می کنید:
tdraw > out.txt
اخرم با ctrl-C میاید بیرون