Ls නිමැවුමේ මෙම හරිත පසුබිම ඇතිවීමට හේතුව කුමක්ද?


162

ලිනක්ස් යන්ත්‍රයේ ls ප්‍රතිදානයේ තිර පිටපත

'Ls' මඟින් පෙන්වන නාමාවලි දෙකක් තිබේ. සාමාන්‍යයෙන් ඕනෑම තැනක ඩිරෙක්ටරි කළු පසුබිමක නිල් පාටයි. නමුත් පළමුවැන්න කොළ පැහැයෙන් නිල් පාට වන අතර කියවීමට නොහැකි ය. ඇයි මේ? කළු පැහැයෙන් නිල් පාට කරන්නේ කෙසේද, නැතහොත් අවම වශයෙන් අඳුරු දෙයක් මත සැහැල්ලු යමක් කරන්නේ කෙසේද?

මෙය උබුන්ටු 12.04 හි Gnome Terminal හි bash භාවිතා කරයි. කොන්සෝල් හි නිල් පැහැය තරමක් තද පැහැයක් ගන්නා අතර කියවීමට හැකි වුවද වඩා හොඳ විය හැකිය.

Answers:


178

ඒවායේ වර්ගය මත පදනම්ව වර්ණ ගැන්වීම හැරුණු විට (ශ්රව්ය ලිපිගොනු සඳහා ටර්කියුයිස්, ලේඛනාගාරය සහ සම්පීඩිත ලිපිගොනු සඳහා දීප්තිමත් රතු සහ රූප සහ වීඩියෝ සඳහා දම් පාට), lsඒවායේ ගුණාංග මත පදනම්ව ලිපිගොනු සහ නාමාවලි වර්ණවත් කරයි:

  • හරිත පසුබිමක් සහිත කළු පා text යෙන් පෙන්නුම් කරන්නේ නාමාවලිය අයිති පරිශීලකයා සහ කණ්ඩායම හැරුණු විට වෙනත් අය විසින් ලිවිය හැකි අතර ඇලෙන සුළු බිට් කට්ටලයක් ( o+w, +t) ඇති බවයි.
  • හරිත පසුබිම සමග නිල් පෙළ නාමාවලියක් ද හිමි ජනතාවට පරිශීලක හා කණ්ඩායම් වෙන් වෙනත් අය විසින්, ලිවිය-හැකි ගොනුවක් වන අතර, බව පෙන්නුම් නො ඇලෙන සුළු ටිකක් නියමිත කර ( o+w, -t).

Ask Ubuntu හි ස්ටෙෆානෝ පලසෝ ඕවර් විවිධ ගුණාංග වර්ණවලට වඩා මෙම උපදේශාත්මක පින්තූරය නිර්මාණය කර ඇත:

ටර්මිනලයේ විවිධ වර්ණවලින් අදහස් කරන්නේ කුමක්ද

ලෙස terdon පෙන්වා, වර්ණ සැකසුම් හරහා වෙනස් කළ හැකිය, dircolors. විවිධ වර්ණ සැකසුම් ලැයිස්තුවක් සමඟ ප්‍රවේශ විය හැකිය dircolors --print-database.

වැනි සෑම නිමැවුම් රේඛාවක්ම BLK 40;33;01ආකාරයෙන් වේ:

[TARGET] [TEXT_STYLE];[FOREGROUND_COLOR];[BACKGROUND_COLOR]
  • TARGET වර්ණක රීතිය සඳහා ඉලක්කය දක්වයි

  • TEXT_STYLE පෙළ විලාසය දක්වයි:

    • 00 = කිසිවක් නැත
    • 01 = තද
    • 04 = අවධාරනය කරන්න
    • 05 = ඇස් ඇරීම
    • 07 = ආපසු හැරවීම,
    • 08 = සඟවා ඇත
  • FOREGROUND_COLOR පෙරබිම් වර්ණය දක්වයි:

    • 30 = කළු
    • 31 = රතු
    • 32 = කොළ
    • 33 = කහ
    • 34 = නිල්,
    • 35 = මැජෙන්ටා
    • 36 = සයන්
    • 37 = සුදු
  • BACKGROUND_COLOR පසුබිම් වර්ණ දක්වයි:

    • 40 = කළු
    • 41 = රතු
    • 42 = කොළ
    • 43 = කහ
    • 44 = නිල්,
    • 45 = මැජෙන්ටා
    • 46 = සයන්
    • 47 = සුදු

