Unix Trix

"Unix is very simple, but it takes a genius to understand the simplicity."
(Dennis Ritchie)

Linux Trix
Booting
Scroll through the resolutions in case your monitor is blank on boot:
control-alt-f1 (actually this chooses virtual terminals 1-6 are text 7 is X)
control-alt + and - (scrolls through the resolutions)
alt arrow keys might work too
alt-SysRq-s (a safe restart when locked up) - sync disk
alt-SysRq-u (a safe restart when locked up) - remount read only
alt-SysRq-b (a safe restart when locked up) - reboot

Make subdirectories readable via the Internet
chmod -R a+rx ISERWebs
Copy only changed files from external disk to current subdirectory
rsync -av /media/Venus280Gig/ISERWebs ./

Mount and Umount

mount
mount -t usbfs /dev/usbdev2.1_ep8

unmount a volume:
umount /media/Venus280Gig
umount /dev/sda1

Install rsync without the Synaptic Installer
apt-get install rsync

use the cool Web editor (quanta)
quanta ./filename.ext

check on the use of the wusage port
lsof |grep 2396

default folder for Apache applications
cd /var/www
Kill Apache -- example of how to use the pkill command
pkill apache

More Netstatus stuff
netstat -s -t -a -p

Shutdown and halt the hardware to power off:
shutdown -hp

Startup folder for firewall scripts written in with a shell:
/etc/rc2.d

IPTABLES COMMANDS:
iptables -L

OpenBSD Tricks:

Aliases to paste into your bashrc
mf ="mount -t msdos /dev/fd0Ba /floppy"  # This will mount a MSDOS formatted diskette
mcd="mount /dev/cd0a /cdrom" # Mount CDROM Drive
musb="mount /dev/sd0i /thumb

netstat -I sis0 -w 5
netstat -I bce0 -w 5
(sis0 - netgear. & bce0 are network adapter interfaces)
This gives the network I/O status of a netgear card interface (-I) (sis0) every 5 seconds (-w)

ps -aux
(Process Started listing)

Setup tricks

etc/sysctrl.conf file
make sure the ddb.panic = 0 # Set a machine's default to reboot after a kernel panic
net.inet.ip.forwarding =1 # set ip forwarding on for bridging and packet filtering
/etc/rc.conf.local - Turn on the Packet Filter program if you have set it up
pf = yes

stopping pf
pfctl -d
starting pf
pfctl -e
starting pf with configuration file
pfctl -f /etc/pf.conf

More PF commands

# pfctl -f /etc/pf.conf Load the pf.conf file
# pfctl -nf /etc/pf.conf Parse the file, but don't load it
# pfctl -Nf /etc/pf.conf Load only the NAT rules from the file
# pfctl -Rf /etc/pf.conf Load only the filter rules from the file

# pfctl -sn Show the current NAT rules
# pfctl -sr Show the current filter rules
# pfctl -ss Show the current state table
# pfctl -si Show filter stats and counters
# pfctl -sa Show EVERYTHING it can show

Mount a floppy disk
mkdir /floppy    #The first time you mount a floppy disk you need to create a mount point:
ls /dev/fd*          # to find a floppy device
mount -t msdos /dev/fd0Ba /floppy        # This will mount a MSDOS formatted diskette
cd /floppy        # Change into the floppy directory
cd /                  # Change to the root directory so the diskette can be unmounted
umount /floppy            # unmount the floppy diskette

tar -zxvf bash*.tgz /
will untar a comppressed tarball into the current directory

Mount a CD-ROM (at /cdrom mount point)
after creating the a mount point (i.e.mkdir /cdrom)
mount /dev/cd0a /cdrom

Disk Usage
df usage of major partitions
df -h     # - h makes it human readable
du -s size of current directory
ls -la full info. file listing incl. hidden files
ls -laF full info. file listing incl. hidden files & file types
#where @ is link, * executable, / is directory
ls -ld full info. directory listing
ls -laF | sort | grep "/" #list all directories
ls -laF | sort | grep "*" #list all executables

Data and File tricks

sed 's/^0/string/g' file-in.txt>file-out.txt
globally replaces zero at the beggining of the line with string and write the output to file-out.txt - don't forget the quotation marks.

