Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on basic Unix utilities.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/unix.e>
#           or at <http://angg.twu.net/e/unix.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######



# «.find»		(to "find")
# «.locate»		(to "locate")
# «.environment»	(to "environment")
# «.signals»		(to "signals")
# «.busybox»		(to "busybox")
#
# «.chmod»		(to "chmod")
# «.chown»		(to "chown")
# «.col»		(to "col")
# «.basename»		(to "basename")
# «.comm»		(to "comm")
# «.cp»			(to "cp")
# «.cut»		(to "cut")
# «.date»		(to "date")
# «.dd»			(to "dd")
# «.dirname»		(to "dirname")
# «.du»			(to "du")
# «.echo-n»		(to "echo-n")
# «.env»		(to "env")
#   «.shebang»		(to "shebang")
# «.file»		(to "file")
# «.grep»		(to "grep")
# «.ifconfig»		(to "ifconfig")
# «.ip»			(to "ip")
# «.killall»		(to "killall")
# «.ls»			(to "ls")
# «.md5sum»		(to "md5sum")
# «.mv-T»		(to "mv-T")
# «.nice»		(to "nice")
# «.ps»			(to "ps")
# «.pwd»		(to "pwd")
# «.stat»		(to "stat")
# «.tar»		(to "tar")
# «.top»		(to "top")
# «.tr»			(to "tr")
# «.type»		(to "type")
# «.unzip»		(to "unzip")
# «.which»		(to "which")
# «.xargs»		(to "xargs")
#
# «.coreutils-src»	(to "coreutils-src")
# «.cli-coreutils»	(to "cli-coreutils")
# «.unix-works»		(to "unix-works")
# «.pipes»		(to "pipes")
# «.dev-full»		(to "dev-full")
# «.tmp»		(to "tmp")
# «.e1f-guide»		(to "e1f-guide")




#####
#
# find
# 2014jan14
#
#####

# «find» (to ".find")
# (find-node "(find)Top")
# (find-node "(find)Age Ranges" "-atime")
# (find-node "(find)Age Ranges" "-atime" "last accessed")
# (find-node "(find)Age Ranges" "-atime" "last accessed" "N*24 hours ago")
# (find-node "(find)Comparing Timestamps" "-cnewer")
# (find-node "(find)Comparing Timestamps" "find . -newer /bin/sh")
# (find-status   "findutils")
# (find-vldifile "findutils.list")
# (find-udfile   "findutils/")
# (find-es "bash" "redirection")
# (find-man "1 find")
# (find-man "1 find" "EXAMPLES")
# (find-man "1 find" "\nEXAMPLES\n")
# (find-man "1 find" "-type f")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh "find ~ -atime 0")
# (find-sh "find ~ -mmin 20")
# (find-sh "find /tmp -mmin 20")
# (find-sh "find /var -mmin -20")
# (find-sh "find /var -mmin -20 2> /dev/null")
# (find-sh "find ~    -mmin -20 2> /dev/null")

https://news.ycombinator.com/item?id=29292830 An intro to finding things in Linux (madebygps.com)

(info "(find)")



#####
#
# locate
# 2018nov14
#
#####

# «locate» (to ".locate")
# (find-sh "locate locate")
# (find-status   "locate")
# (find-vldifile "locate.list")
# (find-udfile   "locate/")
# (find-status   "findutils")
# (find-vldifile "findutils.list")
# (find-udfile   "findutils/")
# (find-node "(find)Invoking locate")
# (find-man "1 updatedb")



#####
#
# environment
# 2018nov14
#
#####

# «environment» (to ".environment")
# (to "env")
# (find-node "(libc)Running a Command")
# (find-node "(libc)Program Basics")
# (find-node "(libc)Environment Variables")




#####
#
# signals
# 2019aug11
#
#####

# «signals» (to ".signals")
# https://en.wikipedia.org/wiki/Signal_(IPC)
# https://en.wikipedia.org/wiki/Signal_(IPC)#SIGINT
# (find-node "(libc)Signal Handling")
# (find-node "(libc)Termination Signals" "SIGINT")
# (find-node "(libc)Termination Signals" "SIGINT" "C-c")
# (find-node "(libc)Special Characters")
# (find-man "1 kill")
# (find-sh "kill -l")
# (find-sh "/bin/kill --list")
# (find-sh "/bin/kill -L")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
w kill
'kill' --list





