====== Quick FreeBSD Tricks ======
In several places, I have simply inserted the code as a script to be downloaded. I tend to keep things like this around so I can just run a simple command instead of copying/pasting an entire line.
===== Hardware Devices =====
==== To locate all attached drives, scan dmesg.boot ====
#! /bin/sh
egrep '(ad|cd|da)[0-9]' /var/run/dmesg.boot | sort
Or, simply run
geom disk list
==== List USB devices ====
usbconfig
===== Monitoring =====
==== CPU Temperatures ====
Following command will show you the temperature of each core of a processor
sysctl -a | grep temperature | grep cpu
==== iotop substitute ====
iotop is a well known utility under Linux, but not available for FreeBSD. However, the following command will do the same thing (does not apparently work for iSCSI devices)
top -m io -o total
==== watch substitute ====
Under Linux, watch repeats a command over and over, so it is useful for monitoring long running processes. The FreeBSD command //cmdwatch// does the same thing, with the same flags.
cmdwatch zpool iostat -v
===== Package Management =====
==== setting pkg to not ask permission ====
I was used to Debian's apt-get, and used the -y (answer "Yes" to all questions) parameter. Looking for something similar for pkg, I ran across [[http://dan.langille.org/2013/12/06/bootstrapping-installing-pkg-on-freebsd-unattended-and-without-answering-yes/]] which showed a possible answer; set an environmental variable as part of the call.
env ASSUME_ALWAYS_YES=YES pkg install p5-libwww
will install LWP (p5-libwww) without waiting for you to select "Yes"
==== clean pkg cache ====
After a while, your pkg cache will use more and more space on your disk, with copies of packages you have already installed. The following command cleans that cache.
pkg clean
===== User Administration =====
==== Administrative Permission ====
By default, a new user is **not** able to become root. To do this, you must add them to the //wheel// group. Use the following command
pw user mod username -G wheel
where //username// is the username of the user who has access
==== Changing Shell ====
I just like //bash// for my shell. While it is not the standard for BSD, it is much more powerful than the standard //sh//, so I like to use it for my personal account. Once bash is installed, set it as the default shell for a user.
chsh -s bash username
Warning: do not modify the root account's shell. You will break your system. If you want a bash script to run as root, be sure to include
#! /usr/bin/env bash
at the head of your scripts.
===== zfs tricks =====
* zfs unshare -a
* zfs share -a
* showmount -e