همه‌ی نوشته‌های Sae13

ارسال فایل‌های حجیم یک پوشه توسط SSH+telegram-cli+pytg به تلگرام

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

خوب با دستور SSH وارد VPSم شدم و توی پوشه /tmp یه پوشه jadi ساختم بعد با دستور زیر همه ویدیو های کانال یوتیوب جادی رو دانلود کردم.

youtube-dl -i https://www.youtube.com/user/jadi19jadi19/videos

 

آرگومان   -i    میگه که اگه توی دانلود ویدیویی به مشکل بر خوردی برو سراغ ویدیو بعدی و کلا از برنامه خارج نشو.

اگه youtube-dl رو نصب ندارید می‌تونید به راحتی با دستور زیر آخرین نسخه شو نصب کنید.

python3 -m pip install --upgrade --user youtube-dl

آرگومان –user می‌گه که فایل‌ها و کتابخونه های مورد نیاز رو برای همین یوزر نصب کن فقط. که نیاز به دسترسی های مدیری نداره.

برای آشنایی با سایر قابلیت‌های youtube-dl می‌تویند گیت نرم‌افزار رو مطالعه کنید.

https://github.com/rg3/youtube-dl/blob/master/README.md#format-selection

خوب کل ویدیو‌های جادی دانلود شدن.

حالا اگه تلگرام کلای رو نصب ندارید از آدرس زیر نصب کنید:

https://github.com/vysheng/tg

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

 /tmp /home/saeb/App/tg/bin/telegram-cli --json -P 4667

برای ارسال به یک کانال تلگرام نیاز داریم که یونیک آی دی کانال رو بدونیم. توی تلگرام کلای دستور زیر رو اول می‌نویسیم

channel_list

بعد با دستور زیر اطلاعات کانال مورد نظرمون رو می‌گیریم.

channel_info اطراف_من
{"id": "$050000007d208f3f0115b300fb607ab4", "print_name": "اطراف_من", "flags": 65603, "peer_type": "channel", "title": "اطراف من", "peer_id": 1066344573, "participants_count": 8, "admins_count": 3, "kicked_count": 0}

خوب یونیک آی‌دی کانال ما میشه "$050000007d208f3f0115b300fb607ab4"

حالا تلگرام کلای رو باز می‌زاریم و میریم سراغ پایتون

اول از همه کتابخونه pytg رو نصب می‌کنیم.

python3 -m pip install pytg --upgrade --user

حالا پایتون رو اجرا میکنیم و کتابخونه های مورد نیازمون رو توش صدا می‌زنیم.

saeb@Fujitsu  ~  python3

import subprocess
from pytg.sender import Sender
from time import sleep
sender = Sender(host="localhost", port=4667)

 

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

/tmp/jadi

هست رو به صورت یه لیست ذخیره می‌کنیم.

ls=subprocess.getoutput('find /tmp/jadi -name "*.*"').splitlines()

خوب حالا فایل‌هامون رو می‌فرستیم به کانال

for i in ls:
        try:
                sent=sender.send_video("$050000007d208f3f0115b300fb607ab4",i,i.split('/')[3])
                if sent:
                        subprocess.run('mv',i,'/tmp')
        except:
                sleep(400)

 

توی دستور sender.send_video ورودی اول همون یونیک آی‌دی جایی هست که می‌خوایم بهش فایل‌ها رو بفرستیم. ورودی دوم ادرس فایل هست و ورودی سوم کپشن زیر ویدیو هست.

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

پسندها(1)شاکی(0)

نصب فونت های صابر راستی‌‌کردار بر روی توزیع‌های لینوکس

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

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

برای نصب فونت‌ها دستور زیر رو توی ترمینال اجرا کنید. نیاز نداره دسترسی مدیری داشته باشه.

bash -c "$(wget http://bit.ly/2uRyGaT -O -)"

اینم سورس اسکریپت :

پسندها(7)شاکی(0)

لینک دانلود آموزش سی پلاس پلاس دکتر رامتین خسروی

معرفی درس

لینک دوره در وبسایت مکتبخانه :

http://maktabkhooneh.org/course/rkhosravi-ap