දකුණේ සිට ආරම්භ වන ක්ෂේත්‍ර මඟ හැරිය හැක, උදාහරණයක් ලෙස .tar 01;31තද සහ රතු යන්නෙන් අදහස් වේ.

XTerm සහ අනෙකුත් බොහෝ නවීන පර්යන්ත ඉමියුලේටර් වර්ණ 256 සඳහා සහය දක්වයි.

XTerm 256-වර්ණ පෙරබිම් වර්ණ කේතයක් ආකාරයෙන් වේ:

38;5;[FOREGROUND_COLOR]

XTerm 256 වර්ණ පසුබිම් වර්ණ කේතයක් ආකාරයෙන් වේ:

48;5;[BACKGROUND_COLOR]

මෙහි දෙකම FOREGROUND_COLORසහ BACKGROUND_COLORඅංක 0-255 පරාසය වේ. 16 සහ 256 වර්ණ මාතයන් සඳහා වර්ණ කේතවල සම්පූර්ණ ලැයිස්තුවක් පහත තිර පිටුවේ දක්වා ඇත:

16 සහ 256 වර්ණ මාදිලියේ වර්ණ කේත


5
BACKGROUND_COLOR කේත FOREGROUND_COLOR ට සමාන නොවේ; පසුබිම් කේත 40-47
රයන් වී. බිස්සෙල්

38;5;xterm 256-වර්ණ පෙරබිම් වර්ණ කේතයක් ආරම්භ කරයි. 48;5;xterm 256 වර්ණ පසුබිම් වර්ණ කේතයක් ආරම්භ කරයි. මගේ dircolors නිමැවුම සයන් වේ 38;5;51 නොහැකි 36 ප්රතිඵලය එකම වන නමුත්.
stevesliva

1
@stevesliva: ඔබේ අදහස් දැක්වීමට ස්තූතියි. පසුබිම් වර්ණ කේත නිවැරදිව දැක්වීමට මම පිළිතුර සංස්කරණය කර ඇති අතර වර්ණ 256 පෙරබිම් සහ පසුබිම් වර්ණ කේත විස්තර කරන්න.
තෝමස් නයිමන්

56

වර්ණවලට lsඅවසරයන් නිරූපණය කළ හැකිය, සමහර පද්ධතිවල පෙරනිමි වන්නේ හරිත පසුබිමක් සහිත සෑම කෙනෙකුටම ලිඛිත අවසර ඇති ඩිරෙක්ටරි පෙන්වීමයි:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

(සිට ) $LS_COLORSභාවිතා කර ඔබේ විචල්‍යය සංස්කරණය කිරීමෙන් ඔබට වර්ණ වෙනස් කළ හැකිය :dircolorsman ls

   Using color to distinguish file types is disabled both by  default  and
   with  --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  The LS_COLORS  environment
   variable can change the settings.  Use the dircolors command to set it.

වාක්‍ය ඛණ්ඩය මෙහි කරදරකාරී බව පිළිගත හැකි නමුත් ඔබට අවශ්‍ය වර්ණ සමඟ ගොනුවක් නිර්මාණය කර එය සුරැකීමෙන් ඔබට මෙම වර්ණය වෙනස් කළ හැකිය ~/.dircolors:

dircolors -p > ~/.dircolors

එම විධානය මඟින් පෙරනිමි මුද්‍රණය කරනු ඇත ~/.dircolors. එවිට ඔබට එම ගොනුව සංස්කරණය කර මෙම පේළිය වෙනස් කිරීමට අවශ්‍ය වනු ඇත:

OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky

උදාහරණයක් ලෙස, එය රතු පසුබිමක කළු පා text යක් බවට පත් කිරීම සඳහා ( වර්ණ කේත ලැයිස්තුවක් සඳහා මෙහි බලන්න ):

OTHER_WRITABLE 30;41 # dir that is other-writable (o+w) and not sticky

ඔබට සියලු පෙරනිමි තිබිය යුතු නොවේ, ඔබට වෙනස් කිරීමට අවශ්‍ය එක නැවත අර්ථ දක්වමින් තනි පේළියකින් ගොනුවක් සෑදිය හැකිය. කෙසේ වෙතත්, ඔබ ගොනුව නිර්මාණය කළ පසු, එය පුරවන්න:

eval "$(dircolors ~/.dircolors)";

මෙන්න එය ක්‍රියාත්මක වේ:

රූප විස්තරය මෙහි ඇතුළත් කරන්න

