وبلاگ شخصی علی مقدس زاده

۱۱ مطلب با موضوع «لینوکس :: ترمینال» ثبت شده است

  • ۰
  • ۰
برای اینکه بتونید یک symlink در سیستم عامل ویندوز داشته باشید، لازم هست که ابتدا Command Prompt رو با دسترسی administrator اجرا کنید:


بعد از اجرای شدن Command Prompt می‌تونید با استفاده از دستور زیر symlink رو ایجاد کنید:
> mklink /D Link Target

که در این دستور سوییچ D/ به این موضوع اشاره میکنه که symlink ما برای یک پوشه ساخته میشه، Link نام symlink و Target مسیر پوشه اصلی رو مشخص می‌کنه.


  • علی مقدس زاده
  • ۰
  • ۰

گاهی پیش میاد که نرم افزار خاصی فقط بصورت rpm منتشر میشه، این طور مواقع برای استفاده از این نرم افزارها بر روی توزیع‌هایی که از بسته‌های با فرمت deb استفاده می‌کنن میشه از نرم افزار alien استفاده کرد. وظیفه این نرم افزار تبدیل بسته‌های rpm به deb هست، البته باید به این نکته هم توجه داشته باشید که تبدیل بسته‌های rpm به deb به این معنی نیست که همه بسته‌های rpm رو میشه رو توزیع‌های مبتنی بر دبیان نصب کرد.

نصب نرم افزار alien با استفاده از دستور زیر انجام میشه:

sudo apt-get install alien dpkg-dev debhelper build-essential

تبدیل بسته rpm به deb با استفاده از نرم افزار alien:

sudo alien packagename.rpm

برای نصب بسته deb ایجاد شده هم از دستور زیر استفاده میشه:

sudo dpkg -i packagename.deb


منبع: http://www.howtogeek.com/howto/ubuntu/install-an-rpm-package-on-ubuntu-linux

  • علی مقدس زاده
  • ۰
  • ۰

همونطور که اطلاع دارین، در توزیع‌های مبتنی بر دبیان، زمانیکه ما از ابزار apt-get برای نصب نرم افزار استفاده می‌کنیم، ابتدا بسته‌های مورد نیاز دانلود و سپس عملیات نصب آغاز میشه. معمولا مقدار زیادی از زمان نصب نرم افزار صرف دانلود بسته‌های مورد نیاز میشه و اگر ما بتونیم این زمان رو کاهش بدیم سرعت نصب نرم افزار افزایش پیدا میکنه.

apt-fast یک اسکریپت هست که بر روی apt-get پیاده شده و امکان دانلود بسته‌ها بصورت موازی و با تعداد connection های زیاد رو فراهم میکنه و به این ترتیب سرعت دانلود بسته‌ها رو افزایش میده.

برای نصب این اسکریپت در توزیع‌های اوبونتو 14.04 و بعد از اون سه مرحله زیر رو باید انجام داد:

sudo add-apt-repository ppa:saiarcot895/myppa
sudo apt-get update
sudo apt-get install apt-fast

بعد از نصب، تمام کارهایی که با apt-get انجام میدادید رو میتونید با apt-fast انجام بدین:

apt-fast update
apt-fast install ...
apt-fast upgrade
...

برای توضیحات بیشتر میتونید به لینک زیر مراجعه کنید:

https://github.com/ilikenwf/apt-fast

  • علی مقدس زاده
  • ۰
  • ۰

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

دستوراتی که برای مدیریت مدیریت VirtualBox استفاده میشه، با عبارت VBoxManage شروع میشن؛ برای مشاهده لیست تمام دستورات و امکانات میتونید از دستور VBoxManage --help استفاده کنید.

برای استفاده از دستورات مختلف، لازم هست که ما نام دقیق ماشین مجازی و یا uuid اون رو بدونیم، برای این کار از دستور زیر استفاده می‌کنیم:

$ VBoxManage list vms
"XP" {1b77b5b7-b69a-403a-97a3-ffd9d633d16a}
"Windows 7" {a07eba26-7386-4af9-8e04-80b7324c803d}

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

$ VBoxManage startvm <uuid|vmname>

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

$ VBoxManage controlvm <uuid|vmname> pause|resume|reset|poweroff|savestate


  • علی مقدس زاده
  • ۰
  • ۰

برای من گاهی اوقات پیش میومد که لازم داشتم پس از انجام عملیات خاصی، سیستم رو suspend کنم. مثلا سیستم رو برای نصب یک سری نرم افزار روشن میذاشتم و میخواستم بعد از نصب، سیستم suspend بشه.

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