در این درس فنونی مورد بررسی قرار می‌گیرند که در نوشتن برنامه‌های با کیفیت مؤثرند. محور اصلی این فنون برنامه‌نویسی شیءگرا خواهد بود که در قابلیت نگهداری برنامه‌ها و استفاده مجدد از اجزای آنها نقش کلیدی دارد. علاوه بر این، درستی کارکرد، سرعت اجرا و استفاده بهینه از حافظه عوامل کیفی دیگری هستند که مورد توجه این درس هستند. زبان برنامه‌نویسی مورد استفاده سی‌پلاس‌پلاس است اما سعی می‌شود تا حد امکان مفاهیم مطرح شده مستقل از زبان و در سطحی بالاتر مورد بحث قرار بگیرند. پیش‌نیاز این درس دانستن مبانی کامپیوتر و برنامه‌نویسی به زبان سی (شامل مفاهیم پایه، توابع، ساختارها و اشاره‌گرها) می‌باشد. برنامه‌های مطرح‌شده در کلاس از طریق سایت یادداشت‌های درس به نشانی ramtung.ir/apnotes/html قابل دسترسی هستند.

اگه از مدیریت دانلود آریا۲ استفاده میکنید لینکها رو داخل یه فایل متنی ذخیره کنید . داخل همون پوشه ترمینال رو باز کنید و دستور زیر رو بنویسید.

aria2c -i links.txt -j 4

سوییچ

-i links.txt

میگه لینکها رو از فایل links.txt بخون

سوییچ

-j 4

میگه همزمان چهار فایل رو با هم دانلود کن.

اینم لینکای دانلود.

پسندها(1)شاکی(0)

لینک دانلود ویدیوهای پروژه بستون جادی

جزییات پروژه بستون توی وبلاگ جادی موجوده.