#####
#
# What utils are in busybox?
# 2018nov19
#
#####

# «busybox» (to ".busybox")
# (find-es "busybox")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
locate bin/busybox
/bin/busybox
busybox --list

busybox uniq --help
f () { echo "# (find-sh \"busybox $1 --help\")"; }
f uniq
for i in $(busybox --list); do f $i; done | tee /tmp/o
# (find-fline "/tmp/o")

# (find-sh "busybox [ --help")
# (find-sh "busybox [[ --help")
# (find-sh "busybox acpid --help")
# (find-sh "busybox adjtimex --help")
# (find-sh "busybox ar --help")
# (find-sh "busybox arch --help")
# (find-sh "busybox arp --help")
# (find-sh "busybox arping --help")
# (find-sh "busybox ash --help")
# (find-sh "busybox awk --help")
# (find-sh "busybox bc --help")




#####
#
# chmod
# 2024may26
#
#####

# «chmod»  (to ".chmod")
# (find-man "1 chmod")
# (find-node "(coreutils)chmod invocation")
# (find-sh "busybox chmod --help")




#####
#
# chown
# 2024may26
#
#####

# «chown»  (to ".chown")
# (find-man "1 chown")
# (find-node "(coreutils)chown invocation")
# (find-sh "busybox chown --help")
# (find-esgrep "grep --color=auto -nH --null -e chown *.e")




#####
#
# col
# 2018nov19
#
#####

# «col» (to ".col")
# (find-status   "bsdmainutils")
# (find-vldifile "bsdmainutils.list")
# (find-udfile   "bsdmainutils/")
# (find-man "1 col")
# (find-man "1 colcrt")
# (find-man "1 calendar")
# (find-man "1 column")



#####
#
# basename
# 2018nov19
#
#####

# «basename» (to ".basename")
# (find-status   "coreutils")
# (find-vldifile "coreutils.list")
# (find-udfile   "coreutils/")
# (find-angggrep "grep --color -nH -e '$(' .zshrc")
# (find-man "1 basename")
# (find-sh "busybox basename --help")




#####
#
# comm
# 2023apr28
#
#####

# «comm»  (to ".comm")
# (find-man "1 comm")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/comm/")
rm -Rv /tmp/comm/
mkdir  /tmp/comm/
cd     /tmp/comm/
for i in 1 3 5 7; do echo $i >> file1; done
for i in 2 3 6 7; do echo $i >> file2; done
cat file1
cat file2

# column 1, file1 only - 1 5
# column 2, file2 only - 2 6
# column 3, both files - 3 7

comm     file1 file2   ;# all three colums: file1 only, file2 only, common
comm -12 file1 file2   ;# suppress cols 1 and 2 - show only common lines
comm -13 file1 file2   ;# suppress cols 1 and 3 - show lines only in file2
comm -23 file1 file2   ;# suppress cols 2 and 3 - show lines only in file1
comm  -3 file1 file2




#####
#
# cp
# 2023sep23
#
#####

# «cp»  (to ".cp")
# (find-man "1 cp")
# (find-node "(coreutils)cp invocation")
# (find-sh "cp --help")
# (find-sh "cp --help" "-s, --symbolic-link")
# (find-sh "cp --help" "-u, --update")
# (find-sh "busybox cp --help")




#####
#
# cut
# 2022sep19
#
#####

# «cut»  (to ".cut")
# (find-man "1 cut")
# (find-sh "busybox cut --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
seq 10 20
seq 10 20 | head -n 1
seq 10 20 | head -n -1
seq 10 20 | tail -n +2

# (find-man "head")






#####
#
# date
# 2018nov19
#
#####

# «date» (to ".date")
# (find-angg ".emacs" "date")
# (find-status   "coreutils")
# (find-vldifile "coreutils.list")
# (find-udfile   "coreutils/")
# (find-man "1 date")
# (find-man "1 date" "-d, --date=STRING")
# (find-man "1 date" "%j" "day of year")
# (find-node "(coreutils)Date input formats")
# (find-node "(coreutils)Pure numbers in date strings")
# (find-sh "busybox date --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
date -d 20181101
date -d 2018-11-01
date -d 20181104
date -d 2018-11-04

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
ndays = {31, 28, 31, 30, 31, 30,
         31, 31, 30, 31, 30, 31}
