بازم شبیه پست های قبلی م،بعضی وقتا بعضی دستورات به کار آدم میاد شدید..هی باید در به در گوگل و جستجو باشم.هزار تا تب باز کنم تا به اون چیزی که میخوام برسم.اینجا میام نکات و دستوراتی که خیلی کاربرد دارن تو لینوکس رو به صورت عام میگم.تو اینجا نکات ریز آرچ رو توضیح دادم..ترکیب اینها به شدت به کار آرچ دوستان میاد. دی:

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

/  :دایرکتوری ریشه است.بقیه دایرکتوری ها از این منبع منشعب می شوند.

bin/ :این دایرکتوری شامل برنامه های اجرایی ست که در حالت تک کاربره مورد استفاده قرار میگیره و برای بالاآوردن سیستم یا تعمیر اون میتونید به این دایرکتوری سر بزنید.

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

dev/ :فایل ها یا دیوایس های خاص که به ابزارهای فیزیکی هم چون هارددیسک ها،کیبورد،مانیتور،موس،مودم اشاره میکنند.

etc/شامل فایلهای پیکربندی محلی است.برخی از بسته های نرم افزاری بزگتر هم چون apache خودشون شامل زیردایرکتوری های خودشون در etc/ هستند.مثلا etc/httpd/.برخی از زیردایرکتوری های مهم در etc/:

etc/skel/:وقتی حساب کاربری جدیدی ایجاد می شود؛فایل هایی که در این دایرکتوری قرار دارند،معمولا در دایرکتوری home کاربر کپی می شوند.

etc/X11/:فایل های پیکره بندی برای سیستم مدیریت پنجره X11.

etc/sysconfig/:فایل های پیکره بندی مهمی که توسط اسکریپت SysV مورد استقاده قرار میگیرد.این اسکریپت در دایرکتوری های etc/init.d/ و etc.rcX/ قرار دارد

*.ect/cron/:فایل های پیکره بندی دیمون های کرون.که برای اجرای دستورات از پیش برنامه ریزی شده مورد استفاده قرار میگیرد.

home/:جایی برای نگهداری داده ها و فایل های شما. در نصب های بزرگ،ساختار دایرکتوری هوم بسته به نظر مدیر محلی سیستم ممکن است متفاوت باشد.

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

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

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

[saeed@saeed ~]$ whereis docky
docky: /usr/bin/docky /usr/lib/docky /usr/share/docky /usr/share/man/man1/docky.1.gz

اطلاع از دایرکتوری محل نصب نرم افزار

[saeed@saeed ~]$ which docky 
/usr/bin/docky

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

[saeed@saeed ~]$ systemctl list-units -t service --all

نمایش مسیر جاری در ترمینال

pwd

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

cp -r "source" "destination"

نکته:سوییج -r به معنای recursiveبه خاطر این است که تمامی فایل ها و پوشه های داخل سورس به مبدا کپی شود.

پیدا کردن لاگ های سیستم برای عیب یابی:

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

اولین و مهم ترین نکته اینه که کلیه فایل های لاگ سیستم توی مسیر زیر ذخیره میشن:

/var/log

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

dmesg | lpr

و در نهایت ابزارهای گرافیکی ای هم برای این کار توسعه داده شدن که از جمله اونها میشه به gnome-logs اشاره کرد.

نمایش اطلاعات سیستم

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

تشخیص نوع بوت لودر سیستم(bios یا uefi)

روش اول:نصب نرم افزار

sudo pacman -Qs efibootmgr 

روش دوم:

[saeed@saeed ~]$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

روش سوم:

http://www.eightforums.com/tutorials/29504-bios-mode-see-if-windows-boot-uefi-legacy-mode.html

پیدا کردن نام سیستم

شما می‌توانید از یکی از دو دستور زیر جهت نمایش نام سیستم بهره ببرید:

$ hosname
$ cat /etc/hostname

نمایش نام دامنه سیستم دی‌ان‌اس:

$ dnsdomainname

نمایش Fully Qualified Domain Name (FQDN) سیستم

hostname -f

