آموزش سریع LaTex
پیشنوشت: این نوشته یک متن آموزشی سریع در مورد ابزار یا مفهومی خاص هست. چیزهایی که در پایین میخوانید عصاره اصلی چیزی هست که باید سریعا یاد بگیرید برای استفاده از این ابزار یا مفهوم. این سری نوشتهها رو با نام WTF Course منتشر میکنم.
لاتک (LaTex) (با تلفظ دقیق لتخ) سیستم آمادهسازی اسناد (بطور دقیقتر مقالات علمی) بر اساس تک (Tex) هست که توسط لزلی لمپورت در سال ۱۹۸۴ نوشتهشده است. Tex نیز در سال ۱۹۷۸ توسط دونالد نیوت نوشته شده. خود Tex بر اساس troff پیادهسازی شده که در سال ۱۹۷۱ توسط جو اوسانا نوشتهشده شدهاست. لاتک در کنار تک به مسابه Bootstrap در کنار HTMl هست. لاتک ساختهشده تا نویسنده بجای صرف وقت روی ظاهر سند، بر روی محتوای سند تمرکز کند.
لاتک زمانی ساختهشده که نرمافزارهای پردازش متن مثل Word وجود نداشتند. اساتید و محققین دانشگاهها برای نوشتن مقالات و اسنادشان از تک و بعدها لاتک استفاده میکردند و هنوز هم میکنند. چیزی که لاتک را تا به امروز زنده نگه داشته سرعت افسانهای آن در پیادهسازی متون با ساختار مشخص (مثل فهرست و فرمولبندی) هست. که البته برای بدست آوردن این سرعت باید زمان مشخصی رو صرف یادگیری نحوه نوشتن اسناد لاتک بکنید. برای بسیاری LaTex یک سرمایهگذاری زمانی محسوب میشود. صرف چند ساعت امروز از صرف روزها در آینده جلوگیری خواهد کرد.
شنبه، ۱۴ نوامبر ۲۰۲۰
آموزش سریع Vim
پیشنوشت: این نوشته یک متن آموزشی سریع در مورد ابزار یا مفهومی خاص هست. چیزهایی که در پایین میخوانید عصاره اصلی چیزی هست که باید سریعا یاد بگیرید برای استفاده از این ابزار یا مفهوم. این سری نوشتهها رو با نام WTF Course منتشر میکنم.
Vi یک ویرایشگر متن است که توسط بیل جوی در سال ۱۹۷۶ برای سیستم عامل Unix ساختهشده است. نام Vi از دو حرف اول کلمه Visual گرفته شده است. علت نامگذاری Visual از آنجا میآید که در آن زمان Vi نسبت Ex که یک ویرایشگر خطی بود امکان ویرایش کل سند با امکانات کموبیش Visual میداد. خود Ex نسخه توسعهیافتهتر Ed بود که در سال ۱۹۷۱ توسط کن تامپسون نوشته شده بود.
Vim (یا Vi Improved به معنی Vi بهبودیافته) یک ویرایشگر متن است که بر مبنای Vi توسط برام مولینار در سال ۱۹۸۸ (بیش از ۳۰ سال پیش) ساختهشده است.
Vim تمامی امکانات Vi رو داراست ولی بهبودهایی از لحاظ عملکرد و توسعهپذیری داشته است. همچنین Vim بیشتر از Vi به سیستمعاملهای دیگر پورت شدهاست.
Vim تقریبا روی هر سیستم شبهیونیکسی (مثل لینوکس و BSD) بصورت پیشفرض نصب شده. آخرین نسخهی اون در زمان نوشتن این پست ۸.۱ هست.
علت اول محبوبیت Vim این است که نیاز نیست حین کار با آن دست از کیبرد بردارید. همهچیز حتی پیچیدهترین تغییرات بر روی متن (یا کد) را میتوان با کلیدها و رشتههای میانبر انجام داد. هرچند اگر برای یادگیری این میانبرها مقداری وقت صرف نکنید همین مسئله تبدیل میشود به معایب Vim.
علت دوم این است که Vim تحت خط فرمان اجرا میشود. وقتی با SSH به سروری در آلمان وصل میشوید هیچ محیط گرافیکی برای اجرای ادیتورهای امروزی مثل Sublime یا Atom و غیره وجود ندارد. Vim تقریبا تنها راهکار شما برای ویرایش کد بصورت راهدور هست.
علت سوم اینکه Vim به شدت توسعهپذیر هست. برای هرکاری یک افزونه برای آن وجود دارد. اگر کمی وقت صرفش کنید میتوانید بیشتر از PHPStorm از Vim کار بکشید.
علت چهارم این است که گردنمان کلف است و حال میکنیم که کسی از ابزار کارمان سردر نمیآورد وگرنه گزینههای منطقیتری مثل Micro وجود دارد که تحت همان خط فرمان از ماوس پشتیبانی میکند.
اطلاعات اضافی:
(برای کسانی که به فلسفه پشت هر ابزار هم علاقهمند هستند.)
– Vim اولین نرمافزاری است که با لایسنس خیریهافزار منتشر شده. خیریهافزار به مجوزی گفته میشود که از شما میخواهد در ازای استفاده از این مجوز به خیریه مدنظر سازنده محصول کمک کنید.
– Vim سرور و سالار و پیروز همیشگی جنگ ویرایشگرهاست.
شروع:
ویرایشگر Vim از سه Mode یا حالت Insert، Command و Visual تشکیل شده. هر حالت تعیین میکند که با فشردن دکمههای (حروف) کیبرد چه عملی انجام شود. حالت Insert برای تایپ و حالت Visual برای کارهایی مثل انتخاب کاراکترها/متنها و حالت Command برای ذخیره سند یا جستجو در متن سند استفاده میشود.
برای انتقال از Command Mode به Insert Mode (که بتوانید تایپ بکنید) میتوانید از کلیدهای a یا i (هم بزرگ هم کوچک) استفاده کنید. تفاوتشان به ظاهرشدن نشانگر در بخشهای متفاوت متن هست که در این نوشته برای مخاطب مهم نیست.
برای انتقال از Insert Mode و Visual Mode به Command Mode کلید Esc کافیست.
برای حرکت در Command Mode میتوانید از کلیدهای جهت استفاده کنید. در صورتی که به گذشته سفر کردهاید و کیبردتان کلیدهای جهت ندارد و یا میخواهید خفن دیده شوید کلیدهای HJKL بهترتیب از چپ بعنوان چپ، پایین، بالا، راست برای جایگزین استفاده کنید.
برای نمایش فایلهای شاخهی فعلی از دستور :Ex استفاده کنید.
برای برگشت به عقب (همان Ctrl+Z خودمان) از کلید u در حالت Command Mode استفاده کنید. برای تکرار مجدد/برگشت به جلو یا همان ReDo از میانبر Ctrl+ای استفاده کنید.
برای نمایش شماره سطرها دستور set number رو بعد از کاراکتر : تایپ کنید.
برای جستجو در کل در حالت Command ابتدا / سپس متن مورد نظر رو بنویسید و سپس Enter رو بزنید. برای وارد شدن به حالت ویرایش کلید i رو بزنید. برای انتقال نشانگر به گزینهی بعدی پیداشده کلید n رو فشار بدید. برای برگشت Shift+n.
در صورتی که میخواهید از جایی که نشانگر قرار دارد به بعد را جستجو کنید به جای / کاراکتر ? بگذارید.
برای Replace یا جایگذاری text1 با text2 از دستور s/text1/text2/gc% استفاده کنید. g به معنی تمامی نتایج ممکن و c به معنای ابتدا تایید بگیر سپس تعویض کن. در صورتی که c رو ننویسید بدون تایید تمامی گزینههای پیدا شده را تعویض میکند.
برای کپیکردن مقداری که در Visual Mode انتخاب کردهاید از y، برای کپیکردن کل خط از yy، برای کپیکردن کلمه از yw و برای Paste کردن از p یا P استفاده کنید.
برای Cutکردن هم به ترتیب d و dd و dw رو استفاده کنید.
برای تکرار دستور قبلی از کلید . استفاده کنید.
برای ذخیرهکردن فایل برای اولین بار از w filename: استفاده میکنیم که filename نام فایل ما است. دفعات بعد برای ذخیره کردن از w: استفاده میکنیم.
برای خروج از q: استفاده میکنیم، اگر که فایل خود را ذخیره نکرده باشیم Vim به ما اخطاری به مضمون “no write since last change” میدهد که از ما میخواهد فایل خود را ذخیره کنیم. ولی اگر نمیخواهید که این پیغام را به شما بدهد و قصد ندارید تا تغییراتی که در فایل دادهاید اعمال شود، از !q: استفاده کنید. تلفیق این دو برای ذخیره و خروج دستور پرکاربرد qw: هست.
دستوران فوق در ۹۰٪ مواقع کارتان را راه میاندازد. ولی در صورتی که میخواهید بیشتر یاد بگیرید منبع نوشته بدردتان میخورد.
بیشتر:
– پلاگین PHP برای Vim
– سند راهنمای دانشگاه میسیسیپی جنوبی
– اگه هوس کردید بدونید Ed چه شکلی بود که Vi ویرایشگر Visual محسوب میشده اینجا رو ببینید.
شنبه، ۱۸ جولای ۲۰۲۰
راهنمای سریع ترمینال Linux
پیشنوشت: این نوشته یک متن آموزشی سریع در مورد ابزار یا مفهومی خاص هست. چیزهایی که در پایین میخوانید عصاره اصلی چیزی هست که باید سریعا یاد بگیرید برای استفاده از این ابزار یا مفهوم. این سری نوشتهها رو با نام WTF Course منتشر میکنم.
راهنمای سریع دستورات ترمینال Linux:
Debian/Ubuntu Only:
sudo apt update | check for update
sudo apt upgrade | will upgrade packages if update available
sudo apt install [appname]
sudo apt remove [appname]
sudo dpkg -i file.deb
sudo apt autoclean && sudo apt autoremove | will clean unnecessary packages
Basic:
sudo [command] | execute command with root privileges
use Tab for command autocompletion
Ctrl+C | break and exit from currently running process/command
clear | will clear current terminal content
source filename | reload file (usually for linux config files)
alias a=“clear” | make your own command and shortcuts (a = clear)
Note: need to put aliasses in ~/.bashrc for permanent effect [need to refresh with 'source ~/.bashrc' command]
| (pipe) | put a command's output into other command input
> | redirect a command output into a file
>> | append to end of file (e.g: echo alias c="clear" >> ~/.bash_aliasses)
&& | execute two (or more) commands together (e.g: cd ~ && clear)
Commands:
pdw | where are your current location
ls -lah | list all files with details in current directory
cd /path/to/directory | move to directory
cd- | move to previous directory
cd .. | Move to back
cd ~ | Move to home directory
touch filename | make new file
cp a location/filename | copy to other location
mv a location/filename | move (cut/paste) to another place
echo STRING >> file | make new file and add string to end of it
cat filename | show content of file
cat a b > c | join a and b and put into c
mkdir | make new directory
rm filename | remove file
rm -r directory | remove directory
locate filename | find file
locate -i STRING | search for string in all files
find LOCATION -name NAME | find name in location
grep string file | find string in file
du -m filename | get file size in MB
head -n 5 file | show first 5 lines of file
tail -n 5 file | show last 5 lines of file, add -f for realtime monitoring. also 'tailf file'
diff a b | show diffrence between files
zip b.zip a | zip b into a, aslo -r for directory
tar -cvf a.tar b | make tar archive with a name from b location. more: https://www.tecmint.com/18-tar-command-examples-in-linux/
chown user file | change owner of file to user
chmod 777 file | change permission of file. more: https://www.computerhope.com/unix/uchmod.htm
chmod +x filename | Make a file executable
top | task manager
ps ax | grep APPNAME | find pid of APP
kill pid | kill the app
pkill appname | kill app without id
history | list all commands that used
which [command] | where is command location
passwd a | change current user pass to a
man [command] | show help and manual for command
جمعه، ۱۷ آوریل ۲۰۲۰