for month=1,12 do
  for day=1,ndays[month] do
    local date = format("2018%02d%02d", month, day)
    local yday = getoutput(format("date -d %s +%%j", date))
    local yday = split(yday)[1]
    print(date, yday)
  end
end

date -d 



#####
#
# dd
# 2024feb06
#
#####

# «dd»  (to ".dd")
# (find-esgrep "grep --color=auto -nHw --null -e dd *.e")
# (find-node "(coreutils)dd invocation")
# (find-node "(coreutils)dd invocation" "status=LEVEL")
# (find-node "(coreutils)dd invocation" "status=LEVEL" "progress")
# (find-man "1 dd")
# (find-es "debian" "debian-pen-drive-2020")
# (find-es "debian" "debian-pen-drive-2020" "status=progress")
# (find-sh "busybox dd --help")




#####
#
# dirname
# 2024dec13
#
#####

# «dirname»  (to ".dirname")
# (find-man "1 dirname")
# (find-sh "busybox dirname --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
dirname /home/edrx/bin/djvuize
dirname                djvuize

. ~/myqdraw/mkanim2.sh

# (find-myqdraw "mkanim2.sh")





#####
#
# du
# 2022nov24
#
#####

# «du»  (to ".du")
# (find-man "1 du")
# (find-man "1 du" "-c, --total")
# (find-man "1 du" "-h, --human-readable")
# (find-man "1 du" "-s, --summarize")
# (find-man "1 du" "-d, --max-depth=N")
# (find-sh "busybox du --help")



#####
#
# echo -n
# 2021oct10
#
#####

# «echo-n»  (to ".echo-n")
# (find-man "1 echo")
# (find-man "1 echo" "-n" "do not output the trailing newline")
# (find-sh "busybox echo --help")

<edrx> btw
<edrx> I used zsh for everything for ages, only used other shells
       very occasionally
<edrx> and only started using eshell for non-trivial things a few
       weeks ago - and I noticed that the default behavior of echo
       in eshell is to NOT add a newline to its output
<technomancy> edrx: yeah that's really stupid, agreed
<edrx> technomancy: I was going to ask is this behavior is allowed
       by POSIX or something like that... and I checked the manpage
       for echo here to see if there are command-line options for
       "no newline" and "yes newline"
<wasamasa> if you want portability, use printf
<edrx> and I only found this: "-n do not output the trailing
       newline"
<wasamasa> that defaults to no newline and makes formatting easy




#####
#
# env and shebang
# 2021oct10
#
#####

# «env»      (to ".env")
# «shebang»  (to ".shebang")
# (to "environment")
# (find-es "zsh" "ORIGPATH")
# https://www.in-ulm.de/~mascheck/various/shebang/
# https://github.com/openbsd/src/blob/aaef17f3a84ac857498a5fb4edc99a3024829863/sys/sys/param.h#L63
# https://cgit.freebsd.org/src/tree/sys/sys/imgact.h#n41
# (find-man "1 env")
# (find-man "1 env" "-S, --split-string=S")
# (find-man "1 env" "-S/--split-string usage in scripts")
# (find-man "1 env" "-i, --ignore-environment")

# https://unix.stackexchange.com/questions/329429/what-are-the-environment-variables-by-default




#####
#
# file
# 2024jun23
#
#####

# «file»  (to ".file")
# (find-man "1 file")
# (find-man "1 file" "-C, --compile")
# (find-man "1 file" "/usr/share/misc/magic.mgc")
# (find-man "5 magic")
# (find-fline "/usr/share/misc/" "magic")
# (find-fline "/usr/share/file/")
# (find-fline "/usr/lib/file/" "magic.mgc")
# (find-status   "file")
# (find-vldifile "file.list")
# (find-udfile   "file/")
# (find-status   "libmagic1")
# (find-vldifile "libmagic1:amd64.list")
# (find-udfile   "libmagic1/")
# (find-status   "libmagic-mgc")
# (find-vldifile "libmagic-mgc.list")
# (find-udfile   "libmagic-mgc/")





#####
#
# grep and egrep
# 2021aug01
#
#####

# «grep»  (to ".grep")
# (find-man "1 grep")
# (find-man "1 grep" "egrep" "-E, --extended-regexp")
# (find-man "1 grep" "fgrep" "-F, --fixed-strings")
# (find-man "1 grep" "rgrep" "-r, --recursive")
# (find-man "1 grep" "Basic vs Extended Regular Expressions")
# (find-man "1 grep" "-l, --files-with-matches")
# (find-sh "busybox grep --help")
# (find-node "(grep)Top")
# (find-node "(grep)Usage")
# (find-node "(grep)Basic vs Extended")




