Je! Ninaweza kuangalia ni ganda gani ninayotumia?


Nenda kwa jibu lililokubaliwa


Nilisoma kwamba terminal sio kitu lakini ganda, na Unix hutoa ladha tofauti za ganda:

  • Ganda la bourne (sh)
  • C ganda (csh)
  • TC ganda (tcsh)
  • Kamba ya Korn (ksh)
  • Bourne Tena ganda (bash)

Maswali:

  • Wakati mimi kufungua dirisha terminal, ni ganda gani kufunguliwa na default?
  • Je! Ninaangalia ni maganda mangapi yamewekwa?
  • Je! Ninabadilishaje ganda linalotumika kutoka akaunti yangu?

398





2015-02-28




Idadi ya majibu: 7


Unaweza kuandika amri ifuatayo katika terminal yako ili uone ni ganda gani unalotumia:

 echo $0
 

Matokeo yake yataonekana kama kitu hapa chini ikiwa unatumia terminal ya bash ( Bourne Again Shell ):

 -bash
 

471


2015-02-28

Ili kupata ganda unayo kwenye mazingira default unaweza kuangalia thamani ya SHELL utofauti wa mazingira:

 echo $SHELL
 

Ili kupata mfano wa sasa wa ganda, tafuta mchakato (ganda) kuwa na PID ya mfano wa sasa wa ganda.

Kupata PID ya mfano wa sasa wa ganda:

 echo "$$"
 

Sasa kupata mchakato kuwa na PID:

 ps -p <PID>
 

Kuiweka pamoja:

 ps -p "$$"
 

130


2015-02-28

$SHELL inakupa ganda la msingi. $0 inakupa ganda la sasa.

Kwa mfano: Nina bash kama ganda langu la msingi, ambalo ninatumia kwa Programu yangu ya Matumizi. Lakini kwa programu yangu ya iTerm2, mimi hutumia amri wakati dirisha linafungua : /bin/ksh .

Kwa hivyo yangu $0 inanipa /bin/ksh kwenye iTerm2. $SHELL hunipa /bin/bash kwenye iTerm2. $0 , $SHELL inanipa /bin/bash kwenye terminal


27


2016-11-18

Majibu mengine huwa yanatumia vitu maalum vya ganda, lakini tunajaribu kugundua ni ganda gani tunatumia, kwa hivyo wanadhani jibu la shida. Kwa mfano hakuna majibu yoyote yatakayofanya kazi kwa samaki.

 sh -c 'ps -p $$ -o ppid=' | xargs ps -o comm= -p
 

Badala yake tumia syntax ya $ $ katika ombi la sh, lakini basi tunatafuta PPID sio PID. Tumia PPID kupata cmd.

 sh -c 'ps -p $$ -o ppid=' | xargs -I'{}' readlink -f '/proc/{}/exe'
 

Asante kwa uboreshaji @muru


10


2018-04-06

Ili kujua ni ganda gani la msingi kwa mtumiaji wako, unaweza kukimbia:

 echo "$SHELL"
 

Kwa mfano ikiwa unatumia Bash unapaswa kupata mazao yafuatayo:

 /bin/bash
 

Ikiwa haukubadilisha usanidi wowote inapaswa kuwa Bash kwani Bash ndio ganda la msingi kwenye Ubuntu.


8


2015-02-28

Barua ya asili iliuliza maswali matatu. Majibu yaliyopewa yanafunika swali la kwanza, "Ninapofungua windows terminal, ni ganda gani linalofunguliwa kwa msingi?" Wao pia hujibu swali ambalo HAWAKUULIWA, ambayo ni "Ninawezaje kujua ni ganda gani ambalo kwa sasa linafanya kazi kwenye terminal?" Walakini, kwa kadri ninavyoona hakuna mtu aliyejibu swali la pili au la tatu la kuulizwa awali, ambalo ni "Je! Ninaangalia ni maganda mangapi yamewekwa?" na "Ninabadilishaje ganda linalotumika kutoka akaunti yangu?"

  • Kujibu "Je! Ninaangalia ni ganda ngapi imewekwa?" amri ifuatayo itaorodhesha makombora yote yanayopatikana:

paka / nk / ganda

Kwa mfano, kwenye usanidi chaguo-msingi wa Ubuntu 18.10 hii inatoa:

# / nk / ganda: Makombora halali ya kuingia

/ bin / sh

/ bin / dashi

/ bin / bash

/ bin / rbash

Walakini, kwa default sh ni kiunga cha mfano wa dash, wakati viungo vya rbash kwa bash na chaguo -r ("kizuizi cha vikwazo") kwa hivyo kuna ganda mbili tu, sio nne kama orodha ya hapo juu inavyoonyesha. Amri ifuatayo itakuonyesha ikiwa yoyote ya makombora yaliyoorodheshwa yana viungo vya kielelezo, na ikiwa ni kweli ambapo yanaunganisha: ls -l / bin


5


2018-11-07

Katika moja ya seva ambazo ninaunganisha, ganda la kuingia ni /bin/sh ambalo ni linganisho kwa /bin/bash

Majibu mengi hapa yatatoa sh , ambayo ingefanya OP kuzingatia kuwa ni Bourne ganda na sio GNU bash, isipokuwa hii ambayo inatoa /bin/bash

Chaguo jingine ambalo linafanya kazi kwa kesi hii ni:

 $ echo $SHELL
/bin/sh

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 May 31 16:15 /bin/sh -> bash

$ /bin/sh --help
GNU bash, version 4.2.10(1)
Usage:  /bin/sh [GNU long option] [option] ...
        /bin/sh [GNU long option] [option] script-file ...
 

0


2019-11-04