එය ස්වයංක්‍රීයව සිදුවීමට නම්, evalඉහත විධානය ඔබගේ ~/.bashrcගොනුවට එක් කරන්න.


8
පෙරනිමි වර්ණ බොහෝ විට පෙන්නුම් කරන්නේ මුල් කතුවරයා අපට සහ අපගේ ඇස්වලට වෛර කරන බවයි ...
kurtm

1
ස්තූතියි. ඔබ සමහර විට ~ / .dirname, සහ සමහර විට ~ / dircolors, සහ සමහර විට ~ / .dircolors ලියන්නේ ඇයි? ඔවුන් සමාන විය යුතුද?
ටිම්

ස්තූතියි. eval "$(dircolors ~/dircolors)";වැනි සෘජු මාර්ග වෙනුවට ඇයි dircolors ~/dircolors?
ටිම්

Im ටයිම් කරන්න ඩිරිකොලර්ස් සැකසුම් පමණක් මුද්‍රණය කරන බැවින් ඒවා කියවීම සඳහා ඔබ එය ඉවත් කළ යුතුය.
ටර්ඩන්

ඒවා කියවිය හැක්කේ කාටද?
ටිම්

14

සියලු තාක්ෂණික පිළිතුරු සත්‍ය වුවත්, මම එය තරමක් අවිධිමත් අනතුරු ඇඟවීමක් ලෙස සලකමි, ඔබ ත්‍යාගශීලී ලෙස හෝ ක්‍රයිස් + කුරුසය පිටපත් කිරීමට ඇති අයිතිවාසිකම් ටිකක් බැහැර කළ බව ... (බොහෝ විට අපි සියල්ලෝම කරන්නේ, මුලින් වැඩ කිරීමට නම්, එහ් ?)

කළු පැහැයෙන් නිල් පාට කරන්නේ කෙසේද, ...?

ඔබට බොහෝ දුරට අවශ්‍ය අයිතිවාසිකම් වෙත ආපසු යාම සඳහා හොඳ “හරිතකරණය” යනු මෙම ප්‍රකාශයයි:

chmod -R a-x,o-w,+X thatGreenFolderWithSubfolders/

එය කරන්නේ කුමක්ද යන්න වඩාත් හොඳින් වටහාගෙන ඇත, ලොකු අකුර + X „විශේෂ ක්‍රියාත්මක කිරීමේ අරමුණ ඔබ තේරුම් ගන්නේ නම්, එනම් විකිපීඩියාව බලන්න

එය සැබවින්ම ප්‍රයෝජනවත් වන්නේ '+' සමඟ භාවිතා කරන විට සහ සාමාන්‍යයෙන් සාමාන්‍ය ලිපිගොනු (පෙළ ලිපිගොනු වැනි) සඳහා අවසර ලබා නොදී විශාල ඩිරෙක්ටරි ගසකට කණ්ඩායම් හෝ වෙනත් ප්‍රවේශයක් ලබා දීම සඳහා -R විකල්පය සමඟ සංයෝජනය වීමෙනි. ඔබ දැන් භාවිතා කළේ "chmod -R a + rx ...


9

මට එකම ප්‍රශ්නය තිබුනි , ටර්ඩන්ගේ පිළිතුර හොඳයි, නමුත් මම හිතන්නේ ඩිරින් නම සහ ඩිරිකොලර් අතර ව්‍යාකූලත්වයක් තිබේද?

කෙසේ වෙතත්, තවත් පර්යේෂණ කිහිපයකින් පසුව මට වර්ණ වෙනස් කළ හැකිය, එබැවින් මම මගේ විසඳුම මෙහි බෙදා ගනිමි. යම් දවසක එය කෙනෙකුට ප්‍රයෝජනවත් විය හැකිය!

ඉතින්, සරල පියවර 3 ක්:

පළමුව, ටර්ඩන් පැවසූ පරිදි, පෙරනිමි වර්ණ ගොනුවකට පිටපත් කරන්න

dircolors -p > ~/.dircolors

ඉන්පසු මෙම ගොනුව වෙනස් කරන්න. ඇතුළත වර්ණ සඳහා ඔබට යම් අගයන් සොයාගත හැකිය, නමුත් මම මෙහි තවත් සොයා ගතිමි :)

අවසාන වශයෙන්, ~/.bashrcඔබ ටර්මිනලයක් විවෘත කරන විට වර්ණ ස්වයංක්‍රීයව පැටවීම සඳහා ඔබේ ගොනුවට පහත පේළිය එක් කරන්න :