# pm-suspend
# pm-hibernate

خوب حالا خیلی راحت میتونم با استفاده از دستور زیر به سیستم اعلام کنم بعد از نصب نرم افزار سیستم رو suspend کنه:

# apt-get install ... ; pm-suspend


منبع: http://www.askubuntu.com


ویرایش:

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

# systemctl suspend


  • علی مقدس زاده
  • ۰
  • ۰

هر کاربر لینوکس که از ترمینال استفاده میکنه، معمولا با توجه به نوع کاری که انجام میده از یک سری دستورات تکراری استفاده میکنه. به عنوان مثال افرادی که مدیریت سرورها رو به عهده دارن مدام با استفاده از ssh به سرورهای مختلف دسترسی دارن که یادآوری آدرس‌های IP این سرورها معمولا کمی مشکل هست و یا افرادی که مشغول توسعه نرم افزار هستن ممکن هست مدام با دستورات git سر و کار داشته باشن. در این مطلب روشی رو با هم بررسی می‌کنیم که با استفاده از اون دیگه نیازی به وارد کردن دستورات طولانی در ترمینال وجود نداره؛ در واقع تصمیم داریم تا با اضافه کردن دستورات جدید به bash کار خودمون رو از بابت وارد کردن دستورات طولانی راحت کنیم.

  • علی مقدس زاده
  • ۰
  • ۰

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

برای بررسی مشکل، دستور ssh رو با سوییچ v- اجرا کردم تا ببینم مشکل مربوط به کجا میشه:

$ ssh -v ali@192.168.1.100
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file /home/ali/.ssh/id_rsa type 1
debug1: identity file /home/ali/.ssh/id_rsa-cert type -1
debug1: identity file /home/ali/.ssh/id_dsa type -1
debug1: identity file /home/ali/.ssh/id_dsa-cert type -1
debug1: identity file /home/ali/.ssh/id_ecdsa type -1
debug1: identity file /home/ali/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/ali/.ssh/id_ed25519 type -1
debug1: identity file /home/ali/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA c4:8e:2b:b2:95:53:0c:98:d9:29:7c:ac:c4:0a:65:37
debug1: Host '192.168.1.100' is known and matches the ECDSA host key.
debug1: Found key in /home/ali/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received # دقیقا در این قسمت برای چند ثانیه عملیات متوقف می‌شد
...

بعد از یک جستجوی ساده در اینترنت به این نتیجه رسیدم که اگر عبارت UseDNS no رو به فایل etc/ssh/sshd_config/ اضافه کرده و یک مرتبه سرویس ssh رو restart کنم مشکل برطرف می‌شه.

# echo 'UseDNS no' >> /etc/ssh/sshd_config
# service ssh restart

بعد از انجام مراحل بالا سرعت اتصال به سرور افزایش چشمگیری داشت :)

  • علی مقدس زاده
  • ۰
  • ۰

در این پست قصد معرفی پایگاه داده PostgreSQL و یا مقایسه آن با سایر پایگاه داده‌ها را نداریم، بلکه فقط نحوه راه اندازی این سرویس در سیستم عامل اوبونتو به صورت مرحله به مرحله آورده می‌شود.

  • علی مقدس زاده
  • ۰
  • ۰

گاهی اوقات لازم داریم که از بین نرم افزارهایی که قابل upgrade شدن هستن، فقط اونایی که مد نظر داریم رو به روز کنیم. یک روش این هست که از طریق نرم افزار Software Updater نرم افزارهایی که لازم داریم رو انتخاب کنیم و اون‌ها رو به روز کنیم ولی اگر تصمیم داریم این کار رو از طریق خط فرمان انجام بدیم میتونیم از دستور زیر استفاده کنیم:

apt-get install --only-upgrade <packagename>

دستور بالا فقط در صورتیکه پکیج مورد نظر روی سیستم نصب شده باشه اون رو به روز میکنه. حالا اگر شما دوست دارید که این دستور در صورت نصب نبودن پکیج خودش اون رو نصب کنه و اگر نصب شده اون رو به روز کنه میتونید عبارت only-upgrade-- رو از دستور حذف کنید.

  • علی مقدس زاده
  • ۰
  • ۰

بعضی از اوقات (به عنوان مثال رعایت موارد امنیتی، انتقال فایل و به روز رسانی‌های مکرر یک سرور و ...) لازم هست برای اتصال ssh به یک سرور به جای استفاده از کلمه عبور از کلید استفاده شود. برای این منظور موارد زیر را به ترتیب انجام می‌دهیم:

  • علی مقدس زاده