2.6 KiB
2.6 KiB
title: Command line stuff
List (ls)
Usage:
ls [options] [paths]
Format:
-1 One entry per line
-l Long view
-o Long view (without groups)
-C Multicolumn (sorted horizontally)
-x Multicolumn (sorted vertically)
-F Add / after directories
-G Color
Options:
-R Recurse
-a Include hidden (dotfiles)
-A Include hidden (but not . and ..)
Sorting:
-r reverse order
-S sort by size
-t sort by time modified
-u sort by time accessed
-U sort by time created
-c sort by time status was changed
-h Human-readable size (3k)
Find (find)
Usage:
find <path> <conditions> <actions>
Conditions:
-name "*.c"
-user jonathan
-nouser
-type f # File
-type d # Directory
-type l # Symlink
-depth 2 # At least 3 levels deep
-regex PATTERN
-newer file.txt
-newerm file.txt # modified newer than file.txt
-newerX file.txt # [c]hange, [m]odified, [B]create
-newerXt "1 hour ago" # [t]imestamp
Condition flow:
\! -name "*.c"
\( x -or y \)
Actions:
-exec rm {} \;
-print
-delete
Examples:
find . -name '*.jpg'
find . -name '*.jpg' -exec rm {} \;
find . -newerBt "24 hours ago"
Tail
Usage:
tail [-F | -f | -r] [-bN | -cN | -nN] [file ...]
Modes:
-f # follow
-F # follow by filename (accounts for log rotation)
-r # Reverse order
Options:
-bN # N*512 bytes
-cN # N bytes
-nN # N lines
+N # Start from line N
Sudo
Listing:
-l # List allowed commands
Options:
-A # Use $SUDO_ASKPASS
-b # Run in background
-E # Preserve environment
-H # use target's $HOME
-n # Don't prompt for password
-P # Preserve group vector
-S # Read password from stdin
File descriptors:
-C fd # Close all open file descriptors
Prompt:
-p prompt # Custom prompt (-p "%p password:")
Interactive:
-i [cmd] # Interactive shell without variables
-s [cmd] # Interactive shell
-u user # run as this user
-g group # run as this group
Timestamp:
-v # revalidate timestamp for 5 mins
-k # invalidate timestamp
-K # just like -k
wc (Word count)
-c # Bytes
-l # Lines
-m # Characters (incl multi-byte)
-w # Words
Search-and-replace in all files
perl -p -i -e 's/hello/HELLO/g' **/*