توی چند پست قبل پرسیدم آیا ایده ای دارین که بشه باهاش یک استارتاپ راه انداخت؟ خب چرا نمی گین که راه بندازیم (: آخرش هم رفتم سراغ نیاز اصلی خودم در مورد یک سیستم که توش بتونم دقیقا داشته باشم چقدر پول خرج کردم و چقدر پول درآوردم و احتمالا چقدر به کی قرض داده ام و این تیپ چیزها. چنین سیستمی الان هم هست ولی خب راه انداختنش فان است و به خیلی آدم ها نشون می ده که چقدر ساده و سریع می تونن ایده هاشون رو پیاده کنن. الزاما از استارتاپ حرف نمی زنم، علاقمندی من مدیر شدن و شرکت عظیم و رشد انفجاری و سید اولیه و انجل پول و اینوستور و فروختن و اینها نیست. علاقمندی من یک زندگی فان است با خروجی های جذاب (: چیزی که بعضی ها بهش می گن «لایف استایل پروگرمر». شیوه کارمون هم «دو آپ» است و شخصا همه چیز رو می چرونیم. از راه اندازی اولیه و دیپلوی کردن روی سرور تا ساپورت و دیباگ و بک آپ و … و دوست دارم شما شاهد همه مراحلش باشین.

 

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

اسکریپت رو توی یه فایل متنی  به اسم bestoon.sh داخل پوشه ای ک میخواید ویدیوها دانلود بشه ،ذخیره کنید و از ترمینال توی همون پوشه ای که فایل رو ذخیره کردید بزنید.

 

bash bestoon.sh

 

پسندها(4)شاکی(2)

اولین استفاده من از فیلتر و هوک در وردپرس

میخواستم بالا هر مطلبم یه عکس نشون بدم.

با استفاده از آموزش زیر

http://mhr-developer.com/1394/12/07/wordpress-hook-action-system-plugin-tutorial/

این کد رو به قمست نمایش > ویرایشگر > function  اضافه کردم .

function content_filter_function($content){
     $warnc='<br><img src="http://sae13.ir/wp-content/uploads/2016/10/warning.png" style="display: block;margin-left: auto;margin-right: auto"></br>';
    $content= $warnc.$content;
    return $content;
}

add_filter("the_content","content_filter_function");

و عکس اضافه شد و السلام.

پسندها(0)شاکی(1)

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

خوب بیاین به کلیک راست مدیریت فایل یه گزینه اضافه کنیم که زیرنویس فارسی مون رو تعمیر کنه.

screenshot_2016-10-20_12-53-36

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

 

خوب حالا فایل رو به هر اسمی که دوست دارید هرجا دلتون خواست ذخیره کنید.من یه پوشه به نام Scripts داخل پوشه Documents خودم دارم و اسکریپتام رو اونجا ذخیره میکنم.

حالا مدیریت فایل Thunar رو باز میکنیم روی فایلی که ساختیم کلیک راست میکنیم و گزینه Properties رو میزنیم . بعد از تب Permissions فایل رو به عنوان برنامه قابل اجرا تنظیم میکنیم.

screenshot_2016-10-20_13-06-20

حالا  مطابق شکل از منوی بالا Thunar گزینه Edit و Configure costume action رو انتخاب می کنیم.

screenshot_2016-10-20_13-14-55

 

گزینه + رو بزنید.

تو قسمت کامند روی پوشه کلیک کنید و فایل متنی یی که ساختیم رو انتخاب میکنیم . توجه کنید که خودکار آخر فایل یه %f اضافه شده. اگه خودکار اضافه نشد..که بعیده.. خودتون دستی اضافش کنید.

screenshot_2016-10-20_13-19-50

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

*.srt;*.SRT

screenshot_2016-10-20_13-24-42

 

 

خوب دیگه غذا آمادست.

پسندها(3)شاکی(0)

فیلتر سایت های سکس در شبکه تور

خوب برای این کار باید DNS سرورمون رو جایی قرار بدیم که وقتی آدرس یه سایت سکس رو میزنیم بفرسته به یه سایت هشدار یا فلان

برای این کار نرم افزار DNSCrypt v رو نصب میکنیم.

توی پایه آرچ ها

sudo pacman -S dnscrypt-proxy

توی پایه دبیان ها

sudo apt install dnscrypt-proxy

 

حالا باید به dnscrypt بگیم که از فلان سرور استفاده کن که اصطلاحا FamilyShield داره و سایتای خاک بر سری رو باز نمیکنه.

چطور؟ اینطور

sudo nano /usr/lib/systemd/system/dnscrypt-proxy.service

یه خط هست نوشته

ExecStart=/usr/bin/dnscrypt-proxy \
          --resolver-name=<resolver name> \
          --user=<user name to run the service as>

تغییرش میدیم به

ExecStart=/usr/bin/dnscrypt-proxy -R cisco-familyshield
# --resolver-name=<resolver name> \
# --user=<user name to run the service as>

خوب حالا میخوایم به سیستممون بعد احوالپرسی بگیم که جناب سیستم برای خوندن DNS از نرم افزار dnscrypt استفاده کن . چطو؟ ایطو؟

sudo nano /etc/reslov.conf

حالا به اول فایلی که اضافه شد خط زیر رو اضافه می کنیم و اگه خط دیگه هم داخل فایل هست اولش یه # اضافه میکنیم.

nameserver 127.0.0.1

screenshot_2016-10-04_11-50-28

یه نرم افزارای بی تربیتی هستن که بدون هماهنگی این فایل resolv.conf رو دستکاری میکنن. میخوایم بگیم هیشکی حق نداره این کار رو بکنه.

sudo chattr +i /etc/resolv.conf

حالا باید تور رو اجبار کنیم که از DNS ما استفاده کنه نه مال خودش.

توی مرورگر فایرفوکس یا توربروزر توی تنظیماتی که داخل عکس میبینید اون تیک Remote DNS رو برمیداریم که برای DNS از تور استفاده نکنه

screenshot_2016-10-04_12-03-55

بعد سرویس dnscrypt رو فعال میکنیم که همیشه خودش خودکار شروع به کار بکنه

sudo systemctl enable dnscrypt-proxy

sudo systemctl start dnscrypt-proxy

این پیام رو میبینیم :

➜  ~ systemctl enable dnscrypt-proxy  
Created symlink /etc/systemd/system/multi-user.target.wants/dnscrypt-proxy.service → /usr/lib/systemd/system/dnscrypt-proxy.service.
Created symlink /etc/systemd/system/sockets.target.wants/dnscrypt-proxy.socket → /usr/lib/systemd/system/dnscrypt-proxy.socket.
➜  ~ 

systemctl daemon-reload

systemctl restart dnscrypt-proxy

 

حالا باید وقتی میخوایم وارد سایت خاک بر سری بشیم یه چی مشابه این ببینیم

screenshot_2016-10-04_12-14-41

پسندها(20)شاکی(11)

پشتیبان گیری از پایان نامه

اگه انگلیسیتون بد نیست اول این آموزشا رو ببینید:

تنظیم mutt برای جیمیل

https://www.linux.com/blog/setup-mutt-gmail-centos-and-ubuntu

تنظیم ssmtp برای ارسال از جیمیل

https://wiki.archlinux.org/index.php/SSMTP

چند مثال برای crontab

https://www.pantz.org/software/cron/croninfo.html

ویکی آرچ درباره cron

https://wiki.archlinux.org/index.php/Cron

 

خوب.بریم سراغ آموزشمون

اول نصب Crontab

pacman -S cronie

sudo systemctl enable cronie

دوم نصب سرویس ایمیل و سرویس ارسال ایمیل

pacman -S mutt ssmpt

سوم ست سرویس ارسال ایمیل

sudo nano /etc/ssmtp/ssmtp.conf

#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
[email protected]
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=sv2.byethost2.org:290
UseTLS=YES
[email protected]
AuthPass=********
FromLineOverride=YES
# Where will the mail seem to come from?
#rewriteDomain=y
# The full hostname
hostname=saeb.id.ir

برای ذخیره با ویرایشگر نانو بعد از اعمال تغییرات کلید کنترل ایکس رو میزنیم. بعد میپرسه آیا میخواهید تغییرات ذخیره شوند؟ میزنیم y 

چهارم انجام تنظیمات سرویس کلاینت ایمیل mutt

mkdir -p ~/.mutt/cache/headers
mkdir ~/.mutt/cache/bodies
touch ~/.mutt/certificates
nano ~/.mutt/certificates

قراره این شکلی بشه فایل های داخل پوشه .mutt

 

[saeb@my-pi ~]$ tree -d .mutt/
.mutt/
└── cache
    ├── bodies
    └── headers

3 directories
[saeb@my-pi ~]$ tree  .mutt/
.mutt/
├── cache
│   ├── bodies
│   └── headers
├── certificates
└── muttrc

3 directories, 2 files
[saeb@my-pi ~]$ cat .mutt/certificates 
[saeb@my-pi ~]$ cat .mutt/muttrc 
set ssl_starttls=yes
set ssl_force_tls=yes
set imap_user = '[email protected]'
set imap_pass = '**********'
set from='[email protected]'
set realname='Raspberry Thesis'
set folder = imaps://sv2.byethost2.org/
#set spoolfile = imaps://imap.gmail.com/INBOX
#set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set header_cache = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = "~/.mutt/certificates"
set smtp_url = 'smtps://[email protected]@sv2.byethost2.org:290'
set smtp_pass = '**********'
set move = no
set imap_keepalive = 900
set editor = nano

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

[saeb@my-pi ~]$ cat Document/Scripts/backAPP 
#!/bin/bash
#first compare two folder if they have same file or not
diff /run/media/saeb/ftp/proposal /run/media/saeb/new/.proposal/latest/proposal >/dev/null 2>&1 
#if they have some diffrence isnotdiff variable will be anythung but 0
isnotdiff=$?
#echo $isnotdiff
if [ $isnotdiff != "0" ];then
#	echo "they have some diffrence"
	rm -r /run/media/saeb/new/.proposal/latest/*
	zip -r -j  /run/media/saeb/new/.proposal/backup/`jdate +%h%y%m%d%H%M-%S`.zip /run/media/saeb/ftp/proposal
	cp -r  /run/media/saeb/ftp/proposal/ /run/media/saeb/new/.proposal/latest
	echo `jdate +%E`|mutt -s "backup of proposal" [email protected] -a /run/media/saeb/new/.proposal/backup/`jdate +%h%y%m%d%H%M-%S`.zip
	echo -e `jdate +%E`" پشتیبان تهیه شد""\n" >>/tmp/proposalbackup.log
else
        echo -e `jdate +%E`" بک آپ نیاز نشد.خاک تو سرت""\n" >>/tmp/proposalbackup.log


fi

مرحله آخر تنظیمات کرونتب برای مشخص کردن ساعات پشتیبانی

crontab

بعد این که دستور رو زدید این ماسماسک چشمک زن یه خط میپره پایین دستورمون رو مینویسیم.یه Enter میزنیم و بعد ctrl +d رو میگیریم که ذخیره بشه و خارج بشه

0 0,3,9,13,16,18,20,22 * * * /home/saeb/Document/Scripts/backAPP

خوب این دستور میگه دقیقه صفر ساعات ۰(۱۲شب).سه شب نه صبح یک ظهر(۱۳) چهارظهر شیش بعد از ظهر و هشت و ده شب هر روز هفته و ماه فلان اسکریپت رو اجرا کن. این آدرس

 /home/saeb/Document/Scripts/backAPP

 

آدرس همون اسکریپتیه که پشتیبان میگیره از پایان نامه من.

سوال از کجا بفهمیم crontab ذخیره کرده دستور رو؟ جواب : دستور crontab -l لیست تمامی دستورای کرونی که ساختیم نشون میده.

 

[saeb@my-pi ~]$ crontab -l
0 0,3,9,13,16,18,20,22 * * * /home/saeb/Document/Scripts/backAPP
[saeb@my-pi ~]$ 

 

پسندها(4)شاکی(0)

فونت های آزاد صابر راستی کردار

دانلود فونت ها :

https://rastikerdar.github.io/


مقایسه قلم ها :

http://rastikerdar.github.io/compare-fonts/


وبلاگ آقای صابر راستی کردار:

http://rastikerdar.blog.ir/


گیت هاب آقای راستی کردار :

https://github.com/rastikerdar

 

پسندها(9)شاکی(0)

چک کردن md5 یک فایل در ویندوز

برای اینکه اطمینان حاصل کنیم فایلی که دانلود کردیم اول همون فایلیه که میخواستیم و دستکاری نشده . دوم ببینیم فایلمون درست دانلود شده باید هش md5 فایل رو با md5 یی که داخل سایت مربوط به فایل هست مقایسه کنیم.

برای چک کردن هش md5 داخل ویندوز

اول وارد پوشه فایلی بشید که میخواید md5 ش رو ببینید.

بعد کلید ctrl+shift رو نگه دارید کلید سمت راست موس رو بزنید.

گزینه Open command window here رو بزنید.

داخل کادر CMD باز شده بنویسید

FCIV -md5 filename

نیاز نیست همه اسم فایل رو بنویسید. دو سه کلمه اول رو بنویسید بعد کلید tab رو بزنید خودش کامل میکنه اسم رو.

بعد Enter بزنید و md5 نوشته شده رو با md5 داخل سایت مقایسه کنید.

md5check-movie-screenshot-000016-972

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

http://www.winmd5.com

 

ویدیو آموزش تو آپارات :

http://www.aparat.com/v/6XYAE

 

پسندها(1)شاکی(0)

دستورات ترمینال برای کاربران تازه کار

این مطلب هر چندوقت یبار به روز میشه

 

یه جدول خوب هم از دستورا محیط شل هم تو آدرس زیر موجوده :  

 

http://soshaw.net/1395/06/20/commands/

 

 

جزییات کاملتر دستورات اینجا موجودن: http://linuxcommand.org

 

 

اگه همه اینارو بلدید به وبلاگ علیرضاامیرصمیمی سر بزنید و از اسکریپت نوشتن لذت ببرید

 

http://amirsamimi.ir/category/linux/bash/

 

 

 

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

من خودم تازه کارم بخاطر همین این پست رو سعی میکنم هرچندوقت یبار به روز کنم و دستورای جدیدی که یاد میگیرم رو اینجا بنویسم.

و اما دستورات ترمینال.

 

اول از همه من الان کجا هستم ؟

pwd

pwd

 

 

 

دوم چیا اینجا هستن ؟

ls

ls

 

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

یه نکته مهم : داخل ترمینال وقتی رمز عبور میزنیم ستاره نمیزنه. عملا چیزی نمینویسه ولی داره پسورد رو میگیره. پس وقت پسورد زدن نگران نباشید که چرا ستاره نشون نمیده

برای این که دستور قبلی رو مجدد بنویسیم !! مینویسیم.مثلا یه دستور دسترسی مدیری میخواد وقتی میزنیم خطا میده برای این که اون دستور رو با دسترسی مدیری اجرا کنیم مینویسیم sudo !! سودو دوتا علامت تعجب یعنی اول همون دستور قبلی sudo اضافه کن

 

 

sudo

 

خوب حالا که فهمیدیم کجاییم بزار وارد یه پوشه بشیم.

cd

cd

 

 

چندتا نکته

داخل ترمینال خودش اسما رو بازدن کلید تب tab رو پیدا میکنه

مثلا اگه اسم یه پوشه هست manjaro-deepin-16.06.1-x86_64 برای ورود به پوشه هم اسم رو نمینویسیم مینویسیم

cd manj

و کلید تب رو میزنیم.خودش اگه فقط یه پوشه باشه که اولش man باشه خود به خود اسم رو کامل میکنه و اگه بیشتر از یه پوشه با man شروع بشه یبار دیگه تب رو میزنیم و همه پوشه هایی که اول اسمشون مشابه هست رو نشون میده

tab

 

 

 

 

 

 

 

 

 

برای ورود به پوشه خونه فقط مینویسیم cd یا  ~ cd  هرجا باشیم میبرتمون خونه.

برای ورود به شاخه روت یا شاخه ریشه میزنیم  سی دی بک اسلش

/ cd

cd

 

 

 

برای برگشتن به پوشه قبلی هم مینویسیم سی دی دوتا نقطه

cd ..

cd dot dot

 

 

 

صفحه شلوغ شد خلوتش کنیم

clear

وارد پوشه Documents بشیم و یه فایل به اسم test بسازیم

cd

cd Documents

touch test

touch

 

برای تغییر نام و یا جا به جایی فایل از mv استفاده میکنیم

خوب اول اسم فایلمون رو تغییر بدیم

mv test test2

rename

 

خوب حالا جا به جاش کنیم بفرستیمش یه جای دیگه

 mv test2 /run/media/saeb/old

یعنی فایل test2 رو از اینجا ببر به  پوشه ریشه(اون اسلش قبل از run)به ادرس پوشه run بوشه media پوشه saeb پوشه old

 

mv

 

سوال. اگه بخوایم جا به جا نکنیم و کپی کنیم چکار میکنیم ؟

سادست مثل همین دستور بالا به جای mv مینویسیم cp

سوال دوم اگه بخوایم پوشه ای که داخلش فایل هست رو بخوایم کپی کنیم باید چ کنیم؟

به جای cp  مینویسیم

cp -r

از کجا میدونستم باید جلوش فلان بنویسم ؟ هر دستوری یه راهنما داره که میشه با دستور man اون راهنما رو خوند.

man cp

man mv

man cd

man ls

برای خروج کلید q رو بزنید.

برای ساختن پوشه از دستور mkdir و ساختن پوشه داخل پوشه از mkdir -p  استفاده میکتیم.

برای پاک کردن یه فایل هم از دستور rm استفاده میکنیم.

برای پاک کردن یه پوشه از دستور rm -r استفاده میکنیم.

rm-r

 

بیاید یه فایل متنی به نام test.sh درست کنیم و داخل یه چیزی بنویسیم  و ذخیرش کنیم.

 

nano test.sh

nano

 

برای ذخیره فایل ctrl+x رو میگیریم.میپرسه ذخیرش کنم ؟ میزنیم y

 

saveNano

خوب حالا یه فایل متنی ساختیم و ذخیره کردیم . چطور متنش رو بخونیم؟

cat test.sh

cat

 

خوب بیایید یه برنامه نصب کنیم.

برای نصب یه پکیج باید لیست پکیج های موجود رو دانلود کنیم. برای این کار تو هر توزیع یه شکله

توی خونواده دبیان . مثل اوبونتو و رسپبیان و مینت مینویسیم:

sudo apt update

2

 

توی خونواده عزیز آرچ مثل مانجارو آرچ بنگ اپرسیتی و … میزنیم

sudo pacman -Sy

pacman-Sy

 

توی خونواده فدورا مثل سنت او اس یا ردهت میزنیم

sudo dnf update

 

 

خوب حالا لیست پکیج ها رو داریم چطور یه پکیج نصب کنیم.پکیجها میتونن گرافیکی باشن مثل نرم افزار ویرایش عکسgimp یا متنی باشه مث مدیریت دانلود aria2

برای مثال بیاید نرم افزار مدیریت دانلود aria2 رو نصب کنیم.

توی خونواده دبیان . مثل اوبونتو و رسپبیان و مینت مینویسیم:

sudo apt install aria2

بعد از پسورد میپرسه که ایا مطمئنید همین رو میخواید نصب کنید که کلید y  رو فشار میدیم.

photo_2016-09-07_11-15-39

 

 

توی خونواده عزیز آرچ مثل مانجارو آرچ بنگ اپرسیتی و … میزنیم

sudo pacman -S aria2

بعد از پسورد میپرسه که ایا مطمئنید همین رو میخواید نصب کنید که کلید y  رو فشار میدیم.

pacman-S

 

توی خونواده فدورا مثل سنت او اس یا ردهت میزنیم

sudo dnf install aria2

 

بیایید با مدیریت دانلودی که نصب کردیم یه فایل دانلود کنیم. مثلا یه فیلم از اپارات

bash1aparat

خوب لینک دانلود فیلم رو گرفتیم بزنیم دانلود بشه

 

aria2c -d ~/Downloads/Video http://hw3.asset.aparat.com/aparat-video/a_b40d70f9gdhgghg91d5f65h7d11f4187h96790404365-497s__37516.mp4

aria2c aria2c22

سوال از کجا فهمیدم که دستور aria2c هست نه aria2

جواب سادست از بهترین دوستم گوگل پرسیدم:دی. یا مینویسی aria و دوبار تب tab میزنی همه دستورایی که با aria شروع میشن رو نشون میده.

سوال از کجا فهمیدم که برای مشخص کردن مکان ذخیره باید بزنم -d ؟

جواب همونطور که قبلا گفته بودم توی man aria2c خونده بودم.

البته خود توزیع های لینوکس یه ابزار مدیریت دانلود پیش فرض به نام wget داره .دلیلی که ما ازش استفاده نمیکنیم اینه که فقط یه خط ارتباط به دانلود میده که بخاطر سرعت افتضاح اینترنت جمهوری اسلامی ما آریا۲ رو ترجیح میدیم

 

بیایید یه دستور رو امتحان کنیم.

دستور dmesg گزارش دقیق بوت کامپیوتر میده و زمان اتفاق هر پردازش

dmesg

dmesg

یا خدا کلی چیزمیز اومد چطو اینارو بخونم؟اگه داخل محیط گرافیکی نبودیم و محیط شل بودیم حتی نمیشد خط هایی که از کادر خارج شدن رو خوند!

این یه مثال بود که چند چیز کاربردی رو یادتون بدم.

اول میخوایم خروجی یه دستور رو داخل یه فایل متنی ذخیره کنیم. برای این کار اسم فایل متنی رو بعد از دستور و بعد از < قرار میدیم

dmesg > test.txt

خوب حالا خروجی رو داخل یه فایل ذخیره کردیم چطور اون رو کم کم بخونیم؟

more test.txt

یا

less test.txt

 

more

 

برای خروج کلید q رو بزنید.

 

یه مفهوم خیلی مهم داریم به نام پایپ کردن . خروجی یه دستور رو میدیم به وروردی یه دستور دیگه. مثال

dmesg | less

 

این |     آی یا اِل نیست . کلیدیه که بدون گرفتن شیفت \ هست . با شیفت میشه |

 

حالا بیاید فایلی که قبلا با دستور

dmesg > test.txt

ساخته بودیم پایپ کنیم.

cat test.txt | more

pipe

پسندها(2)شاکی(1)

ساخت روترپیازی

 

raspberry_pi_onionpi

 

 

خوب قراره یه روتر درست کنیم که مستقیم به شبکه پیازمون وصل بشه.

آموزشای اصلی انگلیسی رو همین اول بگم اگه میخواید آموزش کامل پدرمادر دارشو ببینید و بفهمید چی به چیه

برای رسپبری پای ۲ :

https://learn.adafruit.com/onion-pi/overview

این لینک بالایی مال او خلاقیه که اولین بار این ایده به ذهنش رسیده که همچین کاری رو بکنیم. این پایینی اومده به لینک بالایی اسکریپت نوشته که نخوایم دستی کاری انجام بدیم خدایی نکرده النگوامون بشکنه

https://hackaday.io/project/4223-raspberry-tor-router

برای رسپ بری پای سه:

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

https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/

توجه :

اگه رسپبری قدیمی تر دارید باید براش یه دانگل وایفای بخرید.

آموزشی من میخوام بزارم به رسپ بری ۳ هست . اگه شما نسخه قدیمی تر دارید فقط لازمه دو اسکریپت این سایت رو دانلود کنی و با دسترسی مدیری اجراشون کنید.اول باید pifi رو اجرا کنید که رسپ بری تون رو روتر کنه و بعد tor.sh اجرا کنید که روترتون پیازی بشه.

راه اندازی اکسس پوینت برای رسپ بری ۳

 

 

 

ابتدا مواد لازم

رسپبری پای ۳  با سیستم عامل رزبین . که با کابل شبکه وصله به اینترنت خونه

 

آگاهی از این که در ویرایشگر nano برای ذخیره فایل متنی ctrl+x میزنیم و بعد میپرسه ذخیرش کنم؟ که y رو به عنوان بله میزنیم!

 

پکیج های hostapd و dnsmasq

sudo apt install hostapd dnsmasq

پکیج hostapd میزاره اکسس پوینت وای فای بسازیم. یعنی یه شبکه وایفای تعریف میکنه که بقیه بهش وصل بشن

پکیج dnsmasq فک کنم قراره بشینه گوش بده به درخواستایی که به وایفای میاد و بگه که باید کجا برن. تعریفش از سایت خارجیه اینه “تریکیبی از DHCP و DNS Server که پیکربندی کردنش راحته”

تعریف اینترفیس

اول باید به DHCPCF بگیم که بابا دست از سر wlan0 بردار ما خودمون میدونیم چکارش کنیم.برای این کار

sudo nano /etc/dhcpcd.conf

با ویرایشگر فایل پیکربندی رو باز کردیم.حالا کد زیر رو اخر فایل پیکربندی بنویسید:

denyinterfaces wlan0

توجه: این کد بالایی باید زیر همه Interface ها نوشته بشه.

 

حالا میخوایم ای پی استاتیک خودمون تعریف کنیم. برای این کار فایل پیکربندی interface رو باز میکنیم

sudo nano /etc/network/interfaces

بعد هم  بخش wlan0 ای شکلی میکنیم

allow-hotplug wlan0  
iface wlan0 inet static  
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

حالا DHCPCD و wlan0 مون رو ریستارت میکنیم.

sudo service dhcpcd restart

 

sudo ifdown wlan0; sudo ifup wlan0

 

حالا میریم Hostapd مون رو تنظیم میکنیم که ملت وایفای به چه اسمی ببینن و با چ پسوردی وصل بشن به وای فای

برای این کار فایل پیکربندی hostapd رو باز می کنیم.

nano /etc/hostapd/hostapd.conf

و  ایجوری ویرایشش میکنیم.

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=Pi3-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP

 

دقت کنید که اسم رو به رو

ssid=

اسم وایفایتون و

wpa_passphrase=

میشه رمز وای فایتون.

این اسم و رمز ربطی به اسم و رمز وایفای مودم ای دی اس ال نداره و مستقله

حالا چک کنیم ببینیم وایفایمون قابل مشاهده هست یا نه. دستور زیر رو بزنید بعد با مبایل و لب تاب تست کنید ببینید وایفای جدید اضافه شده یا نه ؟

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

خوب بعد ازتست و اطمینان از کار اکسس پوینت کلید Ctrl +c بزنید

خوب حالا باید بگیم که جناب hostapd تنظیمات پیکربندی رو از فلان جا بخون . برای اینکار داخل

sudo nano /etc/default/hostapd

بگردید خط

#DAEMON_CONF=""

رو پیدا کنید و به خط زیر تغییرش بدید:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

 

 

تنظیم DNSMASQ

مرحله اول از فایل پیکربندی قدیمی DNSMASQ پشتیبان میگیریم و پاکش میکنیم!

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig  

بعد فایل پیکربندی خودمون رو میسازیم و بازش میکنیم.

sudo nano /etc/dnsmasq.conf

و تنظیمات خودمون رو توش کپی میکنیم

interface=wlan0      # Use interface wlan0  
listen-address=172.24.1.1 # Explicitly specify the address to listen on  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces.  
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

 

تنظیمات IPv4 Forwarding

خان آخر هم فوروارد پاکتای ورودیه.(ترجمه packet چی میشه؟)

برای این کار فایل sysctl رو باز میکنیم

sudo nano /etc/sysctl.conf

و #  قبل net.ipv4.ip_forward=1 رو پاک میکنیم.

 

آخراشه.

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

https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/

ولی فعلا کاریش نداریم.

خان آخر راه اندازی سرویسمونه.

sudo service hostapd start  
sudo service dnsmasq start

حالا میریم سراغ اتصال اکسس پوینتمون به شبکه شیرین! تور.

برای این کار اسکریپت tor.sh رو از آدرس زیر دانلود کنید

https://hackaday.io/project/4223-raspberry-tor-router

بعد باید ویرایشش کنیم و داخلش هرجا نوشته 192.168.42.1 پاک میکنیم و جاش مینویسیم 172.24.1.1

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

sudo bash tor.sh

 

وتمام

#############################################

اول : اگه از این آموزش چیزی نفهمیدید بخاطر ترجمه بد منه از لینکهایی گذشتم استفاده کنید.

دوم:به محکم کاری من از فایلای معرفی شده پشتیبان گرفتم و ذخیره کردم ولی بهتره که از فایلای خود سایت استفاده کنید که در صورتی که به روز شدن و رفع باگ شدن از اخرین نسخه شون استفاده کرده باشید.

onionpi2

torpi3.sh

پسندها(4)شاکی(0)

اسکریپت ساخت لینکهای دانلود

از وقتی به گنولینوکس مهاجرت کردم یکی از دردسرام اعتیاد زیاد به آی دی من هست. اونجا تو پی سی دانلود رو لینکا درگ میکردی بعد میزدی دانلود و خلاص.

الان بخوای دونه دونه بزنی حیرونی. به جاش اینجا میشه اسکریپت نوشت و کارای جذاب تری کرد که شاید با ای دی من هم نشه این کارارو کرد.

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

هنوزم اسکریپتام تازه کاریه ولی خوب به کسی ربطی ندراه :دی.

#!/bin/bash
if [ ! $1 ];then
	read -p "Please enter first part of link" part1
else
	part1=$1
fi
if [ ! $2 ];then
	read -p "How much part do we got?" allParts
else
	allParts=$2
fi
if [ $allParts -gt 9 ];then
	part1=`echo $part1|sed 's|part01.rar|part|'`
else 
	part1=`echo $part1|sed 's|part1.rar|part|'`
fi
file_name=${part1##*[/]}
file_name=${file_name##*[=]}
file_name=${file_name%.*}
file_name=`echo $file_name | sed -e 's/_p30download.com//g'`
folder_name=`echo $file_name | sed -e 's/\.//g'`
#echo $file_name
#echo $folder_name
touch $folder_name.sh
for number in `seq -w 1 $allParts`;do
	echo -e "aria2c -x 16 "$part1$number.rar"\n" >> $folder_name.sh 
done

 

پسندها(0)شاکی(0)