پیدا کردن حجیم ترین زیر دایرکتوری

du -a | sort -n -r | head -5

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

sudo dmidecode -s system-serial-number
sudo dmidecode -s system-manufacturer
sudo dmidecode -s system-product-name
sudo dmidecode | more

یا می‌توانید از دستور lshw استفاده نمایید:
lshw | more
sudo lshw -short

نمایش اطلاعاتی در مورد سخت‌افزار نصب شده

sudo lsdev

نمایش اطلاعات مربوط به پردازنده (CPU) سیستم

cat /proc/cpuinfo

man page  ها را گرافیکال تر ببینید

کافیه دستور زیر رو به فایل bashrc. کاربر جاری تون اضافه کنید و شروع کنید به خوندن من هلپ ها. :)
man () { yelp "man:$@"; }
حالا میتونید به راحتی تیکه کدها یا مثال ها رو کپی کنید یا به راحتی به خط خاصی برید یا دنبال عبارت مد نظرتون رو بگردید.

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

دو راه عمده وجود دارد:

1-استفاده از xargs

echo Hello World
echo GoodBye
echo Goodbye cruel world
 حالا موازی ش میکنیم:
cat command.txt | xargs -I CMD --max-procs=3 bash -c CMD

2-استفاده از parallel می باشد.

parallel echo ::: A B C

زمان سپری شده برای اجرای هر دستور

فرض کنید بخواید یه عملیات جستجوی فایل رو تو مسیر خونگی تون بپمایید.یا میخوایید ببینید چقد طول میکشه تا زیردایرکتوری های حچیم تون لیست بشه با LS.کاری که میکنید راحته.کافیه یه time بذارید قبل هر دستوری که میخواین تا زمان شو براتون محاسبه کنه:
[saeed@saeed Downloads]$ time ls -l *s
-rw-r--r-- 1 saeed users    0 Apr  6 22:03 checkupdates

Persepolis:
total 24
drwxr-xr-x 2 saeed users 4096 May 14 19:21 Audios
drwxr-xr-x 2 saeed users 4096 May 14 19:21 Compressed
drwxr-xr-x 2 saeed users 4096 May 14 19:21 Documents
drwxr-xr-x 2 saeed users 4096 May 14 19:21 Others
-rw-r--r-- 1 saeed users 1671 May 14 19:37 report
drwxr-xr-x 2 saeed users 4096 May 14 19:21 Videos

'Print Form_files':
total 4
-rw-r--r-- 1 saeed users 3500 Mar 15 18:21 sanjesh-print-logo.jpg

real    0m0.011s
user    0m0.007s
sys    0m0.000

لیست دسکتاپ ها نصب شده در سیستم:
ls -l /usr/share/xsessions/ 

اضافه کردن آیکون به desktop entry.

بعضی وقت ها هست مثلا موقع دانلود foxitreader.که آیکون همراه بسته ش نیست.و محتویات فایل دسکتاپ انتری ش اینجوریه:
[Desktop Entry]
Name=Foxit Reader
Comment=View pdf documents
Keywords=pdf;octet-stream;
StartupNotify=true
Terminal=false
Type=Application
Categories=Application;Office;Viewer;X-Red-Hat-Base;
MimeType=application/pdf;application/octet-stream;
Icon=FoxitReader
Exec=/home/saeed/opt/foxitsoftware/foxitreader/FoxitReader.sh %F
اما ملاحظه میشه که اصلا آیکونی داخل فولدر برنامه نیست.ولی یه آرایه داریم به نام:
Icon=FoxitReade
سوالی که پیش میاد اینه که این در واقع میره از کجا میخونه آیکون رو.جواب این هستش که تمامی آیکون ها باید تو مسیر ~/.icons باشن یا اگه میخواین کل کاربرها بهش دسترسی داشته باشن باید اونا رو بذارین تو مسیر /usr/share/icons/ .آیکون هاتونو با پسوند png. بگیرید و بذارید تو این مسیرها.از این بعد هم تو داک تون هم تو سرچ تون بهشون دسترسی دارین.