4 ms·
GNU/Linux shell related internals
- photochemsyn 4y agoI really like this website design. Everything's visible running NoScript in Firefox with Privacy Badger (blocks one tracker) enabled, because it's all HTML/CSS. Whatever jsdelvir.net is doing, it's not needed and blocking it doesn't do what happens on many other sites, i.e. no content at all. Very educational content as well, the section on how pseudoterminals can be used to build terminal emulators was good, and on how ssh creates a remote terminal connection.
- easrng 4y agojsdelivr is a free CDN for NPM packages and also github repos. the site is loading an icon font (bootstrap-icons@1.5.0) from it. it's pretty nice as far as free npm cdns go, i guess. they even add SRI hashes to the script tags and stuff they generate by default so they can't swap out the files to malicious versions later.
- fyresala 4y agoI recommend reading TLPI[1] if anyone is willing to jump into the rabbit hole of shell. bash covers a lot of aspects of unix. [1] https://man7.org/tlpi/ https://man7.org/tlpi/
- usr1106 4y agoThe headline seems weird. The list of file descriptors etc etc does not sound like shell internals, but like Unix operating system concepts.
- supriyo-biswas 4y agoIf you're after how the shell parses commands, the EBNF grammar in the POSIX specification is a good start: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V... Unfortunately, there's not much to a shell other than it's parsing capabilities.
- chasil 4y agoIt is unfortunate that an LR-parsed language was chosen. https://archive.fosdem.org/2018/schedule/event/code_parsing_posix_s_hell/ https://archive.fosdem.org/2018/schedule/event/code_parsing_...
- ytch 4y agoIt more likes "How shell invokes a command", I attended a POSIX programming course in university, one homework is implementing a simple shell, you need to handle the FDs, Pipes, environment variables by POSIX API as the article explains.
- dottedmag 4y agoShell internals and Unix internals are pretty intertwined. Amount of ancient syscalls and ioctls that exist directly to support shells is quite large.
- dizhn 4y agoIt was fun to do what the cookie banner says and leave without reading.
- sjmulder 4y agoA cookie bar with all the annoyance with none of the compliance. What's the point.
- 1vuio0pswjnm7 4y agoAt least three options to retrieve this without without Javascript or cookies and view in a popular browser. Example script below. Tested with p7zip and Info-Zip unzip. BSD libarchive unzip should work, too. NB. This cookie bar annoyance does not work in text-only browser such as links. It only works in popular browsers running CSS and JS. Uncomment one of the OPTIONS. Then, assuming script is named "1.sh", sh 1.sh > 1.htm firefox ./1.htm #!/bin/sh #OPTION1=biriukov.dev #OPTION2=raw.githubusercontent.com #OPTION3=codeload.github.com REPO=brk0v.github.io if test $OPTION3 then curl -A "" -o$REPO-master.zip https://$OPTION3/brk0v/$REPO/zip/master fi for x in \ 0-sre-should-know-about-gnu-linux-shell-related-internals-file-descriptors-pipes-terminals-user-sessions-process-groups-and-daemons \ 1-file-descriptor-and-open-file-description \ 2-pipes \ 3-process-groups-jobs-and-sessions \ 4-terminals-and-pseudoterminals do if test $OPTION2 then echo url=https://$OPTION2/brk0v/$REPO/master/docs/fd-pipe-session-terminal/$x/index.html elif test $OPTION1 then echo url=https://$OPTION1/docs/fd-pipe-session-terminal/$x/ elif test $OPTION3 then #7z x -so $REPO-master.zip $REPO-master/docs/fd-pipe-session-terminal/$x/index.html /usr/sbin/unzip -p $REPO-master.zip $REPO-master/docs/fd-pipe-session-terminal/$x/index.html fi done|if test $OPTION1 then curl -A "" -K- elif test $OPTION2 then curl -A "" -K- elif test $OPTION3 then cat rm $REPO-master.zip fi|sed 's/<script/<!--&/g;s/<\/script>/&-->/g;s/cookie.css//g;s/cookie.js//g'
- shrimp_emoji 4y agoIt's an illegal implementation of GDPR meant to act as compliance theater while at the same time making users resent the law as much as the sites do. For bigger sites like YouTube which can't get away with it as much, there's a "Reject All" button that you can click straight away.
- deleted 4y ago[deleted]