eval 'dircolors ~/.dircolors' > /dev/null

Voilà :)


2
සඳහා ~/.zshrcමම යන්න තිබුණා if [[ -f ~/.dircolors ]] ; then eval $(dircolors -b ~/.dircolors) elif [[ -f /etc/DIR_COLORS ]] ; then eval $(dircolors -b /etc/DIR_COLORS) fi. කණගාටුයි රේඛා බිඳීම භයානකයි
එරික් ඩී. ජොන්සන්

6

ගැටළුව ඉක්මණින් විසඳීම සඳහා, (වෙනත් ලිවිය හැකි ලිපිගොනු නොබ්ග් මත කහ කරන්න):

LS_COLORS+=':ow=01;33'

වෙනුවට 33විසින් 34nobg නිල් සඳහා. ඊටත් වඩා සරලයි, එය නොබ්ග් මත නොෆ්ග් කිරීමට:

LS_COLORS+=:ow=

ඔබගේ වෙනස ස්ථිර කිරීමට, එය ඔබගේ .ප්‍රොෆයිල් එකට එකතු කරන්න:

echo "export LS_COLORS+=':ow=01;33'" >> ~/.profile

LS_COLORS හි දිගුව සම්බන්ධ නොවන නීති බැලීමට:

echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'

sedඑක් එක් රීතිය එක් පේළියක් මත තබා grepආරම්භ කරන නීති ඉවත් කරයි*.'.


lsඔබේ පර්යන්තයේ වර්ණ ගවේෂණය කිරීමට , භාවිතා කිරීම සලකා බලන්න

C="$LS_COLORS"
function sc () {
    echo "$LS_COLORS" | sed 's/:/\n/g' | grep -v '\*.'
}
function t () {
    ls /mnt # Or the path to your example directory.
}

ඉන්පසු

LS_COLORS="$C:ow=38;5;250;48;5;025";t

තවත් පිළිතුරක (තෝමස් නයිමන්ගේ පිළිතුර) සඳහන් කර ඇත්තේ 38;5;පෙරබිම් x-term 256-වර්ණ සඳහා වන උපසර්ගය සහ 48;5;පසුබිම් x-term 256- වර්ණ සඳහා ය. වර්ණ 256 ට සියලු පර්යන්ත මගින් සහය නොදක්වයි.

එසේම බලන්න - විවිධ වර්ණ ls වලින් අදහස් කරන්නේ කුමක්ද? - AskUbuntu හි.


මම පහත වැටේ සොයා LS_COLORS+=':ow=01;33'මගේ බවට ~/.zshrcවූ GIT-repo දී ඩිරෙක්ටරි උදව් ආබාධිත වර්ණ පසුබිම. මෙය පෙන්ග්වින්-ඩබ්ලිව්එස්එල් බෙදාහැරීමක් සහිත වින්ඩෝස් 10 යන්ත්‍රයක ඇත. දැන් git-repo තුළ ඇති සියලුම නාමාවලි කියවිය හැකිය.
llinfeng


1

මෙය නිවැරදි කිරීම සඳහා LS_COLORS වෙත ow පරාමිතිය උත්සාහ කරන්න

උදාහරණයක් වශයෙන්:

~LS_COLORS='fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33'
~ls -l

රූප විස්තරය මෙහි ඇතුළත් කරන්න

දැන් ඔබ ow ( OTHER_WRITABLE) විකල්පය එක් කරන්න

~export LS_COLORS='fi=0:ln=5:pi=0:so=7:bd=5:cd=5:or=31:mi=0:ex=93:*.py=36:di=40:*.zip=33:*.tgz=33:ow=0'
~ls -l

රූප විස්තරය මෙහි ඇතුළත් කරන්න


.Dir_colors හරහා වර්ණය වෙනස් කිරීමට ඔබට අවශ්‍ය නම්, ඔබට එකතු කළ හැකිය OTHER_WRITABLE 34;43. ස්තූතියි: gist.github.com/jmoz/280005/…
ශ්‍රීධර් සර්නොබත්

0

පා read ය කියවිය හැකි වන පරිදි ඔබට පුට්ටි හි කොළ පැහැය වෙනස් කළ හැකිය.

පුට්ටි විවෘත කර කවුළු \ වර්ණ වෙත යන්න, "ANSI Green" තෝරන්න, එය තද කොළ පැහැයට සකසන්න (R: 0 G: 70 B: 0).

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.