find ./ -type f | xargs grep -l 'http://AlaskaEconomy.uaa.alaska.edu' \
| xargs sed -a '' -e 's/http://AlaskaEconomy.uaa.alaska.edu/Living Conditions/g'

4.41. How do I make substitutions in every file in a directory, or in a complete directory tree?
4.41.1. - ssed and Perl solution

The best solution for multiple files in a single directory is to use ssed or gsed v4.0 or higher:

sed -i.BAK 's|foo|bar|g' files # -i does in-place replacement

If you don't have ssed, there is a similar solution in Perl. (Yes, we know this is a FAQ file for sed, not perl, but perl is more common than ssed for many users.)

perl -pi.bak -e 's|foo|bar|g' files # or
perl -pi.bak -e 's|foo|bar|g' `find /pathname -name "filespec"`

For each file in the filelist, sed (or Perl) renames the source file to "filename.bak"; the modified file gets the original filename. Remove '.bak' if you don't need backup copies. (Note the use of "s|||" instead of "s///" here, and in the scripts below. The vertical bars in the 's' command let you replace '/some/path' with '/another/path', accommodating slashes in the LHS and RHS.)

To recurse directories in Unix or GNU/Linux:

# We use xargs to prevent passing too many filenames to sed, but
# this command will fail if filenames contain spaces or newlines.
find /my/path -name '*.ht' -print | xargs sed -i.BAK 's|foo|bar|g'

More sed tricks

Perl global string/file replace
$ perl -pi -e 's/string1/string2/g' *

Getting rid of those pesky ^Ms that windows notepad leaves:
replace the ^M with tr

tr -d "\015" < dosformatted.txt > unixformatted.txt

Globally replace text in many files in place

find -name Root | xargs perl -pi -e 's/Old Text/New Text /g'

Just in case you need the ascii code here is an ASCII Table for you

$ find / \! -name '*.c' -print
Print out a list of all the files whose names do not end in ``.c''.

$ find / \! \( -newer ttt -user wnj \) -print
!Print out a list of all the files which are not both newer than``ttt'' and owned by ``wnj''.
$ find / \( -newer ttt -or -user wnj \) -print
!Print out a list of all the files that are either owned by ``wnj'' or newer than ``ttt''.
$ find / \! -fstype local -prune -or -name '*.core' -print
!Print out a list of all core files on local file systems.

dd if=floppy34.fs of=/dev/rfd0c bs=32k
!Write an OpenBSD floppy image to a floppy disk.

eject /dev/rcd0c
Eject the first CD device. This will work even if there is no CD in the drive.

Here is a handy backup routine to copy only files that have changed since the last backup:

#!/bin/csh
rsync -r -u -v /Stuff/* /Volumes/Backup/Stuff
rsync -r -u -v /Users/WhatsYourFace/* /Volumes/Backup/WhatsYourFace

RED HAT TRICKS
cat /proc/cpuinfo #for CPU information
cat /proc/meminfo # for memeory information
cat > filename.txt # then type or paste info to capture text and end with contol-d
tar -xvf tarfile.tar # unpack most archives
mkdir /cdrom # makes a directory to mount cdroms
mount /dev/cdrom /cdrom #mounts a cdrom in the /cdrom directory created in the last line

ps
–A notice the capital “-A” for all processes
stty rows 46 cols 100

Start Xwindows with:
xstart

find ./ -name filename
example:
cd ~ [go to home directory
find ./ -name lost.file*
ls –laF

Sort a directory via a pipe:
ls -l | sort -n +1
Explained:
ls = list directory -l = use long format
| = pipe output into the next command
sort -n +1 = sort using -n (numbers as opposed to letters) on the +1 (second field)

while in the sbin directory you can add users with the following:
./adduser –c “ftp guest” -d /home/iserguest -p secretpassword
Password change - Go to Single User Mode via hard boot (turn off computer or reset it)
Go to the boot prompt and type: linux single

Conversion tricks
EOL characters:
DOS: CR/LF
Macintosh: CR
Unix: LF

Return to Jim's Trix Page
Return to Jim's ISER Page

Return to Profiles or Directory Page or ISER Home Page

Last updated April 2, 2007