mirror of
https://github.com/onceupon/Bash-Oneliner.git
synced 2024-11-22 21:07:00 +00:00
+ find 1. Recursively count all the files in a directory
+ Condition and loop 1. Using test command, to test if the length of variable is nonzero + Others 1. Create a screen and name it 'test' + Time 1. Get the seconds since epoch (Jan 1 1970) for a given date (e.g Mar 16 2021) 2. Convert the number of seconds since epoch back to date + fix some markdown syntax issue
This commit is contained in:
parent
093edef55a
commit
f1e9f30e78
77
README.md
77
README.md
@ -456,9 +456,10 @@ sed 1,100d filename
|
|||||||
##### Remove lines with string (e.g. 'bbo')
|
##### Remove lines with string (e.g. 'bbo')
|
||||||
```bash
|
```bash
|
||||||
sed "/bbo/d" filename
|
sed "/bbo/d" filename
|
||||||
- case insensitive:
|
# case insensitive:
|
||||||
sed "/bbo/Id" filename
|
sed "/bbo/Id" filename
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Remove lines whose nth character not equal to a value (e.g. 5th character not equal to 2)
|
##### Remove lines whose nth character not equal to a value (e.g. 5th character not equal to 2)
|
||||||
```bash
|
```bash
|
||||||
sed -E '/^.{5}[^2]/d'
|
sed -E '/^.{5}[^2]/d'
|
||||||
@ -982,6 +983,11 @@ find . -type f -empty
|
|||||||
find . -type f -empty -delete
|
find . -type f -empty -delete
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### Recursively count all the files in a directory
|
||||||
|
```bash
|
||||||
|
find . -type f | wc -l
|
||||||
|
```
|
||||||
|
|
||||||
## Condition and loop
|
## Condition and loop
|
||||||
[[back to top](#handy-bash-one-liners)]
|
[[back to top](#handy-bash-one-liners)]
|
||||||
|
|
||||||
@ -991,7 +997,7 @@ find . -type f -empty -delete
|
|||||||
if [[ "$c" == "read" ]]; then outputdir="seq"; else outputdir="write" ; fi
|
if [[ "$c" == "read" ]]; then outputdir="seq"; else outputdir="write" ; fi
|
||||||
|
|
||||||
# Test if myfile contains the string 'test':
|
# Test if myfile contains the string 'test':
|
||||||
if grep -q hello myfile; then …
|
if grep -q hello myfile; then echo -e "file contains the string!" ; fi
|
||||||
|
|
||||||
# Test if mydir is a directory, change to it and do other stuff:
|
# Test if mydir is a directory, change to it and do other stuff:
|
||||||
if cd mydir; then
|
if cd mydir; then
|
||||||
@ -1001,9 +1007,12 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# if variable is null
|
# if variable is null
|
||||||
if [ ! -s "myvariable" ]
|
if [ ! -s "myvariable" ]; then echo -e "variable is null!" ; fi
|
||||||
#True of the length if "STRING" is zero.
|
#True of the length if "STRING" is zero.
|
||||||
|
|
||||||
|
# Using test command (same as []), to test if the length of variable is nonzero
|
||||||
|
test -n "$myvariable" && echo myvariable is "$myvariable" || echo myvariable is not set
|
||||||
|
|
||||||
# Test if file exist
|
# Test if file exist
|
||||||
if [ -e 'filename' ]
|
if [ -e 'filename' ]
|
||||||
then
|
then
|
||||||
@ -1017,16 +1026,17 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Test if the value of x is greater or equal than 5
|
# Test if the value of x is greater or equal than 5
|
||||||
if [ "$x" -ge 5 ]; then …
|
if [ "$x" -ge 5 ]; then echo -e "greater or equal than 5!" ; fi
|
||||||
|
|
||||||
# Test if the value of x is greater or equal than 5, in bash/ksh/zsh:
|
# Test if the value of x is greater or equal than 5, in bash/ksh/zsh:
|
||||||
if ((x >= 5)); then …
|
if ((x >= 5)); then echo -e "greater or equal than 5!" ; fi
|
||||||
|
|
||||||
# Use (( )) for arithmetic operation
|
# Use (( )) for arithmetic operation
|
||||||
if ((j==u+2))
|
if ((j==u+2)); then echo -e "j==u+2!!" ; fi
|
||||||
|
|
||||||
# Use [[ ]] for comparison
|
# Use [[ ]] for comparison
|
||||||
if [[ $age -gt 21 ]]
|
if [[ $age -gt 21 ]]; then echo -e "forever 21!!" ; fi
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
[More if commands](http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html)
|
[More if commands](http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html)
|
||||||
@ -1107,9 +1117,21 @@ date +%F
|
|||||||
date +'%d-%b-%Y-%H:%M:%S'
|
date +'%d-%b-%Y-%H:%M:%S'
|
||||||
# 10-Apr-2020-21:54:40
|
# 10-Apr-2020-21:54:40
|
||||||
|
|
||||||
# returns the current time with nanoseconds.
|
# Returns the current time with nanoseconds.
|
||||||
date +"%T.%N"
|
date +"%T.%N"
|
||||||
# 11:42:18.664217000
|
# 11:42:18.664217000
|
||||||
|
|
||||||
|
# Get the seconds since epoch (Jan 1 1970) for a given date (e.g Mar 16 2021)
|
||||||
|
date -d "Mar 16 2021" +%s
|
||||||
|
# 1615852800
|
||||||
|
# or
|
||||||
|
date -d "Tue Mar 16 00:00:00 UTC 2021" +%s
|
||||||
|
# 1615852800
|
||||||
|
|
||||||
|
# Convert the number of seconds since epoch back to date
|
||||||
|
date --date @1615852800
|
||||||
|
# Tue Mar 16 00:00:00 UTC 2021
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
##### wait for random duration (e.g. sleep 1-5 second, like adding a jitter)
|
##### wait for random duration (e.g. sleep 1-5 second, like adding a jitter)
|
||||||
@ -1222,7 +1244,7 @@ shuf -n 100 filename
|
|||||||
|
|
||||||
##### Random order (lucky draw)
|
##### Random order (lucky draw)
|
||||||
```bash
|
```bash
|
||||||
for i in a b c d e; do echo $i; done| shuf
|
for i in a b c d e; do echo $i; done | shuf
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Echo series of random numbers between a range (e.g. shuffle numbers from 0-100, then pick 15 of them randomly)
|
##### Echo series of random numbers between a range (e.g. shuffle numbers from 0-100, then pick 15 of them randomly)
|
||||||
@ -1711,6 +1733,18 @@ du -h
|
|||||||
du -sk /var/log/* |sort -rn |head -10
|
du -sk /var/log/* |sort -rn |head -10
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### check the Inode utilization
|
||||||
|
```
|
||||||
|
df -i
|
||||||
|
# Filesystem Inodes IUsed IFree IUse% Mounted on
|
||||||
|
# devtmpfs 492652 304 492348 1% /dev
|
||||||
|
# tmpfs 497233 2 497231 1% /dev/shm
|
||||||
|
# tmpfs 497233 439 496794 1% /run
|
||||||
|
# tmpfs 497233 16 497217 1% /sys/fs/cgroup
|
||||||
|
# /dev/nvme0n1p1 5037976 370882 4667094 8% /
|
||||||
|
# tmpfs 497233 1 497232 1% /run/user/1000
|
||||||
|
```
|
||||||
|
|
||||||
##### Show all file system type
|
##### Show all file system type
|
||||||
```bash
|
```bash
|
||||||
df -TH
|
df -TH
|
||||||
@ -2167,6 +2201,7 @@ sar -n ALL
|
|||||||
|
|
||||||
# reading SAR log file using -f
|
# reading SAR log file using -f
|
||||||
sar -f /var/log/sa/sa31|tail
|
sar -f /var/log/sa/sa31|tail
|
||||||
|
```
|
||||||
|
|
||||||
##### Reading from journal file
|
##### Reading from journal file
|
||||||
```bash
|
```bash
|
||||||
@ -2881,6 +2916,13 @@ cal
|
|||||||
# only display November
|
# only display November
|
||||||
cal -m 11
|
cal -m 11
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### Convert the hexadecimal MD5 checksum value into its base64-encoded format.
|
||||||
|
```bash
|
||||||
|
openssl md5 -binary /path/to/file| base64
|
||||||
|
# NWbeOpeQbtuY0ATWuUeumw==
|
||||||
|
```
|
||||||
|
|
||||||
##### Forces applications to use the default language for output
|
##### Forces applications to use the default language for output
|
||||||
```bash
|
```bash
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
@ -3102,7 +3144,7 @@ scp -r directoryname user@ip:/path/to/send
|
|||||||
echo $?
|
echo $?
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Extract .xf
|
##### Extract .xz
|
||||||
```
|
```
|
||||||
unxz filename.tar.xz
|
unxz filename.tar.xz
|
||||||
# then
|
# then
|
||||||
@ -3142,8 +3184,7 @@ yes n
|
|||||||
# or 'anything':
|
# or 'anything':
|
||||||
yes anything
|
yes anything
|
||||||
|
|
||||||
# For example:
|
# pipe yes to other command
|
||||||
```bash
|
|
||||||
yes | rm -r large_directory
|
yes | rm -r large_directory
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -3202,6 +3243,9 @@ q -d "," "select c3,c4,c5 from /path/to/file.txt where c3='foo' and c5='boo'"
|
|||||||
# Create session and attach:
|
# Create session and attach:
|
||||||
screen
|
screen
|
||||||
|
|
||||||
|
# Create a screen and name it 'test'
|
||||||
|
screen -S test
|
||||||
|
|
||||||
# Create detached session foo:
|
# Create detached session foo:
|
||||||
screen -S foo -d -m
|
screen -S foo -d -m
|
||||||
|
|
||||||
@ -3220,15 +3264,16 @@ screen -r foo
|
|||||||
# Kill session foo:
|
# Kill session foo:
|
||||||
screen -r foo -X quit
|
screen -r foo -X quit
|
||||||
|
|
||||||
|
|
||||||
# Scroll:
|
# Scroll:
|
||||||
Hit your screen prefix combination (C-a / control+A), then hit Escape.
|
# Hit your screen prefix combination (C-a / control+A), then hit Escape.
|
||||||
Move up/down with the arrow keys (↑ and ↓).
|
# Move up/down with the arrow keys (↑ and ↓).
|
||||||
|
|
||||||
# Redirect output of an already running process in Screen:
|
# Redirect output of an already running process in Screen:
|
||||||
(C-a / control+A), then hit 'H'
|
# (C-a / control+A), then hit 'H'
|
||||||
|
|
||||||
# Store screen output for Screen:
|
# Store screen output for Screen:
|
||||||
Ctrl+A, Shift+H
|
# Ctrl+A, Shift+H
|
||||||
# You will then find a screen.log file under current directory.
|
# You will then find a screen.log file under current directory.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user