#####
#
# ifconfig
# 2024jun05
#
#####

# «ifconfig»  (to ".ifconfig")
# (find-status   "net-tools")
# (find-vldifile "net-tools.list")
# (find-udfile   "net-tools/")
# (find-man "8 ifconfig")
# (find-sh "busybox ifconfig --help")
# (find-sh "sudo ifconfig --help")
# (find-sh "sudo netstat -i")
# (find-sh "sudo ifconfig")




#####
#
# ip
# 2024jun06
#
#####

# «ip»  (to ".ip")
# (find-status   "iproute2")
# (find-vldifile "iproute2.list")
# (find-udfile   "iproute2/")
# (find-sh "ip          a")
# (find-sh "ip       -4 a")
# (find-sh "ip -j    -4 a")
# (find-sh "ip -j -p -4 a")
# (find-sh "ip -j    -4 a | gron")
# (find-sh "ip -j    -4 a | python3 -m json.tool")
# (find-fline "~/LOGS/2024jun05.emacs" "<twb> Try" "ip -json address")
# (find-sh "curl -s ipinfo.io/ip")



#####
#
# killall
# 2024may28
#
#####

# «killall»  (to ".killall")
# (find-status   "psmisc")
# (find-vldifile "psmisc.list")
# (find-udfile   "psmisc/")
# (find-man "1 killall")




#####
#
# ls
# 2022dec06
#
#####

# «ls»  (to ".ls")
# (find-man "1 ls")
# (find-sh "busybox ls --help")
# (find-sh "ls --help")
# (find-sh "ls --help" "-d, --directory")
# (find-sh "ls --help" "-h, --human-readable")
# (find-sh "ls --help" "-S" "sort by file size, largest first")
# (find-sh "ls --help"      "none (-U), size (-S),")




#####
#
# md5sum
# 2023aug06
#
#####

# «md5sum»  (to ".md5sum")
# (find-man "1 md5sum")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/md5sum-test/")
rm -Rv /tmp/md5sum-test/
mkdir  /tmp/md5sum-test/
cd     /tmp/md5sum-test/
date > a
date > b
md5sum a b > ab.md5sum
md5sum -c    ab.md5sum
date > a
date > b
md5sum -c    ab.md5sum






#####
#
# mv -T
# 2020oct24
#
#####

# «mv-T»  (to ".mv-T")
# (find-man "1 mv")
# (find-man "1 mv" "-T, --no-target-directory")
# (find-sh "busybox mv --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/mv-test/")
rm -Rv /tmp/mv-test/
mkdir  /tmp/mv-test/
cd     /tmp/mv-test/
mkdir a/
mkdir b/
mv -ivT a b




#####
#
# nice
# 2023jun04
#
#####

# «nice»  (to ".nice")
# (find-man "1 nice")
# (find-node "(coreutils)nice invocation")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
sudo nice apt-get update
sudo nice apt-get upgrade -y
sudo nice apt-get autoremove -y
sudo nice apt-get clean





#####
#
# ps
# 2024may28
#
#####

# «ps»  (to ".ps")
# (find-man "1 ps")
# (find-man "1 ps" "-C cmdlist")
# (find-sh "ps --help all")
# (find-sh "busybox ps --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
ps ax
ps ax | grep dictd
ps -C dictd



#####
#
# pwd
# 2022sep26
#
#####

# «pwd»  (to ".pwd")
# https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-09/msg02406.html
# (find-man "1 pwd")
# (find-sh "busybox pwd --help")

Yes, bash's built-in pwd assumes -L by default (which is what POSIX
mandates), and coreutils' pwd assumes -P by default. POSIX requires
support for both -L and -P, so the safe fix here is to replace
/bin/pwd by pwd -P.






#####
#
# stat
# 2021jan16
#
#####

# «stat»  (to ".stat")
# (find-man "1 stat")
# (find-node "(coreutils)stat invocation")
# (find-node "(coreutils)stat invocation" "The valid FORMAT directives")
# (find-sh "busybox stat --help")






#####
#
# tar
# 2019apr09
#
#####

