# Main Index: Debian Linux Magic Spells Cheat Sheet (one liners, how to, tips and tricks)
# File Printing and Dumping
Type a file:
cat PATH/FILE
cat -n PATH/FILE # show a text file with line numbers
cat PATH/FILE | tr [:upper:] [:lower:] # show a text all in lower case
cat PATH/FILE | tr [:lower:] [:upper:] # show a text all in Upper case
tac PATH/FILE # show a text from the last line to the first (thus listing lines backwards), useful to ordering elements in a last-in, first-out (LIFO) way
fold -w COLOUMN PATH/FILE # wrap a text file, cutting lines at the given coloumn. Useful to format data as input for a program
fmt -u -w80 file.txt # format a text file output: 1 space between words, 2 spaces between sentences, 80 coloumns
nl PATH/FILE # show line numbers for every line (empty lines are not counted by default)
nl -ba PATH/FILE # show line numbers for every line and count all lines, including empty ones
nl -s": " PATH/FILE # show line numbers for every line and separate line numbers from line text using the specified separator (": " in this case)
pr -l 50 test.txt # show a text as pages, each page is 50 lines long (minimum 11, default is 66)
pr -l 50 --column 2 test.txt # show a text as pages, each page is 50 lines long and divided into 2 columns
more PATH/FILE # type a file page by page
less PATH/FILE # show a file page by page, and let scroll through pages. It shows escaped characters as plain text (get it with apt-get install less )
less -F PATH/FILE # show a file page by page, and let scroll through pages (get it with apt-get install less ). If the file output fits a single screen it quits without having to press "q"
grep "TEXT" PATH/FILE # show only lines containing "TEXT"
grep -v "TEXT" PATH/FILE # show only lines NOT containing "TEXT"
grep -i "TEXT" PATH/FILE # show only lines containing "TEXT" (case insensitive)
grep -vi "TEXT" PATH/FILE # show only lines NOT containing "TEXT" (case insensitive)
grep -m 1 "TEXT" PATH/FILE # show only the first matching line containing "TEXT"
grep -v -m 1"TEXT" PATH/FILE # show only the first matching line NOT containing "TEXT"
grep -i -m 1"TEXT" PATH/FILE # show only the first matching line containing "TEXT" (case insensitive)
grep -vi -m 1"TEXT" PATH/FILE # show only the first matching line NOT containing "TEXT" (case insensitive)
grep -B 1 -A 1 "TEXT" PATH/FILE # show lines containing "TEXT" and show 1 line Before and 1 line After each match
grep -B 2 -A 2 -n "TEXT" PATH/FILE # show lines containing "TEXT" and show 2 lines Before and 2 lines After each match, together with line numbers
head PATH/FILE # show the head (first 10 lines) of FILE
head --lines=20 PATH/FILE # show the first 20 lines of FILE
head --bytes=1024 PATH/FILE # show the first 1024 bytes of FILE
head --lines=-50 PATH/FILE # show all the FILE but the last 20 lines
head --bytes=-2048 PATH/FILE # show all the FILE but the first 2048 bytes
tail PATH/FILE # show the tail (last 10 lines) of FILE
tail --lines=20 -F PATH/FILE # show the last 20 lines of FILE, and new lines as the file grows. If the files doesn't exist yet, it waits for it (useful for log files)
tail --lines=+20 -F PATH/FILE # show the last lines of FILE starting from line 20
tail --bytes=1024 PATH/FILE # show the last 1024 bytes of FILE
tail -f PATH/FILE # keep showing the last line of FILE whenever there are added new ones (useful for log files) until stopped
tail -f PATH/FILE | sed '/^ENDSTRING$/ q' # keep showing the last line of FILE whenever there are added new ones (useful for log files) until a given string appears
sed -n "3p" PATH/FILE # show line number 3 of FILE
sed -n "2,4p" PATH/FILE # show lines 2 to 4 of FILE
sed -n "1,5p" PATH/FILE # show lines 1 (beginning) to 5 of FILE
sed -n "5p,$" PATH/FILE # show lines 5 to the end of FILE
sed -n -e '3,5p' -e '9,15p' PATH/FILE # show lines 3 to 5 and 9 to 15 of FILE
sed -e "5d" PATH/FILE # show all lines of FILE except for the ones from 2 to 30 included, and except for line 5
sed -e "2,30d" PATH/FILE # show all lines of FILE except for the ones from 2 to 30 included
sed -e "5d;2,30d" PATH/FILE # show all lines of FILE except for line 5, and except for the ones from 2 to 30 included
awk 'NR==2 {print;exit}' SOURCE # Print line number 2 from SOURCE file
awk 'NR==2,NR==4' SOURCE # Print line numbers 2 to 4 (inclusive) from SOURCE file
awk '{print $1}' PATH/FILE # print the first word of every line in FILE
awk '{print substr ($1,0,1)}' PATH/FILE # print the first character of every line in FILE
awk 'NF>=1{print $NF}' PATH/FILE # print the last word of every line in FILE
grep -o '.$' PATH/FILE # print the last character of every line in FILE
cat PATH/FILE | awk 'length($0) < 5' # show lines longer less than 5 characters in FILE
cat PATH/FILE | awk 'length($0) > 5' # show lines longer more than 5 characters in FILE
cat PATH/FILE | awk 'length($0) == 5' # show lines longer with exactly 5 characters in FILE
cat PATH/FILE | awk 'length($0) >= 5' # show lines with at least 5 characters in FILE
cat PATH/FILE | awk 'length($0) >= 5 { print NR ":" $0 }' # show lines with at least 5 characters in FILE, preceded by line numbers of matching lines
grep '.\{5\}' PATH/FILE # show lines with at least 5 characters in FILE
Binary dump of a file:
xxd -b PATH/FILE # binary dump of FILE
xxd -b PATH/FILE | less # navigate the binary dump of FILE
Hexadecimal dump of a file:
xxd PATH/FILE # hex dump of FILE
xxd PATH/FILE | less # navigate the hex dump of FILE
xxd -u PATH/FILE # hex dump of FILE. Show hex numbers in Upper case
xxd -a PATH/FILE # hex dump of FILE. Replace multiple NUL (00) lines with an asterisk ( * )
od -Ax -tx1z -v PATH/FILE # hex dump of FILE
hexdump -C PATH/FILE # hex dump of FILE
hexdump PATH/FILE # hex dump of FILE without the ASCII equivalent
File printout on a printer
Print a file on a printer:
lpr -Pprinter PATH/FILE
lpr -Pprinter -#N PATH/FILE # print N copies of FILE on printer
List print queue:
lpq
Remove a job from the print queue:
lprm JOB_ID
lprm # remove all jobs from the print queue
Samba
Samba is a free, cross-platform implementation of the Microsoft SMB (Server Message Block) protocol for sharing files, printers, and other devices over a network.
apt-get install samba smbfs smbclient samba-doc
mkdir /public
mkdir /public/shared
chmod -v 0777 /public
chmod -v 0777 /public/shared
jed /etc/samba/smb.conf
---
# samba configuration file
[global]
allow hosts = 192.168.0.0/255.255.255.0
workgroup = network
server string = %h server (Samba %v)
log file = /var/log/samba/log.%m
max log size = 1024
; security = user
encrypt passwords = true
passdb backend = tdbsam guest
guest account = nobody
invaluid users = root
preserve case = yes
short preserve case = yes
; include /home/samba/etc/smb.conf.%m
socket options = TCP_NODELAY
[homes]
comment = Home directories
browseable = no
writable = no
create mask = 0700
directory mask = 0700
[shared]
comment = Public shared directory
path = /public/shared
public = yes
browseable = yes
; read only = no
writable = yes
; printable = no
create mask = 0766
directory mask = 0766
guest ok = yes
; valid users = user_name
---
testparm /etc/samba/smb.conf
/etc/init.d/samba restart
Set a password for SMB:
smbpasswd -a nobody
You'll be requested for a New SMB password and to Retype new SMB password.
Log file (default):
/var/log/samba/log.%m
smbtree # Find Windows machines
Please DONATE to support the development of Free and Open Source Software (PayPal, Credit Card, Bitcoin, Ether)
Page issued on 29-Sep-2023 14:35 GMT
Copyright (c) 2023 Geody - Legal notices: copyright, privacy policy, disclaimer