ุงูููู
ูุฑูุฏ ุฃู ูุชุญุฏุซ ุนู ุจุนุถ ุงูุชุญุฏูุซุงุช ุงูุฃุฎูุฑุฉ ููุธุงู
ุดูุฑููู [ูุฐู ู
ุฌู
ูุนุฉ ุนุงููุฉ ุงูุฃุฏุงุก ูู ุฌุงู
ุนุฉ ุณุชุงูููุฑุฏ - ุชูุฑูุจูุง. ูู.] ุ ู
ู
ุง ูุณุฑุน ุฅูู ุญุฏ ูุจูุฑ ูุงุฆู
ุฉ ุงูู
ููุงุช ูู ุงูุฏูุงุฆู ู
ุน ุนุฏุฏ ูุจูุฑ ู
ู ุงูุฅุฏุฎุงูุงุช.
ุนูู ุนูุณ ุงูู
ูุงูุงุช ุงูู
ุนุชุงุฏุฉ ุ ูุนุฏ ูุฐุง ุชูุฑูุฑูุง ุฏุงุฎูููุง ุญูู ููููุฉ ุณูุฑ ุงูุนู
ู ุงูู
ูุชุธู
ูู Sherlock ู
ู ุฃุฌู ุงูุญูุงุธ ุนููู ุจุฃูุถู ุทุฑููุฉ ู
ู
ููุฉ ูู
ุณุชุฎุฏู
ููุง. ูุฃู
ู ูู ูุดุฑ ุงูู
ุฒูุฏ ู
ู ูุฐู ุงูู
ูุงูุงุช ูู ุงูู
ุณุชูุจู.
ุณุฑุฏ ุงูุนุฏูุฏ ู
ู ุงูู
ููุงุช ูุณุชุบุฑู ููุชุง
ุจุฏุฃ ูู ุดูุก ุจุณุคุงู ุฏุนู
ููู ู
ู ุงูู
ุณุชุฎุฏู
. ููุฏ ุฃุจูุบ ุนู ู
ุดููุฉ ูู ุฃู ุชุดุบูู
ls
ุงุณุชุบุฑู ุนุฏุฉ ุฏูุงุฆู ูู ุงูุฏููู ู
ุน ุฃูุซุฑ ู
ู 15000 ุฅุฏุฎุงูุงุช ูู
$SCRATCH
[ุฏููู ููู
ููุงุช ุงูู
ุคูุชุฉ - ุชูุฑูุจูุง. ุงูุนุงุจุฑุฉ.].
ุงูุขูุงู ู
ู ุงูู
ููุงุช ูู ุฏููู ูุงุญุฏ ุนุงุฏุฉ ู
ุง ุชุฎูู ุตุนูุจุงุช ููุธุงู
ุงูู
ููุงุช ููุฐุง ุจุงูุชุฃููุฏ ุบูุฑ ู
ุณุชุญุณู. ุนุฑู ุงูู
ุณุชุฎุฏู
ุฐูู ูุฃูุฑ ุจุฃูู ูู
ููู ุฌูุฏูุง ุ ูููู ุฐูุฑ ุฃู ุจุทุงูุฉ ุงูุจูุงูุงุช ุนูู ุฌูุงุฒ ุงููู
ุจููุชุฑ ุงูู
ุญู
ูู ูุงูุช ุฃุณุฑุน ุจู 1000 ู
ุฑุฉ ู
ู ุดูุฑููู. ุจุงูุทุจุน ุ ููุฏ ุถุฑุจูุง. ูุฐูู ุ ูุธุฑูุง ุฃุนู
ู.
ูุฃู ุชุจุฏู ุฌู
ููุฉ
ูุธุฑูุง ุฅูู ู
ุง ุชูุนูู ุจุงููุนู ุนูุฏ ุณุฑุฏ ุงูุฏููู ุ ููู
ุงุฐุง ุชุณุชุบุฑู ุงูุนู
ููุฉ ููุชูุง ุทูููุงู. ูู ู
ุนุธู
ุงูุชูุฒูุนุงุช ุงูุญุฏูุซุฉ ุ ูุชู
ุชุนููู
ls
ุงูุชุฑุงุถููุง ุนูู
ls --color=auto
ุ ูุฃู ุงูุฌู
ูุน ูุญุจ ุงูููู.
ููู ุงูุฃููุงู ุงูุฌู
ููุฉ ููุง ุณุนุฑ: ููู ู
ูู ุ ูุฌุจ ุฃู ุชุญุตู
ls
ุนูู ู
ุนููู
ุงุช ุญูู ููุน ุงูู
ูู ูุฏูุฉ ุงููุถูุญ ูุงูุฃุนูุงู
ูุงูุณู
ุงุช ุงูู
ุชูุฏู
ุฉ ูู
ุง ุดุงุจู ุฐูู ู
ู ุฃุฌู ุชุญุฏูุฏ ุงูููู ุงูู
ูุงุณุจ.
ุฃุญุฏ ุงูุญููู ุงูุจุณูุทุฉ ููู
ุดููุฉ ูู ุชุนุทูู ุงูููู ูู ls ุชู
ุงู
ูุง ุ ูููู ุชุฎูู ุบุถุจ ุงูู
ุณุชุฎุฏู
ูู. ูู ุฃู ุญุงู ู
ู ุงูุฃุญูุงู ูู
ููู ุฃู ุชุฃุฎุฐ ุฅุฎุฑุงุฌ ุงูููู ุ ูุญู ูุณูุง ุงููุญูุด.
ูุฐูู ุ ูุธุฑูุง ุฃุนู
ู. ูุฑุณู
ls
ุงูุณุฌูุงุช ู
ู ุฎูุงู
LS_COLORS
ุงูุจูุฆุฉ
LS_COLORS
ุ ูุงูุฐู
dircolors(1)
ุงุณุชูุงุฏูุง ุฅูู ู
ูู ุงูุชูููู
dir_colors(5)
. ูุนู
ุ
ููุฑุฃ ุงูู
ูู ุงููุงุจู ููุชูููุฐ ู
ูู ุงูุชูููู ูุฅูุดุงุก ู
ุชุบูุฑ ุจูุฆุฉ ูุณุชุฎุฏู
ุจุนุฏ ุฐูู (ูุฅุฐุง ููุช ูุง ุชุนุฑู ู
ููุงุช
ุงูุจุงุจ (ูุนู
ู) ุ
ูุณูู ุชุนู
ู dir_colors ุ ุจุบุถ ุงููุธุฑ ุนู ุฐูู).
ุณูู ูููู
ุจู
ุฒูุฏ ู
ู ุงูุชูุงุตูู
ูุชุญุฏูุฏ ุฃู ู
ู ู
ุฎุทุทุงุช ุงูุชูููู ุงูุชู ุชุณุจุจ ุชุจุงุทุคูุง ุ ุฃูุดุฃูุง ุจูุฆุฉ ุชุฌุฑูุจูุฉ:
$ mkdir $SCRATCH/dont $ touch $SCRATCH/dont/{1..10000} # don't try this at home! $ time ls --color=always $SCRATCH/dont | wc -l 10000 real 0m12.758s user 0m0.104s sys 0m0.699s
12.7 ุซุงููุฉ ูู 10000 ู
ูู ุ ููุณุช ุฌูุฏุฉ ุฌุฏูุง.ุจุงูู
ูุงุณุจุฉ ุ ูุญุชุงุฌ ุฅูู ุงูุนูู
- --color=always
: ุนูู ุงูุฑุบู
ู
ู ุฃูู ูุชุญูู ุฅูู ls --color=auto
ุ ููู ls
ููุชุดู ุนูุฏู
ุง ูููู ุบูุฑ ู
ุชุตู ุจุงูู
ุญุทุฉ ุงูุทุฑููุฉ (ุนูู ุณุจูู ุงูู
ุซุงู ุ ุนุจุฑ ููุงุฉ ุฃู ู
ุน ุฅุนุงุฏุฉ ุชูุฌูู ุงูุฅุฎุฑุงุฌ) ูุชุนุทูู ุงูุชูููู ุฅุฐุง ุชู
ุถุจุทู ุนูู auto
. ุฑุฌู ุฐูู.
ุฅุฐู ู
ุง ุงูุฐู ูุณุชุบุฑู ููุชูุง ุทูููุงูุ ูุธุฑูุง
strace
:
$ strace -c ls --color=always $SCRATCH/dont | wc -l 10000 % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 44.21 0.186617 19 10000 lstat 42.60 0.179807 18 10000 10000 getxattr 12.19 0.051438 5 10000 capget 0.71 0.003002 38 80 getdents 0.07 0.000305 10 30 mmap 0.05 0.000217 12 18 mprotect 0.03 0.000135 14 10 read 0.03 0.000123 11 11 open 0.02 0.000082 6 14 close [...]
ูุฌุงุญ ุจุงูุฑ: 10000 ู
ูุงูู
ุฉ ุฅูู
lstat()
ุ ู 10000 ู
ูุงูู
ุฉ ุฅูู
getxattr()
(ูุงูุชู ููุดู ูููุง ุงูุฌู
ูุน ูุฃูู ูู ุจูุฆุชูุง ูุง ุชูุฌุฏ ุณู
ุงุช ุชุจุญุซ ุนููุง) ุ ู 10000 ู
ูุงูู
ุฉ
capget()
.
ุจุงูุชุฃููุฏ ูุฐุง ูู
ูู ุฃู ูููู ุงูุฃู
ุซู.
ุณู
ุฉ ุงููุฏุฑุงุช ููุง
ุจุนุฏ ูุตูุญุฉ
ุงูุฎุทุฃ ูุจู 10 ุณููุงุช ุ ุญุงูููุง ุชุนุทูู ุงูุชุญูู ู
ู ุณู
ุฉ
ุงููุฏุฑุงุช :
$ eval $(dircolors -b | sed s/ca=[^:]*:/ca=:/) $ time strace -c ls --color=always $SCRATCH/dont | wc -l 10000 % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 98.95 0.423443 42 10000 lstat 0.78 0.003353 42 80 getdents 0.04 0.000188 10 18 mprotect 0.04 0.000181 6 30 mmap 0.02 0.000085 9 10 read 0.02 0.000084 28 3 mremap 0.02 0.000077 7 11 open 0.02 0.000066 5 14 close [...] ------ ----------- ----------- --------- --------- ---------------- 100.00 0.427920 10221 6 total real 0m8.160s user 0m0.115s sys 0m0.961s
ูุงู ุ ุชุณุงุฑุน ูุตู ุฅูู 8 ุซูุงู! ููุฏ ุชุฎูุตูุง ู
ู ุฌู
ูุน ู
ูุงูู
ุงุช
getxattr()
ุจุงูุธุฉ ุงูุซู
ู ูุฐู ุ ูู
ุง ุงุฎุชูุช ู
ูุงูู
ุงุช
capget()
ูุจูุฑุฉ ุฌุฏูุง.
ูููู ูุง ุชุฒุงู ูุฐู ุงูุฏุนูุงุช ุงูู
ุฒุนุฌุฉ ุฅูู
lstat()
ุธูุช ุ ุนูู ุงูุฑุบู
ู
ู ...
ูู
ุนุฏุฏ ุงูุฒููุฑ ุงูุชู ุชุญุชุงุฌูุงุ
ูุฐูู ุ ุฏุฑุณูุง
LS_COLORS
ุจู
ุฒูุฏ ู
ู ุงูุชูุงุตูู.
ุฃููุงู ุ ููุฏ ุฃููููุง ูุฐุง ุงูู
ุชุบูุฑ ุจุจุณุงุทุฉ:
ุตุฏู $ LS_COLORS
rs = 0: di = 01ุ 34: ln = 01ุ 36: mh = 00: pi = 40ุ 33: so = 01ุ 35: do = 01ุ 35: bd = 40ุ 33ุ 01: cd = 40ุ 33ุ 01: ุฃู = 40ุ 31ุ 01: su = 37ุ 41: sg = 30ุ 43: ca =: tw = 30ุ 42: ow = 34ุ 42: st = 37ุ 44: ex = 01ุ 32 : *. tar = 01ุ 31: *. tgz = 01ุ 31: *. arc = 01ุ 31: *. arj = 01ุ 31: *. taz = 01ุ 31: *. lha = 01ุ 31: * .lz4 = 01 ุ 31: *. lzh = 01 ุ 31: *. lzma = 01 ุ 31: *. tlz = 01 ุ 31: *. txz = 01 ุ 31: *. tzo = 01 ุ 31: *. = 01 ุ 31: *. ุงูุฑู
ุฒ ุงูุจุฑูุฏู = 01 ุ 31: *. Z = 01 ุ 31: *. Z = 01 ุ 31: *. Dz = 01 ุ 31: *. Gz = 01 ุ 31: *. Lrz = 01 ุ 31: *. Lz = 01 ุ 31: *. Lzo = 01 ุ 31: *. Xz = 01 ุ 31: *. Bz2 = 01 ุ 31: *. Bz = 01 ุ 31: *. Tbz = 01 ุ 31 : *. tbz2 = 01 ุ 31: *. tz = 01 ุ 31: *. deb = 01 ุ 31: *. rpm = 01 ุ 31: *. jar = 01ุ 31: *. war = 01ุ 31: * .ear = 01ุ 31: *. sar = 01ุ 31: *. rar = 01ุ 31: *. alz = 01ุ 31: *. ace = 01ุ 31: *. zoo = 01ุ 31: *. cpio = 01 ุ 31: *. 7z = 01 ุ 31: *. Rz = 01 ุ 31: *. ุงููุงุจููุฉ = 01 ุ 31: *. Jpg = 01 ุ 35: *. Jpeg = 01 ุ 35: *. Gif = 01 ุ 35: *. Bmp = 01 ุ 35: *. Pbm = 01 ุ 35: *. Pgm = 01 ุ 35: *. Ppm = 01 ุ 35: *. Tga = 01 ุ 35: *. Xbm = 01 ุ 35 : *. xpm = 01ุ 35: *. tif = 01ุ 35: *. tiff = 01ุ 35: *. png = 01ุ 35: *. svg = 01ุ 35: *. svgz = 01ุ 35: * .mng = 01ุ 35: *. pcx = 01ุ 35: *. mov = 01ุ 35: *. mpg = 01ุ 35: *. mpeg = 01ุ 35: *. m2v = 01ุ 35: *. mkv = 01 ุ 35: *. Webm = 01 ุ 35: *. Ogm = 01 ุ 35: *. Mp4 = 01 ุ 35: *. M4v = 01 ุ 35: *. Mp4v = 01 ุ 35: *. Vob = 01 ุ 35: *. Qt = 01 ุ 35: *. Nuv = 01 ุ 35: *. wmv = 01ุ 35: *. asf = 01ุ 35: *. rm = 01ุ 35: *. rmvb = 01ุ 35: *. flc = 01ุ 35: *. avi = 01ุ 35: *. fli = 01ุ 35: *. Flv = 01ุ 35: *. Gl = 01ุ 35: *. Dl = 01ุ 35: *. Xcf = 01ุ 35: *. Xwd = 01ุ 35: *. Yuv = 01ุ 35: *. Cgm = 01 ุ 35: *. Emf = 01 ุ 35: *. Axv = 01 ุ 35: *. Anx = 01ุ 35: *. Ogv = 01ุ 35: *. Ogx = 01ุ 35: * .aac = 00 ุ 36: *. au = 00 ุ 36: *. flac = 00 ุ 36: *. mid = 00 ุ 36: *. midi = 00 ุ 36: *. mka = 00 ุ 36: *. mp3 = 00ุ 36: *. mpc = 00ุ 36: *. ogg = 00ุ 36: *. ra = 00ุ 36: *. wav = 00ุ 36: *. axa = 00ุ 36: *. oga = 00 ุ 36: *. Spx = 00 ุ 36: *. Xspf = 00 ุ 36:
$ unset LS_COLORS
ุตุฏู $ LS_COLORS
$ time ls - ุงูููู = ุฏุงุฆู
ูุง SCRATCH / dont | ู
ุฑุญุงุถ
10000
0m13.037s ุงูุญูููู
ุงูู
ุณุชุฎุฏู
0m0.077s
ุชู
ูุฒ ุงููููุฉ 0m1.092s
ู
ุง!ุ! ูุง ูุฒุงู 13 ุซุงููุฉุ
ุงุชุถุญ ุฃูู ุนูุฏู
ุง ูุง
LS_COLORS
ุชุนุฑูู
LS_COLORS
ุงูุจูุฆุฉ
LS_COLORS
ุฃู ุฅุฐุง ูุงู ุฃุญุฏ ุนูุงุตุฑู
<type>=color:
ู
ูููุฏูุง ููุท ุ ูุฅูู ูุณุชุฎุฏู
ูุงุนุฏุฉ ุงูุจูุงูุงุช ุงูู
ุฏู
ุฌุฉ ุจุดูู ุงูุชุฑุงุถู ููุง ูุฒุงู ูุณุชุฎุฏู
ุงูุฃููุงู. ูุฐูู ุ ุฅุฐุง ููุช ุชุฑุบุจ ูู ุชุนุทูู ุงูุชูููู ูููุน ู
ูู ู
ุนูู ุ ูุณุชุญุชุงุฌ ุฅูู ุชุฌุงูุฒู ุจู
<type>=:
ุฃู
<type> 00
ูู ู
ูู
DIR_COLORS
.
ุจุนุฏ ุงููุซูุฑ ู
ู ุงูุชุฌุฑุจุฉ ูุงูุฎุทุฃ ุ ูู
ูุง ุจุชุถููู ูุทุงู ุจุญุซูุง ุฅูู ูุฐุง:
EXEC 00 SETUID 00 SETGID 00 CAPABILITY 00
ู
ุง ูู ู
ูุชูุจ ุจุงุณู
LS_COLORS='ex=00:su=00:sg=00:ca=00:'
ููุฐุง ูุนูู: ุนุฏู
ุชูููู ุงูู
ููุงุช ุฅู
ุง ุนู ุทุฑูู
ุฅู
ูุงููุงุช atrut ุฃู ุจุชุงุช
setuid/setgid
ุฃู
ุจุงูุนูู
ุงููุงุจู ููุชูููุฐ .
ุชุณุฑูุน ls
ูุฅุฐุง ูู
ุชูู
ุจุฃู ู
ู ุนู
ููุงุช ุงููุญุต ูุฐู ุ
lstat()
ู
ูุงูู
ุงุช
lstat()
ุ ูุงูุขู ุฃุตุจุญ ุงูุฃู
ุฑ ู
ุฎุชูููุง ุชู
ุงู
ูุง:
$ export LS_COLORS='ex=00:su=00:sg=00:ca=00:' $ time strace -c ls --color=always $SCRATCH/dont | wc -l 10000 % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 63.02 0.002865 36 80 getdents 8.10 0.000368 12 30 mmap 5.72 0.000260 14 18 mprotect 3.72 0.000169 15 11 open 2.79 0.000127 13 10 read [...] ------ ----------- ----------- --------- --------- ---------------- 100.00 0.004546 221 6 total real 0m0.337s user 0m0.032s sys 0m0.029s
0.3 ุซุงููุฉ ุนูู ูุงุฆู
ุฉ ู
ู 10000 ู
ูู ุ ููู ุฑูู
ููุงุณู.
ุชูููู ุดูุฑููู
ู
ู 13 ุซุงููุฉ ู
ุน ุงูุฅุนุฏุงุฏุงุช ุงูุงูุชุฑุงุถูุฉ ุฅูู 0.3 ุซุงููุฉ ู
ุน ุฅุนุฏุงุฏ ุตุบูุฑ ุ ูุนูู
LS_COLORS
40 ู
ุฑุฉ ุจุณุจุจ ุนุฏู
ูุฌูุฏ
setuid
/
setgid
ูุงูู
ููุงุช ุงููุงุจูุฉ ููุชูููุฐ ุงูู
ูููุฉ. ููุณุช ูุฐู ุฎุณุงุฑุฉ ูุจูุฑุฉ.
ุจุงูุทุจุน ุ ุงูุขู ุชู
ุชูููู ูุฐุง ูู ุดูุฑููู ููู ู
ุณุชุฎุฏู
.
ูููู ุฅุฐุง ููุช ุชุฑุบุจ ูู ุฅุฑุฌุงุน ุงูุชูููู ุ ูู
ููู ููุท ุงูุนูุฏุฉ ุฅูู ุงูุฅุนุฏุงุฏุงุช ุงูุงูุชุฑุงุถูุฉ:
$ unset LS_COLORS
ูููู ุจุนุฏ ุฐูู ุ ูู ุงูุฏูุงุฆู ุงูุชู ุชุญุชูู ุนูู ุนุฏุฏ ูุจูุฑ ู
ู ุงูู
ููุงุช ุ ุชุฃูุฏ ู
ู ุฅุนุฏุงุฏ ุงููููุฉ ุฃุซูุงุก ุงูุนู
ู.