freebsd-tips revision 269089
178266SnikThis fortune brought to you by: 278266Snik$FreeBSD: head/games/fortune/datfiles/freebsd-tips 269089 2014-07-25 14:47:44Z allanjude $ 378266Snik% 4174425SdougbAny user that is a member of the wheel group can use "su -" to simulate 5174425Sdougba root login. You can add a user to the wheel group by editing /etc/group. 6174425Sdougb -- Konstantinos Konstantinidis <kkonstan@duth.gr> 778266Snik% 878266SnikBy pressing "Scroll Lock" you can use the arrow keys to scroll backward 978266Snikthrough the console output. Press "Scroll Lock" again to turn it off. 1078266Snik% 11256019SglebiusCan't remember if you've installed a certain port or not? Try "pkg info 12256019Sglebius-x port_name". 1378266Snik% 14174425SdougbEver wonder what those numbers after command names were, as in cat(1)? It's 15174425Sdougbthe section of the manual the man page is in. "man man" will tell you more. 16174425Sdougb -- David Scheidt <dscheidt@tumbolia.com> 1778266Snik% 18174425SdougbForget how to spell a word or a variation of a word? Use 1978266Snik 20174425Sdougb look portion_of_word_you_know 21174425Sdougb -- Dru <genesis@istar.ca> 2278266Snik% 23174425SdougbForget what directory you are in? Type "pwd". 24174425Sdougb -- Dru <genesis@istar.ca> 2578266Snik% 26174425SdougbForget when Easter is? Try "ncal -e". If you need the date for Orthodox 27174425SdougbEaster, use "ncal -o" instead. 28174425Sdougb -- Dru <genesis@istar.ca> 2978266Snik% 30174425SdougbFreeBSD is started up by the program 'init'. The first thing init does when 31174425Sdougbstarting multiuser mode (ie, starting the computer up for normal use) is to 32174425Sdougbrun the shell script /etc/rc. By reading /etc/rc and the /etc/rc.d/ scripts, 33174425Sdougbyou can learn a lot about how the system is put together, which again will 34174425Sdougbmake you more confident about what happens when you do something with it. 3578266Snik% 36174425SdougbHandy bash(1) prompt: PS1="\u@\h \w \!$ " 37174425Sdougb -- David Scheidt <dscheidt@tumbolia.com> 3878266Snik% 39174425SdougbHaving trouble using fetch through a firewall? Try setting the environment 40174425Sdougbvariable FTP_PASSIVE_MODE to yes, and see fetch(3) for more details. 4178266Snik% 42174425SdougbIf other operating systems have damaged your Master Boot Record, you can 43241934Seadlerreinstall it with boot0cfg(8). See 44174425Sdougb"man boot0cfg" for details. 4578266Snik% 46174425SdougbIf you accidentally end up inside vi, you can quit it by pressing Escape, colon 47174425Sdougb(:), q (q), bang (!) and pressing return. 4878266Snik% 49174425SdougbIf you are in the C shell and have just installed a new program, you won't 50174425Sdougbbe able to run it unless you first type "rehash". 51174425Sdougb -- Dru <genesis@istar.ca> 5278266Snik% 5378266SnikIf you do not want to get beeps in X11 (X Windows), you can turn them off with 5478266Snik 5578266Snik xset b off 5678266Snik% 57174425SdougbIf you have a CD-ROM drive in your machine, you can make the CD-ROM that is 58174425Sdougbpresently inserted available by typing 'mount /cdrom' as root. The CD-ROM 59174425Sdougbwill be available under /cdrom/. Remember to do 'umount /cdrom' before 60174425Sdougbremoving the CD-ROM (it will usually not be possible to remove the CD-ROM 61174425Sdougbwithout doing this.) 6278266Snik 63174425SdougbNote: This tip may not work in all configurations. 6478266Snik% 65174425SdougbIf you need a reminder to leave your terminal, type "leave +hhmm" where 66174425Sdougb"hhmm" represents in how many hours and minutes you need to leave. 67174425Sdougb -- Dru <genesis@istar.ca> 6878266Snik% 69174425SdougbIf you need to ask a question on the FreeBSD-questions mailing list then 7078266Snik 71174425Sdougb http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/\ 72174425Sdougb freebsd-questions/index.html 7378266Snik 74174425Sdougbcontains lots of useful advice to help you get the best results. 7578266Snik% 76235227SeadlerIf you write part of a filename in tcsh, 77235209Seadlerpressing TAB will show you the available choices when there 78174425Sdougbis more than one, or complete the filename if there's only one match. 7978266Snik% 80174425SdougbIf you `set watch = (0 any any)' in tcsh, you will be notified when 81174425Sdougbsomeone logs in or out of your system. 8278266Snik% 83174425SdougbIf you use the C shell, add the following line to the .cshrc file in your 84174425Sdougbhome directory to prevent core files from being written to disk: 8578266Snik 86174425Sdougb limit coredumpsize 0 87174425Sdougb -- Dru <genesis@istar.ca> 8878266Snik% 89174425SdougbIf you want df(1) and other commands to display disk sizes in 90174425Sdougbkilobytes instead of 512-byte blocks, set BLOCKSIZE in your 91174425Sdougbenvironment to 'K'. You can also use 'M' for Megabytes or 'G' for 92174425SdougbGigabytes. If you want df(1) to automatically select the best size 93174425Sdougbthen use 'df -h'. 9478266Snik% 9578266SnikIf you want to play CDs with FreeBSD, a utility for this is already included. 9678266SnikType 'cdcontrol' then 'help' to learn more. (You may need to set the CDROM 9778266Snikenvironment variable in order to make cdcontrol want to start.) 9878266Snik% 99174425SdougbIf you'd like to keep track of applications in the FreeBSD ports tree, take a 100174425Sdougblook at FreshPorts; 10178266Snik 102174425Sdougb http://www.freshports.org/ 103174425Sdougb% 104174425SdougbIn order to make fetch (the FreeBSD downloading tool) ask for 105174425Sdougbusername/password when it encounters a password-protected web page, you can set 106174425Sdougbthe environment variable HTTP_AUTH to 'basic:*'. 107174425Sdougb% 108174425SdougbIn order to search for a string in some files, use 'grep' like this: 10978266Snik 110174425Sdougb grep "string" filename1 [filename2 filename3 ...] 11178266Snik 112174425SdougbThis will print out the lines in the files that contain the string. grep can 113174425Sdougbalso do a lot more advanced searches - type 'man grep' for details. 11478266Snik% 115174425SdougbIn order to support national characters for European languages in tools like 116174425Sdougbless without creating other nationalisation aspects, set the environment 117174425Sdougbvariable LC_ALL to 'en_US.ISO8859-1'. 11878266Snik% 119174425Sdougb"man firewall" will give advice for building a FreeBSD firewall 120174425Sdougb -- David Scheidt <dscheidt@tumbolia.com> 12178266Snik% 122174425Sdougb"man hier" will explain the way FreeBSD filesystems are normally laid out. 123174425Sdougb -- David Scheidt <dscheidt@tumbolia.com> 12478266Snik% 125174425SdougbMan pages are divided into section depending on topic. There are 9 different 126174425Sdougbsections numbered from 1 (General Commands) to 9 (Kernel Developer's Manual). 127174425SdougbYou can get an introduction to each topic by typing 12878266Snik 129174425Sdougb man <number> intro 13078266Snik 131174425SdougbIn other words, to get the intro to general commands, type 132174425Sdougb 133174425Sdougb man 1 intro 13478266Snik% 135174425Sdougb"man ports" gives many useful hints about installing FreeBSD ports. 13678271Snik% 137174425Sdougb"man security" gives very good advice on how to tune the security of your 138174425SdougbFreeBSD system. 13978271Snik% 140174425Sdougb"man tuning" gives some tips how to tune performance of your FreeBSD system. 14178271Snik -- David Scheidt <dscheidt@tumbolia.com> 14278271Snik% 143174425SdougbNeed to do a search in a manpage or in a file you've sent to a pager? Use 144174425Sdougb"/search_word". To repeat the same search, type "n" for next. 145174425Sdougb -- Dru <genesis@istar.ca> 14678271Snik% 147174425SdougbNeed to find the location of a program? Use "locate program_name". 148174425Sdougb -- Dru <genesis@istar.ca> 14978271Snik% 150174425SdougbNeed to leave your terminal for a few minutes and don't want to logout? 151174425SdougbUse "lock -p". When you return, use your password as the key to unlock the 152174425Sdougbterminal. 153174425Sdougb -- Dru <genesis@istar.ca> 15478271Snik% 155174425SdougbNeed to print a manpage? Use 15678283Seivind 157174425Sdougb man name_of_manpage | col -bx | lpr 158174425Sdougb -- Dru <genesis@istar.ca> 15978283Seivind% 160174425SdougbNeed to quickly empty a file? Use ": > filename". 161174425Sdougb -- Dru <genesis@istar.ca> 16278283Seivind% 163174425SdougbNeed to quickly return to your home directory? Type "cd". 164174425Sdougb -- Dru <genesis@istar.ca> 16578283Seivind% 166174425SdougbNeed to remove all those ^M characters from a DOS file? Try 16778283Seivind 168174425Sdougb tr -d \\r < dosfile > newfile 169174425Sdougb -- Originally by Dru <genesis@istar.ca> 17078283Seivind% 171174425SdougbNeed to see the calendar for this month? Simply type "cal". To see the 172174425Sdougbwhole year, type "cal -y". 173174425Sdougb -- Dru <genesis@istar.ca> 17481558Smharo% 175174425SdougbNeed to see which daemons are listening for connection requests? Use 176174425Sdougb"sockstat -4l" for IPv4, and "sockstat -l" for IPv4 and IPv6. 177174425Sdougb -- Dru <genesis@istar.ca> 17881558Smharo% 179174425SdougbNeed to see your routing table? Type "netstat -rn". The entry with the G 180174425Sdougbflag is your gateway. 181174425Sdougb -- Dru <genesis@istar.ca> 18281558Smharo% 183174425SdougbNice bash prompt: PS1='(\[$(tput md)\]\t <\w>\[$(tput me)\]) $(echo $?) \$ ' 184174425Sdougb -- Mathieu <mathieu@hal.interactionvirtuelle.com> 18593518Sjoe% 186174425SdougbOver quota? "du -s * | sort -n " will give you a sorted list of your 187174425Sdougbdirectory sizes. 188174425Sdougb -- David Scheidt <dscheidt@tumbolia.com> 189174425Sdougb% 190187110Ssimonnc(1) (or netcat) is useful not only for redirecting input/output to 191187110SsimonTCP or UDP connections, but also for proxying them with inetd(8). 19281558Smharo% 193174425Sdougbsh (the default Bourne shell in FreeBSD) supports command-line editing. Just 194174425Sdougb``set -o emacs'' or ``set -o vi'' to enable it. 19581558Smharo% 196174425SdougbSimple tcsh prompt: set prompt = '%# ' 19781558Smharo% 198174425SdougbThe default editor in FreeBSD is vi, which is efficient to use when you have 199174425Sdougblearned it, but somewhat user-unfriendly. To use ee (an easier but less 200174425Sdougbpowerful editor) instead, set the environment variable EDITOR to /usr/bin/ee 20181558Smharo% 202174425SdougbTime to change your password? Type "passwd" and follow the prompts. 20378355Snik -- Dru <genesis@istar.ca> 20481558Smharo% 205174425SdougbTo change an environment variable in /bin/sh use: 206174425Sdougb 207174425Sdougb $ VARIABLE="value" 208174425Sdougb $ export VARIABLE 209174425Sdougb% 210174425SdougbTo change an environment variable in tcsh you use: setenv NAME "value" 211174425Sdougbwhere NAME is the name of the variable and "value" its new value. 212174425Sdougb% 21395677SdougbTo clear the screen, use "clear". To re-display your screen buffer, press 21495677Sdougbthe scroll lock key and use your page up button. When you're finished, 21595677Sdougbpress the scroll lock key again to get your prompt back. 21678355Snik -- Dru <genesis@istar.ca> 21781558Smharo% 21895677SdougbTo determine whether a file is a text file, executable, or some other type 21995677Sdougbof file, use 22078355Snik 22178355Snik file filename 22278355Snik -- Dru <genesis@istar.ca> 22381558Smharo% 224174425SdougbTo do a fast search for a file, try 225174425Sdougb 226174425Sdougb locate filename 227174425Sdougb 228174425Sdougblocate uses a database that is updated every Saturday (assuming your computer 229174425Sdougbis running FreeBSD at the time) to quickly find files based on name only. 23081558Smharo% 231174425SdougbTo erase a line you've written at the command prompt, use "Ctrl-U". 23278355Snik -- Dru <genesis@istar.ca> 23381558Smharo% 234269089SallanjudeTo find the hostname associated with an IP address, use 23578355Snik 236269089Sallanjude drill -x IP_address 237269089Sallanjude -- Allan Jude <allanjude@freebsd.org> 23881558Smharo% 239174425SdougbTo obtain a neat PostScript rendering of a manual page, use ``-t'' switch 240174425Sdougbof the man(1) utility: ``man -t <topic>''. For example: 24178355Snik 242174425Sdougb man -t grep > grep.ps # Save the PostScript version to a file 243174425Sdougbor 244174425Sdougb man -t printf | lp # Send the PostScript directly to printer 24581558Smharo% 246174425SdougbTo quickly create an empty file, use "touch filename". 24778355Snik -- Dru <genesis@istar.ca> 24881558Smharo% 249174425SdougbTo read a compressed file without having to first uncompress it, use 250235209Seadler"zcat" or "zless" to view it. 25178355Snik -- Dru <genesis@istar.ca> 25281558Smharo% 253174425SdougbTo repeat the last command in the C shell, type "!!". 25478355Snik -- Dru <genesis@istar.ca> 25581558Smharo% 256174425SdougbTo save disk space in your home directory, compress files you rarely 257174425Sdougbuse with "gzip filename". 25878355Snik -- Dru <genesis@istar.ca> 25981558Smharo% 260174425SdougbTo search for files that match a particular name, use find(1); for example 26178355Snik 262174425Sdougb find / -name "*GENERIC*" -ls 263174425Sdougb 264174425Sdougbwill search '/', and all subdirectories, for files with 'GENERIC' in the name. 265174425Sdougb -- Stephen Hilton <nospam@hiltonbsd.com> 26681558Smharo% 267174425SdougbTo see all of the directories on your FreeBSD system, type 268174425Sdougb 269241116Seadler find / -type d | less 270241116Seadler 271241116SeadlerAll the files? 272241116Seadler 273241116Seadler find / -type f | less 27481558Smharo% 27595677SdougbTo see how long it takes a command to run, type the word "time" before the 27695677Sdougbcommand name. 27778355Snik -- Dru <genesis@istar.ca> 27881558Smharo% 279174425SdougbTo see how much disk space is left on your partitions, use 28078355Snik 281174425Sdougb df -h 28278355Snik -- Dru <genesis@istar.ca> 28381558Smharo% 284174425SdougbTo see the 10 largest files on a directory or partition, use 28578355Snik 286174425Sdougb du /partition_or_directory_name | sort -rn | head 28778355Snik -- Dru <genesis@istar.ca> 28881558Smharo% 289174425SdougbTo see the IP addresses currently set on your active interfaces, type 290174425Sdougb"ifconfig -u". 29178355Snik -- Dru <genesis@istar.ca> 29281558Smharo% 293174425SdougbTo see the last 10 lines of a long file, use "tail filename". To see the 294174425Sdougbfirst 10 lines, use "head filename". 29578355Snik -- Dru <genesis@istar.ca> 29681558Smharo% 297174425SdougbTo see the last time that you logged in, use lastlogin(8). 29878355Snik -- Dru <genesis@istar.ca> 29981558Smharo% 300174425SdougbTo see the MAC addresses of the NICs on your system, type 301174425Sdougb 302174425Sdougb ifconfig -a 30378355Snik -- Dru <genesis@istar.ca> 30481558Smharo% 305174425SdougbTo see the output from when your computer started, run dmesg(8). If it has 306174425Sdougbbeen replaced with other messages, look at /var/run/dmesg.boot. 307174425Sdougb -- Francisco Reyes <lists@natserv.com> 30881558Smharo% 309174425SdougbWant colour in your directory listings? Use "ls -G". "ls -F" is also useful, 310174425Sdougband they can be combined as "ls -FG". 31181558Smharo% 312235227SeadlerWant to find a specific port, just type the following under /usr/ports 313174425Sdougbor one its subdirectories: 314174425Sdougb 315241116Seadler make search name=<port-name> 316174425Sdougb or 317241116Seadler make search key=<keyword> 31881558Smharo% 319174425SdougbWant to know how many words, lines, or bytes are contained in a file? Type 320174425Sdougb"wc filename". 32178355Snik -- Dru <genesis@istar.ca> 32281558Smharo% 323174425SdougbWant to see how much virtual memory you're using? Just type "swapinfo" to 324174425Sdougbbe shown information about the usage of your swap partitions. 32581558Smharo% 326174425SdougbWant to strip UTF-8 BOM(Byte Order Mark) from given files? 32778355Snik 328174425Sdougb sed -e '1s/^\xef\xbb\xbf//' < bomfile > newfile 32981558Smharo% 330174425SdougbWant to use sed(1) to edit a file in place? Well, to replace every 'e' with 331174425Sdougban 'o', in a file named 'foo', you can do: 33278355Snik 333174425Sdougb sed -i.bak s/e/o/g foo 334174425Sdougb 335174425SdougbAnd you'll get a backup of the original in a file named 'foo.bak', but if you 336174425Sdougbwant no backup: 337174425Sdougb 338174425Sdougb sed -i '' s/e/o/g foo 33978471Snik% 34078777SbrianWhen you've made modifications to a file in vi(1) and then find that 34178777Sbrianyou can't write it, type ``<ESC>!rm -f %'' then ``:w!'' to force the 34278777Sbrianwrite 34378777Sbrian 34478777SbrianThis won't work if you don't have write permissions to the directory 34578777Sbrianand probably won't be suitable if you're editing through a symbolic link. 34690516Skeramida% 347174425SdougbYou can adjust the volume of various parts of the sound system in your 348174425Sdougbcomputer by typing 'mixer <type> <volume>'. To get a list of what you can 349174425Sdougbadjust, just type 'mixer'. 350174425Sdougb% 351174425SdougbYou can automatically download and install binary packages by doing 35290516Skeramida 353256019Sglebius pkg install <package> 354174425Sdougb 355256019SglebiusThis will also automatically install the packages that are dependencies 356256019Sglebiusfor the package you install (ie, the packages it needs in order to work.) 357102943Sjmallett% 358174425SdougbYou can change the video mode on all consoles by adding something like 359174425Sdougbthe following to /etc/rc.conf: 360102943Sjmallett 361174425Sdougb allscreens="80x30" 362102943Sjmallett 363174425SdougbYou can use "vidcontrol -i mode | grep T" for a list of supported text 364174425Sdougbmodes. 365174425Sdougb -- Konstantinos Konstantinidis <kkonstan@duth.gr> 366174425Sdougb% 367174425SdougbYou can disable tcsh's terminal beep if you `set nobeep'. 368174425Sdougb% 369174425SdougbYou can install extra packages for FreeBSD by using the ports system. 370174425SdougbIf you have installed it, you can download, compile, and install software by 371174425Sdougbjust typing 372163144Schinsan 373174425Sdougb # cd /usr/ports/<category>/<portname> 374174425Sdougb # make install && make clean 375174425Sdougb 376174425Sdougbas root. The ports infrastructure will download the software, change it so 377174425Sdougbit works on FreeBSD, compile it, install it, register the installation so it 378174425Sdougbwill be possible to automatically uninstall it, and clean out the temporary 379174425Sdougbworking space it used. You can remove an installed port you decide you do not 380174425Sdougbwant after all by typing 381174425Sdougb 382174425Sdougb # cd /usr/ports/<category>/<portname> 383174425Sdougb # make deinstall 384174425Sdougb 385174425Sdougbas root. 386174422Sdougb% 387174425SdougbYou can look through a file in a nice text-based interface by typing 388174425Sdougb 389174425Sdougb less filename 390174425Sdougb% 391174425SdougbYou can make a log of your terminal session with script(1). 392174425Sdougb% 393174425SdougbYou can often get answers to your questions about FreeBSD by searching in the 394174425SdougbFreeBSD mailing list archives at 395174425Sdougb 396174425Sdougb http://www.FreeBSD.org/search/search.html 397174425Sdougb% 398174425SdougbYou can open up a new split-screen window in (n)vi with :N or :E and then 399174425Sdougbuse ^w to switch between the two. 400174425Sdougb% 401174425SdougbYou can permanently set environment variables for your shell by putting them 402174425Sdougbin a startup file for the shell. The name of the startup file varies 403174425Sdougbdepending on the shell - csh and tcsh uses .login, bash, sh, ksh and zsh use 404174425Sdougb.profile. When using bash, sh, ksh or zsh, don't forget to export the 405174425Sdougbvariable. 406174425Sdougb% 407174425SdougbYou can press Ctrl-D to quickly exit from a shell, or logout from a 408174425Sdougblogin shell. 409174425Sdougb -- Konstantinos Konstantinidis <kkonstan@duth.gr> 410174425Sdougb% 411241116SeadlerYou can press Ctrl-L while in the shell to clear the screen. 412241116Seadler% 413174425SdougbYou can press up-arrow or down-arrow to walk through a list of 414174425Sdougbprevious commands in tcsh. 415174425Sdougb% 416174425SdougbYou can search for documentation on a keyword by typing 417174425Sdougb 418174425Sdougb apropos keyword 419174425Sdougb% 420174425SdougbYou can `set autologout = 30' to have tcsh log you off automatically 421174425Sdougbif you leave the shell idle for more than 30 minutes. 422174425Sdougb% 423174425SdougbYou can use aliases to decrease the amount of typing you need to do to get 424174425Sdougbcommands you commonly use. Examples of fairly popular aliases include (in 425174425SdougbBourne shell style, as in /bin/sh, bash, ksh, and zsh): 426174425Sdougb 427174425Sdougb alias lf="ls -FA" 428174425Sdougb alias ll="ls -lA" 429174425Sdougb alias su="su -m" 430174425Sdougb 431174425SdougbIn csh or tcsh, these would be 432174425Sdougb 433174425Sdougb alias lf ls -FA 434174425Sdougb alias ll ls -lA 435174425Sdougb alias su su -m 436174425Sdougb 437174425SdougbTo remove an alias, you can usually use 'unalias aliasname'. To list all 438174425Sdougbaliases, you can usually type just 'alias'. 439174425Sdougb% 440174425SdougbYou can use /etc/make.conf to control the options used to compile software 441174425Sdougbon this system. Example entries are in 442174425Sdougb/usr/share/examples/etc/make.conf. 443174425Sdougb% 444256019SglebiusYou can use "pkg info" to see a list of packages you have installed. 445174425Sdougb% 446174425SdougbYou can use the 'fetch' command to retrieve files over ftp or http. 447174425Sdougb 448174425Sdougb fetch http://www.FreeBSD.org/index.html 449174425Sdougb 450174425Sdougbwill download the front page of the FreeBSD web site. 451174425Sdougb% 452174425SdougbYou can use "whereis" to search standard binary, manual page and source 453174425Sdougbdirectories for the specified programs. This can be particularly handy 454174425Sdougbwhen you are trying to find where in the ports tree an application is. 455174425Sdougb 456211094SfjoeTry "whereis firefox" and "whereis whereis". 457174425Sdougb -- Konstantinos Konstantinidis <kkonstan@duth.gr> 458174425Sdougb% 459235209SeadlerWant to run the same command again? 460235209SeadlerIn tcsh you can type "!!" 461235209Seadler% 462235209SeadlerWant to go the directory you were just in? 463235227SeadlerType "cd -" 464235209Seadler% 465