# «tar» (to ".tar")
# (find-status   "tar-doc")
# (find-vldifile "tar-doc.list")
# (find-udfile   "tar-doc/")
# (find-node "(tar)Option Summary" "--strip-components=NUMBER")
# (find-angg ".zshrc" "basename_tgz")
# (find-sh "busybox tar --help")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
FNAME=$S/https/www.haskell.org/tutorial/haskell-98-tutorial-html.tar.gz
tar -tvzf $FNAME
tar -tzf $FNAME
tar -tzf $FNAME | head -n 1
basename $(tar -tzf $FNAME | head -n 1)
basename_tgz $FNAME




#####
#
# top
# 2024may28
#
#####

# «top»  (to ".top")
# (find-status   "procps")
# (find-vldifile "procps.list")
# (find-udfile   "procps/")
# (find-man "1 top")





#####
#
# tr
# 2024may22
#
#####

# «tr»  (to ".tr")
# (to "pipes")
# (find-man "1 tr")
# (find-sh "busybox tr --help")



#####
#
# type
# 2024may28
#
#####

# «type»  (to ".type")
# (find-zshnode "Shell Builtin Commands" "type [ -wfpamsS ] NAME ...")
# (find-zshnode "Shell Builtin Commands" "whence [ -vcwfpamsS ] [ -x NUM ] NAME ...")
# (find-bashnode "Bash Builtins" "type [-afptP] [NAME ...]")


#####
#
# unzip
# 2024sep01
#
#####

# «unzip»  (to ".unzip")
# (find-man "1 unzip")
# (find-status   "unzip")
# (find-vldifile "unzip.list")
# (find-udfile   "unzip/")
# (find-sh "unzip")
# (find-sh "unzip -hh")
# (find-sh "unzip -hh" "-d exd ")
# (find-esgrep "grep --color=auto -nwH --null -e unzip *.e")



#####
#
# which
# 2023feb18
#
#####

# «which»  (to ".which")
# (find-es "zsh" "which")
# (find-man "1 which")
# https://news.ycombinator.com/item?id=34849902 Debian 12 “Bookworm” Enters Its Soft Freeze
# (find-sh "busybox which --help")




#####
#
# xargs
# 2021jan16
#
#####

# «xargs»  (to ".xargs")
# (find-man "1 xargs")
# (find-man "1 xargs" "-I replace-str")
# (find-man "1 xargs" "-L max-lines")
# (find-man "1 xargs" "--delimiter=delim, -d delim")
# (find-man "1 xargs" "BUGS")
# (find-man "1 xargs" "BUGS" "incompatible")
# (find-node "(find)Invoking xargs")
# (find-node "(find)xargs options")
# (find-node "(find)Invoking the shell from xargs")
# (find-sh "busybox xargs --help")

# (find-fline "~/LOGS/2021feb03.emacs" "echo hello ; echo world")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
(echo hello ; echo world ; echo 'how do you do' ) \
  | xargs -I '{}' -- \
      echo cp -v --parents --update '{}' ~/usrc/angg-fossil-repo/

# Bad:
(echo hello ; echo world ; echo 'how do you do' ) \
  | xargs -I '{}' -L 2 -- \
      echo cp -v --parents --update '{}' ~/usrc/angg-fossil-repo/

# Bad:
(echo hello ; echo world ; echo 'how do you do' ) \
  | xargs -L 2 -- \
    echo xargs -I '{}' -- \
      echo cp -v --parents --update '{}' ~/usrc/angg-fossil-repo/

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
seq 1 25 | xargs -I '{}' -- echo foo '{}' bar
seq 1 25 | xargs -L 5
seq 1 25 | xargs -L 5 | tr ' ' .
seq 1 25 | xargs -L 5 | tr ' ' . | xargs -d '\n'  -I '{}' -- echo foo '{}' bar
seq 1 25 | xargs -L 5            | xargs -d '\n'  -I '{}' -- echo foo '{}' bar

seq 1 25 \
  | xargs -L 5 \
  | xargs -d '\n' -I '{}' -- \
      echo cp -v --parents --update '{}' ~/usrc/angg-fossil-repo/


https://news.ycombinator.com/item?id=28258189 An Opinionated Guide to Xargs (oilshell.org)




#####
#
# coreutils-src
# 2020feb24
#
#####

