انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: EnriqueTTE در 15 شهریور 1399، 01:22 قظ
-
نصف شبه و دارم تو انجمن میگردم
توی همین بخش یه موضوع دیدم با عنوان"چگونه اکلیپس (یا هر برنامهی دیگری) را در منوها قرار دهیم. (راهنما)"
انجام دادم و جواب داد حالا برام سوال پیش اومده که میشه برای اجرای هر برنامه کاری کرد که با نوشتن اسمش توی ترمینال اجرا بشه ؟
دقیقا همونطور که firefox رو مینویسین و اینتر میزنید بعدشم firefox اجرا میشه
میخوام برای هر برنامه مثلا همین eclipse کاری کنم که با وارد کردن اسمش یا هر دستور دیگه برنامه اجرا بشه،فقط به راهنمایی شما دوستان نیاز دارم ;D
-
نصف شبه و دارم تو انجمن میگردم
توی همین بخش یه موضوع دیدم با عنوان"چگونه اکلیپس (یا هر برنامهی دیگری) را در منوها قرار دهیم. (راهنما)"
انجام دادم و جواب داد حالا برام سوال پیش اومده که میشه برای اجرای هر برنامه کاری کرد که با نوشتن اسمش توی ترمینال اجرا بشه ؟
دقیقا همونطور که firefox رو مینویسین و اینتر میزنید بعدشم firefox اجرا میشه
میخوام برای هر برنامه مثلا همین eclipse کاری کنم که با وارد کردن اسمش یا هر دستور دیگه برنامه اجرا بشه،فقط به راهنمایی شما دوستان نیاز دارم ;D
آره خب. هر کاری ممکنه! ;D
ببین، هر دستوری که توی ترمینال میزنی، در واقع به یه فایل اجرایی اشاره میکنه. این فایلها توی مسیر /usr/bin/ هستن اصولا.
با دستور which میتونی بفهمی کجا قرار گرفتته.
مثلا اگه بزنی
which firefox
میگه که /usr/bin/firefox . یعنی فایل اجراییش اونجاست. پس اگه تو ترمینال مستقیم بزنی:
/usr/bin/firefox
فایرفاکس اجرا میشه!
این فایلهای اجرایی توی چند جای سیستم هستن. وقتی یه دستور رو توی ترمینال میزنی، میره همه رو میگرده و اگه پیداش نکرد، میگه command not found. همه اون جاهایی که میگرده توی متغیر PATH ذخیره شده که میتونی اینجوری ببینیشون:
echo $PATH
که به ترتیب از اول شروع میکنه به گشتن.
اصولا هر برنامهای که نصب کنی، خودش مسیرش به path اضافه میشه و یا لینکی از یه فایل اجرایی توی bin میسازه که با زدن دستورش، اجرا بشه.
اگه به هر دلیلی این اتفاق نیفتاده، یا خودت برنامه رو یه جایی دیگه نصب کردی، دو تا راه هست.
راه خیلی روتین اینه که از دستور alias استفاده کنی. مثلا این رو ببین:
alias do-update='sudo apt update'
با این کار، یجورایی یه دستور جدید تعریف میشه. یعنی با زدن do-update توی ترمینال، دستور sudo apt update اجرا میشه.
حالا، واسه اون کار میتونی بزنی:
alias COMMAND='/PATH/TO/SOMETHING'
یعنی آدرس مسیر فایل اجرایی اون برنامه رو بهش بدی.
اینجوری با هر بار زدن اون دستور مورد نظر، فایلی که میخوای (که میتونه اون برنامه باشه، یا یه اسکریپت که خودت نوشتی)، اجرا میشه.
البته با هربار بستن ترمینال، از بین میره و برای اینکه این اتفاق نیفته، این دستور رو به انتهای فایل .bashrc توی home اصافه کن تا با هربار باز کردن ترمینال، اجرا بشه.
و یا یه راه دیگه هم اینه که مستقیم بری اون مسیر رو به متغیر PATH اضافه کنی. (که راه اول خیلی بهتره و ایمنتر!)
-
وارد کردن همین چند دستور ساده توی فایل bashrc. دایرکتوری Home باعث شده که سرعت کار من با ترمینال چند برابر شده خیلی کاربردی این دستور alias
"alias q="exit
"alias c="clear
"alias l="ls -ltrh
"alias h="cd /home/username
"/ alias r="cd
"alias p="pwd
"alias hh="history
"alias t="tmux
"alias d="dir
"alias g="git
"alias gs="git status
-
جالب بود ،خیلی ممنون ;)
-
سوال دیگه
نمیشه کاری کرد وقتی با ترمینال یه برنامه رو باز میکنم خود ترمینال از دستور خارج بشه اما برنامه همچنان باز باشه؟
الان که تلگرامو باز میکنم داخل ترمینالم تلگرام بازه و داره اطلاعات تلگرامو نشون میده و اگه ببندمش تلگرامم بسته میشه ،میخوام جوری باشه که بعد باز کردن تلگرام ترمینال اماده گرفتن دستور جدید باشه و وقتی میبندمش تلگرام بسته نشه
-
سوال دیگه
نمیشه کاری کرد وقتی با ترمینال یه برنامه رو باز میکنم خود ترمینال از دستور خارج بشه اما برنامه همچنان باز باشه؟
الان که تلگرامو باز میکنم داخل ترمینالم تلگرام بازه و داره اطلاعات تلگرامو نشون میده و اگه ببندمش تلگرامم بسته میشه ،میخوام جوری باشه که بعد باز کردن تلگرام ترمینال اماده گرفتن دستور جدید باشه و وقتی میبندمش تلگرام بسته نشه
یه & بزار ته دستور
nohup telegram-desktop &
-
نمیشه
این دوتارو امتحان کردم اما جواب نداد :
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram&'
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram'&
-
نمیشه
این دوتارو امتحان کردم اما جواب نداد :
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram&'
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram'&
اولی درسته. فقط یدونه فاصله قبل & بدید.
اروری چیزی میده؟ متنش چیه؟
-
اولی درسته. فقط یدونه فاصله قبل & بدید.
اروری چیزی میده؟ متنش چیه؟
با هر سه روش تلگرام باز میشه بدون هیچ ارور یا وارنینگ
یدونه فاصله قبل & گذاشتم و این خروجیش شد :
smjt2000@Enrique:~$ telegram
[1] 4896
smjt2000@Enrique:~$ Telegram-Message: 11:41:59.337: You can disable tray icon counter with TDESKTOP_DISABLE_TRAY_COUNTER and make it look better if it is monochrome.
error: : cannot open
error: : cannot open
error: : cannot open
OpenType support missing for "DAOpenSansSemibold", script 11
OpenType support missing for "DAOpenSansSemibold", script 16
OpenType support missing for "DAOpenSansSemibold", script 18
همچنان ترمینال برای تلگرام مشغوله همونطور که میبینید یبار بعد زدن دستور ترمینال خارح میشه و بلافاصله مشغول میشه
سه تا اروری که نوشته قبلا هم بود بنظرم
-
(nohup telegram-desktop & ) && exit
-
چرا تلگرام رو از مخازن نصب نمیکنی؟
-
چرا تلگرام رو از مخازن نصب نمیکنی؟
یه مشکلی داشت که مجبور شدم از سایت خودش دانلود کنم ،الان یادم نیست مشکلش چی بود
-
مسکلش هرچی بچد، بزرگتر از مسکاب که با این مدل استفاده پیش میآد نیست. بگو چیه که حلش کنیم.
-
مسکلش هرچی بچد، بزرگتر از مسکاب که با این مدل استفاده پیش میآد نیست. بگو چیه که حلش کنیم.
مشکلش اینه که هروقت تلگرامو باز میکنم باید دوباره وارد اکانتم بشم و تنظیماتشو دوباره درست کنم .هربار که تلگرامو ببندم و از نوار اعلان بالا یا همون tray هم ازش خارج بشم باید اینکارو انجام بدم .
اما وقتی از سایت خودش فایلشو دانلود و نصب میکنم اصلا این مشکلو ندارم .
-
این یعنی پروندههای پیکربندی روی خونهات قابل خوندن نیست. میتونه مشکل از این باشه که تلگرام رو یک بار با حساب ریشه باز کرده باشی و دسترسیهای اون پروندهها رو خراب کرده باشه. شاخهٔ .local/share/TelegramDesktop رو پاک کن و دوباره تلگرام رو از مخازن نصب کن.
-
نمیشه
این دوتارو امتحان کردم اما جواب نداد :
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram&'
alias telegram='/home/smjt2000/Downloads/tsetup.2.3.2/Telegram/Telegram'&
اولی درسته. فقط یدونه فاصله قبل & بدید.
اروری چیزی میده؟ متنش چیه؟
سلام شما راهی برای اضافه کردن دستور کنترل + سی توی ترمینال برای پایان دادن به پروسه در حال اجرا توی قسمت alias سراغ دارید من هر چی گشتم توی نت پیدا نکردم یعنی بجاش فقط یک کلید مثلا c بزنیم بجای ctr + c
-
ctrl+c در واقع یه سیگنال میفرسته(terminate اگه اشتباه نکنم)
شما میتونی با استفاده از pidof و kill و killall یه alias بسازی براش ولی این alias رو باید توی ترمینال بهش بدید (یعنی مثلا برای استفاده ازش باید یه ترمینال دیگه داشته باشید و ازش استفاده کنید
این لینک هم هست
https://askubuntu.com/questions/620626/ubuntu-terminal-how-to-change-ctrl-c-interrupt-to-something-else (https://askubuntu.com/questions/620626/ubuntu-terminal-how-to-change-ctrl-c-interrupt-to-something-else)