আপনার টার্মিনাল পছন্দগুলিতে, 'স্টার্টআপ' ফলকে চেক করুন। আপনার কাছে বিকল্প রয়েছে:
শেলগুলি এর সাথে খোলা:
- ডিফল্ট লগইন শেল (/ usr / বিন / লগইন)
- আদেশ (সম্পূর্ণ পথ)
আমি 'ডিফল্ট' চয়ন করেছি ... আপনার যদি কাস্টম কমান্ডটি চয়ন করা থাকে তবে এটি একটি কারণ হতে পারে।
পরবর্তী পয়েন্টটি শেলটি লগইন শেল হিসাবে শুরু হয়েছে কিনা তা যাচাই করার জন্য। আমি যখন একটি ps
তালিকা করি, আমি দেখতে পাই:
PID TTY TIME CMD
24088 ttys000 0:00.03 -sh
24614 ttys001 0:00.03 -sh
25127 ttys002 0:00.05 -sh
35544 ttys003 0:00.08 -sh
40926 ttys004 0:00.03 -sh
এখানে মূল পয়েন্টটি -
শেলের নামের সামনে ' ' '; এটি শেলটিকে প্রোফাইল এবং সম্পর্কিত স্টাফ দিয়ে চালাতে বলে। যদি আপনি এটি আপনার বর্তমান উইন্ডোতে না দেখেন তবে আপনার না করা পর্যন্ত আপনাকে সেটিংসের সাথে ডুডলের দরকার হতে পারে।
টার্মিনাল পছন্দগুলিতে সেটিংস ফলকটিতে একটি শেল বিকল্পও উপস্থিত রয়েছে। আমার মধ্যে / বিন / শ তালিকাভুক্ত রয়েছে।
আপনার এই প্রয়োজন হবে না
যদি খারাপটি সবচেয়ে খারাপের দিকে চলে আসে তবে আপনি অতীতের সময়ে অন্যান্য কিছু সহযোগী সিস্টেমের মতো করেও করতে পারেন - আমি একটি প্রোগ্রাম 'লগইনশ' তৈরি করেছিলাম যা আমি উইন্ডো থেকে চালাতে পারি এবং ফলস্বরূপ এটি আমার নির্বাচিত শেলটি ' -
' দিয়ে কার্যকর করতে পারে এটি একটি লগইন শেল হিসাবে কাজ করতে বলতে উপসর্গ।
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "stderr.h"
#include "jlss.h"
#ifndef DEFAULT_SHELL
#define DEFAULT_SHELL "/bin/sh"
#endif /* DEFAULT_SHELL */
#ifndef MAX_SHELLBASENAME
#define MAX_SHELLBASENAME 256
#endif /* MAX_SHELLBASENAME */
#ifndef lint
static const char sccs[] = "@(#)$Id: loginsh.c,v 4.2 2005/06/22 19:44:07 jleffler Exp $";
#endif
int main(int argc, char **argv)
{
char *shell;
char shellname[MAX_SHELLBASENAME];
err_setarg0(argv[0]);
/* Which shell to use? */
if ((shell = getenv("SHELL")) == (char *)0)
shell = DEFAULT_SHELL;
/* Set up argv[0] in new argument list; reuse old argv space */
shellname[0] = '-';
strcpy(&shellname[1], jlss_basename(shell));
argv[0] = shellname;
/* Execv must work -- the shell must be an executable program */
execv(shell, &argv[0]);
err_syserr("cannot execute shell %s\n", shell);
/* NOTREACHED */
return(EXIT_FAILURE);
}
( "stderr.h"
শিরোনাম এবং ' err_*
' রুটিনগুলি আমি সর্বত্র ব্যবহার করি এমন একটি ত্রুটি প্রতিবেদন করার প্যাকেজ। jlss_basename()
ফাংশনটি মূলত সিস্টেমের সরবরাহিত সংস্করণগুলির মতো যা পসিক্সে পাওয়া যায় <libgen.h>
))