# «coreutils-src» (to ".coreutils-src")
# (find-apt-get-source-links "coreutils")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh "apt-cache show    coreutils")
# (find-sh "apt-cache showsrc coreutils")
rm -Rv /tmp/d/
mkdir  /tmp/d/
cd     /tmp/d/
sudo apt-get build-dep -y   coreutils
     apt-get source         coreutils   2>&1 | tee osource
     apt-get source --build coreutils   2>&1 | tee osourceb

# (find-fline "/tmp/d/")

rm -Rv ~/usrc/coreutils-8.30/
cp -av /tmp/d/coreutils-8.30 ~/usrc/

# (code-c-d "coreutils" "~/usrc/coreutils-8.30/")
# (find-coreutilsfile "")
# (find-coreutilssh "find * | sort")
# (find-coreutilsfile "src/touch.c")
# (find-coreutilsfile "src/touch.c" "fdutimensat")
# (find-man "2 utimes")
# (find-man "2 utimensat")





#####
#
# Command line text processing with GNU Coreutils (eBook)
# 2021oct23
#
#####

# «cli-coreutils»  (to ".cli-coreutils")
# (find-books "__comp/__comp.el" "cli-coreutils")




#####
#
# unix-works
# 2021aug04
#
#####

# «unix-works»  (to ".unix-works")
# (find-fline "~/books/kernighan_ritchie_thompson__unix_work.zip")
# (find-fline "~/usrc/DMR/")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv   ~/usrc/DMR/
# mkdir  ~/usrc/DMR/
unzip -d ~/usrc/ ~/books/kernighan_ritchie_thompson__unix_work.zip
cd       ~/usrc/DMR/

# (find-man "unzip")




#####
#
# pipes
# 2021oct12
#
#####

# «pipes»  (to ".pipes")
# https://ruzkuku.com/texts/unix-harmful.html
# http://www.softpanorama.org/Scripting/Piporama/history.shtml
# (find-man "1 tr")
# (find-man "1 tr" "-c, -C, --complement")
# (find-man "1 tr" "-s, --squeeze-repeats")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
echo "The cat and the bat" |
tr -cs A-Za-z '\n' \
  | tr A-Z a-z     \
  | sort           \
  | uniq -c        \
  | sort -rn       \
  | sed ${1}q




#####
#
# /dev/full
# 2022mar09
#
#####

# «dev-full»  (to ".dev-full")
# https://news.ycombinator.com/item?id=30611367 Bugs in Hello World (sunfishcode.online)
# https://blog.sunfishcode.online/bugs-in-hello-world/




#####
#
# Dado Sutter said that he doesn't have a /tmp (in Ubuntu 22.04)
# 2023aug18
#
#####

# «tmp»  (to ".tmp")
# https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
# https://en.wikipedia.org/wiki/Temporary_folder#Traditional_locations
# https://unix.stackexchange.com/questions/362100/is-tmp-guaranteed-to-exist
# (find-sh0 "stat -c %a /tmp")

O que voce acha de na proxima oficininha a gente incluir instrucoes
como isso aqui? Roda

  sudo mkdir /tmp
  sudo chmod 1777 /tmp

antes da oficininha comecar e se voce quiser deletar o /tmp roda

  sudo rm -Rfv /tmp

no final?




#####
#
# e1f-guide
# 2024sep24
#
#####

# «e1f-guide»  (to ".e1f-guide")
# https://www.ee.ryerson.ca/guides/user/






# Alternatives to grep:
https://beyondgrep.com/feature-comparison/
https://news.ycombinator.com/item?id=16096824 abundance vs. scarcity
https://news.ycombinator.com/item?id=14693169

https://dwheeler.com/essays/fixing-unix-linux-filenames.html

https://news.ycombinator.com/item?id=30502392 Fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid (gist.github.com)
https://www.bell-labs.com/usr/dmr/www/hist.html

https://www.levenez.com/unix/
https://www.cs.dartmouth.edu/~doug/reader.pdf A Research UNIX Reader: Annotated Excerpts from the Programmer’s Manual, 1971-1986

