
head -c 16 /dev/urandom | xxd -ps
از اینجا برداشتمش


head -c 16 /dev/urandom | xxd -ps
از اینجا برداشتمش
#!/usr/bin/bash
while true
do
zenity --question --no-wrap --text="آب خوردی؟" --ok-label="ها" --cancel-label="دو دقه واسا"
status=$?
while [ $status -eq 1 ]
do
sleep 3m
zenity --question --no-wrap --text="آب خوردی؟" --ok-label="ها" --cancel-label="دو دقه واسا"
status=$?
done
sleep 30m;
done
cat /home/saeb/.config/autostart/sbs.saeb.water.desktop
[Desktop Entry]
Name=DrinkWater
GenericName=Drink water
Comment=Some description about your script
Exec=/home/saeb/.local/bin/drinkwater.bash
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true
sudo pacman -S libvirt nftables
✘ ~ cat br10.xml
<network>
<name>br10</name>
<uuid>4c2ce191-a0e3-4916-842e-a7cdc2012332</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='br10' stp='on' delay='0'/>
<mac address='52:54:00:5f:d2:40'/>
<ip address='172.18.0.1' netmask='255.255.255.0'>
<dhcp>
<range start='172.18.0.100' end='172.18.0.200'/>
</dhcp>
</ip>
</network>
sudo virsh net-define br10.xml
sudo virsh net-list --all
sudo virsh net-start br10
sudo virt-install --name debian11 --memory 2048 --disk size=4 --cdrom Downloads/debian-11.0.0-amd64-netinst.iso --network bridge=br10
sudo virsh start debian11
دکوراتورها یه متد رو میگیرن و قبل از اجرای اون یه سری بلا سرش میارن. البته این برداشت منه که ایشالله درسته
def saeb(func: Callable) -> Callable:
def b(*arg, **kwarg):
func(*arg, kwarg)
return b
@saeb
def a(*args, **kwargs):
print(args, kwargs)
#!/usr/bin/env python
# coding: utf-8
# In[1]:
from json import loads
from requests import post
from pprint import pprint
# In[ ]:
API="x0x6KYOk6WjuLBbA3Vwxl1rE5l9VuiMd0Yci88il0"
headers = {"X-API-key":API}
data = {"target":"https://sae13.ir"}
# In[6]:
response=post("https://kutt.it/api/url/submit",data=data,headers=headers)
js=loads(response.content.decode())
pprint(js)
قبلن یه آموزش ساخت روتر پیازی گذاشته بودم که روی رسپیان ۹ stretch جواب نمی ده . لذا قایل های کانفیگم رو برای رسپیان ۹ اینجا قرار میدم. لکن یه نگاه بهش بندازید یکم توضیح دادم چی به چیه اونجا.
نرمافزاریی که نیاز هست الان نصب کنید :
sudo apt install tor torsocks hostapd dnsmasq
برای فعال کردنشون هم که از دستورای زیر استفاده میکنیم:
sudo systemctl enable tor
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
برای آی پی استاتیک کابل اترنت فایل زیر رو باید ویرایش کنیم :
sudo nano /etc/dhcpcd.conf
# Example static IP configuration: interface wlan0 static ip_address=172.24.1.1/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=172.24.1.1 #static domain_name_servers=127.0.10.1 , 208.67.222.222 # Example static IP configuration: interface eth0 static ip_address=192.168.1.13/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=192.168.1.1 #static domain_name_servers=192.168.1.1
البته قسمت دوم که مربوط به کابل شبکه eth0
هست، اجباری نیست ولی خوب خودم برای این که بتونم داخل شبکه خودم دسترسی ssh
داشته باشم ترجیحم اینه که آی پی کابل شبکه هم استاتیک باشه.
کار پکیج hostapd اینه که یه هات اسپات بسازه و براش دوتا تنظیم نیاز داریم.
یک ساخت یه فایل توی آدرس زیر با این مشخصات :
nano /etc/hostapd/hostapd.conf
interface=wlan0 # Use the nl80211 driver with the brcmfmac driver driver=nl80211 # This is the name of the network ssid=Tor # 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=1234567890-+ # Use AES, instead of TKIP rsn_pairwise=CCMP
بعد هم توی فایل زیر
sudo nano /etc/default/hostapd
دنبال دستور
#DAEMON_CONF=""
بگردید و به صورت زیر تغییرش بدید:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
بریم سراغ فایل dnsmasq
اول از کانفیگ اصلیش یه بک آپ بگیریم
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.org
حالا یه فایل جدید بسازیم با داستانای زیر:
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 no-resolv port=53 server=127.0.10.1 # 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
داخل فایل زیر
sudo nano /etc/sysctl.conf
یه خط هست به صورت
#net.ipv4.ip_forward=1
که باید از حالت نظر بیرونش بیاریم و #
اولش رو پاک میکنیم.
مونده فایل کانفیگ تور
sudo nano /etc/tor/torrc
که من فعلا فقط دستورای زیر رو توش دارم. تا برم پل بهش اضافه کنم بعدن و سرورترنسپورت meek و obfs4 رو هم دستی کامپایل کنم و تعریف کنم:
Log notice file /var/log/tor/notices.log VirtualAddrNetwork 10.192.0.0/10 AutomapHostsSuffixes .onion,.exit AutomapHostsOnResolve 1 TransPort 9040 TransListenAddress 172.24.1.1 DNSPort 127.0.10.1:53 #DNSListenAddress 127.0.10.1
بیاید به محکم کاری فایل لاگ تور رو خودمون دستی بسازیم:
sudo touch /var/log/tor/notices.log
بریم سراغ تنظیمات فایروالمون:
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22 sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53 sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
همانطور که مستحضرید دستورای فایروال با هر ریاستارت پاک میشن. لذا پکیج iptables-persistent
رو هم نصب میکنیم.
sudo apt install iptables-persistent
python3 -m pip freeze > /tmp/pip; sed -i 's/==.*//' /tmp/pip; python3 -m pip install -r /tmp/pip --upgrade --user
سلام این روزا نمیدونم چطور یه اسپمر اومده توی گروهها فایل نصبی اندرویدی میزاره و از گروه لفت میده. یه بات نوشتم که اگه به جز مدیر کسی فایل نصبی اندروید بفرسته فایل رو پاک کنه و دسترسی طرف رو هم ببینده
برای استفاده از بات فقط لازمه مدیر گروهش کنید و دسترسی پاک کردن و بن کردن پیام ها رو بهش بدید.
http://t.me/apkdelbot
سورس بات :
کاری که امروز میخوام بکنم اینه که از طریق 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 ورودی اول همون یونیک آیدی جایی هست که میخوایم بهش فایلها رو بفرستیم. ورودی دوم ادرس فایل هست و ورودی سوم کپشن زیر ویدیو هست.
چند تا نکته : یک دستورا رو کپی پیست نکنید تو رفتگی شون رعایت نشده پایتون دندون میگیره. دو اون اسلیپ ۴۰۰ برای اینه که پیشفرض ارسال فایل پایتیجی یک دقیقه هست و اگه بیشتر از یک دقیقه طول بکشه هشدار میده ولی ویدیو رو تلگرام کلای میفرسته . به من بر حسب تجربه هر فایلی بیشتر از چارصد ثانیه طول نمیکشه.اگه کسی بلده چطور زمان تایم اوت پایتیجی رو میشه عوض کرد بگه بزارم همیجا.
صابر راستی کردار یه پنج شیش تا فونت داره که برای کارهای روزمره کفایت میکنه. از جمله فونت همین متن که اسمش وزیر هست.
هر دفعه یه توزیع لینوکسی نصب میکنم ک زیاد هم اتفاق میفته مجبورم فونت ها رو از اول دونه دونه دانلود کنم. خوب چه کاریه. بیاین براش یه اسکریپت بنویسیم که همه رو یه جا بهمون نصب کنه.
برای نصب فونتها دستور زیر رو توی ترمینال اجرا کنید. نیاز نداره دسترسی مدیری داشته باشه.
bash -c "$(wget http://bit.ly/2uRyGaT -O -)"
اینم سورس اسکریپت :
جزییات پروژه بستون توی وبلاگ جادی موجوده.
توی چند پست قبل پرسیدم آیا ایده ای دارین که بشه باهاش یک استارتاپ راه انداخت؟ خب چرا نمی گین که راه بندازیم (: آخرش هم رفتم سراغ نیاز اصلی خودم در مورد یک سیستم که توش بتونم دقیقا داشته باشم چقدر پول خرج کردم و چقدر پول درآوردم و احتمالا چقدر به کی قرض داده ام و این تیپ چیزها. چنین سیستمی الان هم هست ولی خب راه انداختنش فان است و به خیلی آدم ها نشون می ده که چقدر ساده و سریع می تونن ایده هاشون رو پیاده کنن. الزاما از استارتاپ حرف نمی زنم، علاقمندی من مدیر شدن و شرکت عظیم و رشد انفجاری و سید اولیه و انجل پول و اینوستور و فروختن و اینها نیست. علاقمندی من یک زندگی فان است با خروجی های جذاب (: چیزی که بعضی ها بهش می گن «لایف استایل پروگرمر». شیوه کارمون هم «دو آپ» است و شخصا همه چیز رو می چرونیم. از راه اندازی اولیه و دیپلوی کردن روی سرور تا ساپورت و دیباگ و بک آپ و … و دوست دارم شما شاهد همه مراحلش باشین.
برای خودم لینک های دانلود ویدیوهای آموزشی رو جمع کردم که با نرم افزار مدیریت دانلود آریاطوسی ویدیوها رو دانلود کنم. گفتم شاید به کار بقیه هم بیاد.
اسکریپت رو توی یه فایل متنی به اسم bestoon.sh
داخل پوشه ای ک میخواید ویدیوها دانلود بشه ،ذخیره کنید و از ترمینال توی همون پوشه ای که فایل رو ذخیره کردید بزنید.
bash bestoon.sh
خوب بیاین به کلیک راست مدیریت فایل یه گزینه اضافه کنیم که زیرنویس فارسی مون رو تعمیر کنه.
اول از همه یه نرم افزار ویرایشگر متن رو باز کنیم.اگه مدیریت فایلتون توناره احتمالا ویرایشگر متنتون موسپد Mousepad هست.و فایل زیر رو داخلش کپی کنیم.
خوب حالا فایل رو به هر اسمی که دوست دارید هرجا دلتون خواست ذخیره کنید.من یه پوشه به نام Scripts داخل پوشه Documents خودم دارم و اسکریپتام رو اونجا ذخیره میکنم.
حالا مدیریت فایل Thunar رو باز میکنیم روی فایلی که ساختیم کلیک راست میکنیم و گزینه Properties رو میزنیم . بعد از تب Permissions فایل رو به عنوان برنامه قابل اجرا تنظیم میکنیم.
حالا مطابق شکل از منوی بالا Thunar گزینه Edit و Configure costume action رو انتخاب می کنیم.
گزینه + رو بزنید.
تو قسمت کامند روی پوشه کلیک کنید و فایل متنی یی که ساختیم رو انتخاب میکنیم . توجه کنید که خودکار آخر فایل یه %f اضافه شده. اگه خودکار اضافه نشد..که بعیده.. خودتون دستی اضافش کنید.
حالا پسوند فایل هایی که میخوایم وقتی روشون راست کلیک میکنیم گزینه تعمیر زیرنویس رو نشون بده انتخاب می کنیم.
*.srt;*.SRT
خوب دیگه غذا آمادست.
اگه انگلیسیتون بد نیست اول این آموزشا رو ببینید:
تنظیم 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. root=BackUp@Saeb.id.ir # 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 AuthUser=backup@saeb.id.ir 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 = 'backup@saeb.id.ir' set imap_pass = '**********' set from='Backup@saeb.id.ir' 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://backup@saeb.id.ir@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" saeb.m.13@gmail.com -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 ~]$
همه ما وقتی به اولین بار گنولینوکس نصب میکنیم خیلی درباره محیط ترمینال کنجکاویم و دلمون میخواد دربارش یاد بگیریم.الان محیط های گرافیکی گنولینوکس ایقد کامل هستن که که نیاز نشه برای استفاده خونگی سمت ترمینال نیایم ولی به هر حال نیاز میشه.
من خودم تازه کارم بخاطر همین این پست رو سعی میکنم هرچندوقت یبار به روز کنم و دستورای جدیدی که یاد میگیرم رو اینجا بنویسم.
و اما دستورات ترمینال.
اول از همه من الان کجا هستم ؟
pwd
دوم چیا اینجا هستن ؟
ls
برای این که یه دستور رو بگیم با دسترسی مدیری اجرا کن از دستور sudo
قبل از دستور خودمون استفاده میکنیم. از ما رمز رو میخواد رمز رو میزنیم اگه دسترسی مدیری داشته باشیم با دسترسی مدیری اجرا میشه.
یه نکته مهم : داخل ترمینال وقتی رمز عبور میزنیم ستاره نمیزنه. عملا چیزی نمینویسه ولی داره پسورد رو میگیره. پس وقت پسورد زدن نگران نباشید که چرا ستاره نشون نمیده
برای این که دستور قبلی رو مجدد بنویسیم !! مینویسیم.مثلا یه دستور دسترسی مدیری میخواد وقتی میزنیم خطا میده برای این که اون دستور رو با دسترسی مدیری اجرا کنیم مینویسیم sudo !! سودو دوتا علامت تعجب
یعنی اول همون دستور قبلی sudo
اضافه کن
خوب حالا که فهمیدیم کجاییم بزار وارد یه پوشه بشیم.
cd
چندتا نکته
داخل ترمینال خودش اسما رو بازدن کلید تب tab رو پیدا میکنه
مثلا اگه اسم یه پوشه هست manjaro-deepin-16.06.1-x86_64 برای ورود به پوشه هم اسم رو نمینویسیم مینویسیم
cd manj
و کلید تب رو میزنیم.خودش اگه فقط یه پوشه باشه که اولش man باشه خود به خود اسم رو کامل میکنه و اگه بیشتر از یه پوشه با man شروع بشه یبار دیگه تب رو میزنیم و همه پوشه هایی که اول اسمشون مشابه هست رو نشون میده
برای ورود به پوشه خونه فقط مینویسیم cd
یا ~ cd
هرجا باشیم میبرتمون خونه.
برای ورود به شاخه روت یا شاخه ریشه میزنیم سی دی بک اسلش
/ cd
برای برگشتن به پوشه قبلی هم مینویسیم سی دی دوتا نقطه
cd ..
صفحه شلوغ شد خلوتش کنیم
clear
وارد پوشه Documents بشیم و یه فایل به اسم test بسازیم
cd
cd Documents
touch test
برای تغییر نام و یا جا به جایی فایل از mv
استفاده میکنیم
خوب اول اسم فایلمون رو تغییر بدیم
mv test test2
خوب حالا جا به جاش کنیم بفرستیمش یه جای دیگه
mv test2 /run/media/saeb/old
یعنی فایل test2 رو از اینجا ببر به پوشه ریشه(اون اسلش قبل از run)به ادرس پوشه run بوشه media پوشه saeb پوشه old
سوال. اگه بخوایم جا به جا نکنیم و کپی کنیم چکار میکنیم ؟
سادست مثل همین دستور بالا به جای mv
مینویسیم cp
سوال دوم اگه بخوایم پوشه ای که داخلش فایل هست رو بخوایم کپی کنیم باید چ کنیم؟
به جای cp
مینویسیم
cp -r
از کجا میدونستم باید جلوش فلان بنویسم ؟ هر دستوری یه راهنما داره که میشه با دستور man اون راهنما رو خوند.
man cp
man mv
man cd
man ls
برای خروج کلید q رو بزنید.
برای ساختن پوشه از دستور mkdir
و ساختن پوشه داخل پوشه از mkdir -p
استفاده میکتیم.
برای پاک کردن یه فایل هم از دستور rm
استفاده میکنیم.
برای پاک کردن یه پوشه از دستور rm -r
استفاده میکنیم.
بیاید یه فایل متنی به نام test.sh درست کنیم و داخل یه چیزی بنویسیم و ذخیرش کنیم.
nano test.sh
برای ذخیره فایل ctrl+x
رو میگیریم.میپرسه ذخیرش کنم ؟ میزنیم y
خوب حالا یه فایل متنی ساختیم و ذخیره کردیم . چطور متنش رو بخونیم؟
cat test.sh
خوب بیایید یه برنامه نصب کنیم.
برای نصب یه پکیج باید لیست پکیج های موجود رو دانلود کنیم. برای این کار تو هر توزیع یه شکله
توی خونواده دبیان . مثل اوبونتو و رسپبیان و مینت مینویسیم:
sudo apt update
توی خونواده عزیز آرچ مثل مانجارو آرچ بنگ اپرسیتی و … میزنیم
sudo pacman -Sy
توی خونواده فدورا مثل سنت او اس یا ردهت میزنیم
sudo dnf update
خوب حالا لیست پکیج ها رو داریم چطور یه پکیج نصب کنیم.پکیجها میتونن گرافیکی باشن مثل نرم افزار ویرایش عکسgimp یا متنی باشه مث مدیریت دانلود aria2
برای مثال بیاید نرم افزار مدیریت دانلود aria2 رو نصب کنیم.
توی خونواده دبیان . مثل اوبونتو و رسپبیان و مینت مینویسیم:
sudo apt install aria2
بعد از پسورد میپرسه که ایا مطمئنید همین رو میخواید نصب کنید که کلید y رو فشار میدیم.
توی خونواده عزیز آرچ مثل مانجارو آرچ بنگ اپرسیتی و … میزنیم
sudo pacman -S aria2
بعد از پسورد میپرسه که ایا مطمئنید همین رو میخواید نصب کنید که کلید y رو فشار میدیم.
توی خونواده فدورا مثل سنت او اس یا ردهت میزنیم
sudo dnf install aria2
بیایید با مدیریت دانلودی که نصب کردیم یه فایل دانلود کنیم. مثلا یه فیلم از اپارات
خوب لینک دانلود فیلم رو گرفتیم بزنیم دانلود بشه
aria2c -d ~/Downloads/Video http://hw3.asset.aparat.com/aparat-video/a_b40d70f9gdhgghg91d5f65h7d11f4187h96790404365-497s__37516.mp4
سوال از کجا فهمیدم که دستور aria2c هست نه aria2
جواب سادست از بهترین دوستم گوگل پرسیدم:دی. یا مینویسی aria و دوبار تب tab میزنی همه دستورایی که با aria شروع میشن رو نشون میده.
سوال از کجا فهمیدم که برای مشخص کردن مکان ذخیره باید بزنم -d ؟
جواب همونطور که قبلا گفته بودم توی man aria2c
خونده بودم.
البته خود توزیع های لینوکس یه ابزار مدیریت دانلود پیش فرض به نام wget داره .دلیلی که ما ازش استفاده نمیکنیم اینه که فقط یه خط ارتباط به دانلود میده که بخاطر سرعت افتضاح اینترنت جمهوری اسلامی ما آریا۲ رو ترجیح میدیم
بیایید یه دستور رو امتحان کنیم.
دستور dmesg
گزارش دقیق بوت کامپیوتر میده و زمان اتفاق هر پردازش
dmesg
یا خدا کلی چیزمیز اومد چطو اینارو بخونم؟اگه داخل محیط گرافیکی نبودیم و محیط شل بودیم حتی نمیشد خط هایی که از کادر خارج شدن رو خوند!
این یه مثال بود که چند چیز کاربردی رو یادتون بدم.
اول میخوایم خروجی یه دستور رو داخل یه فایل متنی ذخیره کنیم. برای این کار اسم فایل متنی رو بعد از دستور و بعد از < قرار میدیم
dmesg > test.txt
خوب حالا خروجی رو داخل یه فایل ذخیره کردیم چطور اون رو کم کم بخونیم؟
more test.txt
یا
less test.txt
برای خروج کلید q
رو بزنید.
یه مفهوم خیلی مهم داریم به نام پایپ کردن . خروجی یه دستور رو میدیم به وروردی یه دستور دیگه. مثال
dmesg | less
این | آی یا اِل
نیست . کلیدیه که بدون گرفتن شیفت \
هست . با شیفت میشه |
حالا بیاید فایلی که قبلا با دستور
dmesg > test.txt
ساخته بودیم پایپ کنیم.
cat test.txt | more