https://news.ycombinator.com/item?id=30679923 Writing a device driver for Unix V6 (mveg.es)
https://news.ycombinator.com/item?id=31293032 Unix command line conventions over time (liw.fi) - dd is a mainframe command
https://news.ycombinator.com/item?id=31617072 The Beauty of Unix Pipelines (2020) (prithu.dev) *
https://news.ycombinator.com/item?id=31773056 pass – the standard Unix password manager (passwordstore.org)
https://news.ycombinator.com/item?id=32160339 Introduction to TCP and Sockets (2001) (scottklement.com)
https://news.ycombinator.com/item?id=32165278 Beej updated the classic Linux network programming guide (beej.us)
https://news.ycombinator.com/item?id=32314153 Xv6, a simple Unix-like teaching operating system (csail.mit.edu)
https://news.ycombinator.com/item?id=32955215 Reshaping Text (leancrew.com) - pr
https://news.ycombinator.com/item?id=32970069 Rawhide – (rh) find files using pretty C expressions (raf.org)
https://www.cs.jhu.edu/~phf/2016/fall/cs318/

https://www.gnu.org/software/parallel/20th-birthday.html
https://news.ycombinator.com/item?id=33232072 Semgrep: Writing quick rules to verify ideas (deesee.xyz)
https://news.ycombinator.com/item?id=33235315 “You meant to install ripgrep” (crates.io)
https://news.ycombinator.com/item?id=33324704 The Cult of Dd (eklitzke.org)
https://news.ycombinator.com/item?id=33583537 Building a simple shell in C – Part 3 (ehoneahobed.com)
https://news.ycombinator.com/item?id=34016518 So, what can you do with a process ID? (will-keleher.com)
https://news.ycombinator.com/item?id=34161081 The Linux Command Line (linuxcommand.org)

https://thevaluable.dev/guide-terminal-shell-console/
https://lobste.rs/s/2ghxua/guide_terminal_console_shell

<e1f> grep -A 10 for context 10 lines AFTER

https://biriukov.dev/docs/fd-pipe-session-terminal/0-sre-should-know-about-gnu-linux-shell-related-internals-file-descriptors-pipes-terminals-user-sessions-process-groups-and-daemons/
https://thenewstack.io/pipe-how-the-system-call-that-ties-unix-together-came-about/

https://news.ycombinator.com/item?id=34507230 U.S. accuses Google of abusing monopoly in ad technology (nytimes.com)
# ^
cd /tmp/
curl https://www.courtlistener.com/docket/66753787/1/united-states-v-google-llc/ \
   |sed '1,/div id=\"opinion-content\">/d;/<pre>/s//<meta charset=utf-8 \/>&/;/<\/pre>/,$d' > 1.htm
   firefox ./1.htm

https://news.ycombinator.com/item?id=34650523 Setuid in Unix created to enable a game (tuhs.org)
https://en.wikipedia.org/wiki/Person_having_ordinary_skill_in_the_art
https://new.pythonforengineers.com/blog/best-command-line-tools-ive-played-with/ Duf and Dust as a replacement for duf and du
https://news.ycombinator.com/item?id=35228884 Command Line One-Liners (commandlinefu.com)
https://news.ycombinator.com/item?id=35698282 Show HN: Killport – CLI tool to kill processes running on a specified port (github.com/jkfran)
https://maizure.org/projects/decoded-gnu-coreutils/

https://unix.t-a-y-l-o-r.com/4ltrwrd.pdf Unix is a Four Letter Word::: and Vi is a Two Letter Abbreviation
https://fabiensanglard.net/st/index.html EXPLORING LINUX COMMAND-LINE SPACE TIME
https://jvns.ca/blog/2013/10/24/day-16-gzip-plus-poetry-equals-awesome/
https://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/
https://jvns.ca/blog/2023/08/08/what-helps-people-get-comfortable-on-the-command-line-/
https://explainshell.com/ ***
https://jvns.ca/blog/2021/04/03/what-problems-do-people-solve-with-strace/
https://www.kdnuggets.com/master-the-art-of-command-line-with-this-github-repository
https://www.pixelbeat.org/docs/coreutils-testing.html
https://news.ycombinator.com/item?id=39455874 How the GNU coreutils are tested (2017) (pixelbeat.org)
https://news.ycombinator.com/item?id=39457875 Useful Uses of cat (two-wrongs.com)
https://antonz.org/grep-by-example/
https://linuxcommand.org/
https://linuxcommand.org/lc3_learning_the_shell.php
https://linuxcommand.org/lc3_writing_shell_scripts.php
https://linuxcommand.org/lc3_resources.php
https://linuxcommand.org/tlcl.php
https://linuxcommand.org/lc3_adventures.php
https://news.ycombinator.com/item?id=39958302 The Linux Command Line (linuxcommand.org)






#  Local Variables:
#  coding:               utf-8-unix
#  End: