└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # freebsd-commands 2 | 3 | sbz's FreeBSD commands cheat-sheet 4 | 5 | ## Mount commands 6 | 7 | - Mount MS-DOS file system (USB-stick, external FAT32 drive) 8 | 9 | ``` 10 | sudo mount_msdosfs [-o large] /dev/ad0s1 /mnt 11 | ``` 12 | 13 | - Mount ISO 9660 using memory disk 14 | 15 | ``` 16 | sudo mount -t cd9660 /dev/`mdconfig -f ` /mnt 17 | ``` 18 | 19 | - Mount Linux procfs 20 | 21 | ``` 22 | sudo mkdir -p /proc 23 | sudo mount -t procfs proc /proc 24 | ``` 25 | 26 | - Mount Linux linprocfs 27 | 28 | ``` 29 | sudo mkdir -p /compat/linux/proc 30 | sudo mount -t linprocfs linproc /compat/linux/proc 31 | ``` 32 | 33 | - Mount file descriptor fs 34 | 35 | ``` 36 | sudo mount -t fdescfs fdesc /dev/fd 37 | ``` 38 | 39 | ## Update commands 40 | 41 | - Perform FreeBSD binary upgrade 42 | 43 | ```` 44 | sudo freebsd-update fetch 45 | sudo freebsd-update upgrade -r 46 | sudo freebsd-update install 47 | ```` 48 | 49 | ## Pkg commands 50 | 51 | - Update packages databases from repository 52 | 53 | ``` 54 | sudo pkg update 55 | sudo pkg [-d] update 56 | ``` 57 | 58 | - Upgrade packages to new version 59 | 60 | ``` 61 | sudo pkg upgrade [-f] 62 | ``` 63 | 64 | - Update vuln.xml database 65 | 66 | ``` 67 | sudo pkg audit -F 68 | ``` 69 | 70 | - Is installed? 71 | 72 | ``` 73 | pkg info|grep 74 | ``` 75 | 76 | - Display package information 77 | 78 | ``` 79 | pkg info 80 | pkg show 81 | ``` 82 | 83 | - Lock package to current version and Display locked packages 84 | 85 | ``` 86 | pkg lock 87 | pkg lock -l 88 | ``` 89 | 90 | - Clean local cache 91 | 92 | ``` 93 | sudo pkg clean -y 94 | ``` 95 | 96 | - Display packages stats 97 | 98 | ``` 99 | pkg stats 100 | ``` 101 | 102 | - Find the package installing the file: 103 | 104 | ``` 105 | pkg which /usr/local/bin/vim 106 | ``` 107 | 108 | - Find the file if package is not installed: 109 | 110 | ``` 111 | sudo pkg install pkg-provides 112 | sudo pkg provides -uf 113 | pkg provides /path/to/file 114 | ``` 115 | 116 | ## Network commands 117 | 118 | - TCP open sockets (LISTEN, ESTABLISHED, CLOSE\_WAIT) 119 | 120 | ``` 121 | sudo netstat -p tcp -an 122 | sudo sockstat -P tcp -a 123 | ``` 124 | 125 | Also refer to dtrace tcp script into /usr/share/dtrace 126 | 127 | ``` 128 | cd /usr/share/dtrace 129 | sudo tcpconn 130 | sudo tcpdebug 131 | sudo tcpstate 132 | sudo tcptrack 133 | ``` 134 | 135 | ## Kernel modules commands 136 | 137 | - List loaded kernel modules 138 | 139 | ``` 140 | sudo kldstat [-v] 141 | ``` 142 | 143 | - Load Kernel module (HW thermal sensors) 144 | 145 | ``` 146 | sudo kldload 147 | sudo kldload coretemp 148 | ``` 149 | 150 | - Generate hints for the boot loader 151 | 152 | ``` 153 | sudo kldxref [v] /boot/kernel /boot/modules 154 | sudo kldxref -R /boot 155 | ``` 156 | 157 | - Dump running kernel config 158 | 159 | ``` 160 | sysctl -n kern.conftxt 161 | config -x /boot/kernel/kernel 162 | ``` 163 | 164 | ## Ports commands 165 | 166 | - Update and extract snapshot 167 | 168 | ``` 169 | sudo mkdir -p /usr/ports 170 | sudo portsnap fetch extract 171 | ``` 172 | 173 | - Looking for a port in the tree 174 | 175 | ``` 176 | cd /usr/ports/*/*/ 177 | make -C /usr/ports search name= 178 | make -C /usr/ports search name= display=name,path 179 | 180 | sudo pkg install psearch 181 | psearch 182 | ``` 183 | 184 | - Display port compiler flags 185 | 186 | ``` 187 | make -C /usr/ports/editors/vim -V CFLAGS 188 | ``` 189 | 190 | - Display port variables 191 | 192 | ``` 193 | make -C /usr/ports/editors/vim -V MAINTAINER -V PORTVERSION 194 | make -C /usr/ports/editors/vim -V WRKSRC -V WRKDIR 195 | ``` 196 | 197 | - Fetch distfile(s) 198 | 199 | ``` 200 | cd /usr/ports/editors/vim && make fetch extract 201 | cd work 202 | ``` 203 | 204 | - Regenerate distfile(s) info hash 205 | 206 | ``` 207 | make -C /usr/ports/editors/vim makesum 208 | ``` 209 | 210 | - Alter KNOB/Options config 211 | 212 | ``` 213 | make -C /usr/ports/editors/vim showconfig 214 | make -C /usr/ports/editors/vim config 215 | make -C /usr/ports/editors/vim rmconfig 216 | 217 | make check-license check-categories check-deprecated check-vulnerable security-check check-sanity check-plist check-orphans check-config 218 | ``` 219 | 220 | - List ports Makefile targets 221 | 222 | ``` 223 | grep -E '^[^${\.#]+:$' /usr/ports/Mk/bsd.port.mk |cut -d ':' -f1 | sort -u 224 | make -C /usr/ports -V .ALLTARGETS 225 | ``` 226 | 227 | - List dependencies to rebuild 228 | 229 | ``` 230 | make all-depends-list 231 | make build-depends-list 232 | make run-depends-list 233 | ``` 234 | 235 | - Rebuild ports w/o building their dependencies 236 | 237 | ``` 238 | make missing-packages # list missing packages 239 | make install-missing-packages 240 | make install clean 241 | ``` 242 | 243 | 244 | ## Src commands 245 | 246 | - Extract /usr/src Makefile targets with descriptions (list all available targets) 247 | 248 | ``` 249 | grep '^# [a-z].*- [A-Z].*' /usr/src/Makefile | sed 's,^# ,,' | sort 250 | make -C /usr/src -V .ALLTARGETS 251 | ``` 252 | 253 | - Enter into userland binary utility (e.g ls) sources code folder 254 | 255 | ``` 256 | cd `whereis -sq ls` 257 | ``` 258 | 259 | ## Poudriere commands 260 | 261 | - Create jail 262 | 263 | ``` 264 | sudo poudriere jail -c -j -v 13.3-RELEASE -a -M ftp -p 265 | sudo poudriere jail -c -j 13amd64 -v 13.3-RELEASE -a amd64 -M ftp -p portsdir 266 | ``` 267 | 268 | - Delete jail 269 | 270 | ``` 271 | sudo poudriere jail -d -j -C all 272 | sudo poudriere jail -d -j 13amd64 -C all 273 | ``` 274 | 275 | - List jail(s) 276 | 277 | ``` 278 | sudo poudriere jail -l 279 | sudo poudriere jail -l [-n] [-q] 280 | ``` 281 | 282 | - Upgrade jail 283 | 284 | ``` 285 | sudo poudriere jail -u -j 286 | sudo poudriere jail -u -j -t 13.3 287 | ``` 288 | 289 | - Create ports 290 | 291 | ``` 292 | sudo poudriere ports -c -m null -M ${PWD}/git/ports -p portsdir -v 293 | sudo poudriere ports -l 294 | ``` 295 | 296 | - List ports tree 297 | 298 | ``` 299 | sudo poudriere ports -l 300 | sudo poudriere ports -l [-n] [-q] 301 | ``` 302 | 303 | - Test port build 304 | 305 | ``` 306 | sudo poudriere testport -j -o / -p portsdir -n # dry run 307 | sudo poudriere testport -j -o editors/vim -p portsdir -v # verbose 308 | ``` 309 | 310 | ## Developer commands 311 | 312 | - Get sources 313 | 314 | _(via subversion: deprecated)_ 315 | ``` 316 | svn checkout [-q] https://svn.freebsd.org/base/head ~/svn/src 317 | svn checkout [-q] svn://svn.freebsd.org/base/head ~/svn/src 318 | svn checkout [-q] svn+ssh://svn.freebsd.org/base/head ~/svn/src 319 | ``` 320 | 321 | *(via git)* 322 | ``` 323 | git clone --depth 1 https://github.com/freebsd/freebsd.git /usr/src 324 | git clone --depth 1 https://git.freebsd.org/src.git /usr/src 325 | ``` 326 | 327 | For specific branch, e.g. 13.x release: 328 | 329 | ``` 330 | git checkout -b releng-13.3 freebsd/releng/13.3 331 | git switch -c releng-13.3 freebsd/releng/13.3 332 | ``` 333 | 334 | - Get ports 335 | 336 | _(via subversion: deprecated)_ 337 | ``` 338 | svn checkout [-q] https://svn.freebsd.org/ports/head ~/svn/ports 339 | svn checkout [-q] svn://svn.freebsd.org/ports/head ~/svn/ports 340 | svn checkout [-q] svn+ssh://svn.freebsd.org/ports/head ~/svn/ports 341 | ``` 342 | 343 | *(via git)* 344 | ``` 345 | git clone --depth 1 https://github.com/freebsd/freebsd-ports.git /usr/ports 346 | git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports 347 | ``` 348 | 349 | ## Wireless commands 350 | 351 | - Restart wireless network 352 | 353 | ``` 354 | sudo service wpa_supplicant restart wlan0 355 | ``` 356 | 357 | - List Wireless devices 358 | 359 | ``` 360 | sysctl net.wlan.devices 361 | ``` 362 | 363 | - List Wireless SSID Access point (w/ wlan0 device) 364 | 365 | ``` 366 | sudo ifconfig [-v] wlan0 list scan 367 | ``` 368 | 369 | - Debug wireless stack (e.g. case for iwn(4) driver) 370 | 371 | ``` 372 | sudo sysctl debug.iwi=1 373 | sudo sysctl hw.wi.debug=1 374 | sudo sysctl net.wlan.debug=1 375 | ``` 376 | 377 | ## Bluetooth commands 378 | 379 | - Scan Bluetooth peripherals 380 | 381 | ``` 382 | sudo bluetooth-config scan 383 | ``` 384 | 385 | - Enable Bluetooth association 386 | 387 | ``` 388 | sudo service hcsecd start 389 | ``` 390 | 391 | - List Bluetooth connections 392 | 393 | ``` 394 | sudo btsockstat -n 395 | ``` 396 | 397 | ## Build commands 398 | 399 | - World and Kernel build 400 | 401 | ``` 402 | cd /usr/src 403 | sudo nice -n -20 make -j`sysctl -n hw.ncpu` -DNO_CLEAN -DKERNFAST buildworld buildkernel | tee -a build.log 404 | ``` 405 | 406 | - Install Kernel (debug) 407 | 408 | ``` 409 | cd /usr/src 410 | sudo make installworld installkernel 411 | sudo make installkernel.debug 412 | ``` 413 | 414 | - Update etc configs 415 | 416 | ``` 417 | sudo etcupdate 418 | sudo mergemaster -ui 419 | ``` 420 | 421 | ## Hardware commands 422 | 423 | - PCI devices 424 | 425 | ``` 426 | sudo pciconf -vl 427 | 428 | sudo pkg install pciutils 429 | sudo lspci [-v] 430 | ``` 431 | 432 | - USB devices 433 | 434 | ``` 435 | sudo usbconfig list 436 | sudo usbconfig dump_all_desc 437 | 438 | sudo pkg install usbutils 439 | sudo lsusb [-v] 440 | ``` 441 | 442 | - CPU Info 443 | 444 | ``` 445 | sudo dmesg 446 | sudo dmesg | sed -n '/^CPU:/,/^real/p' 447 | sudo sysctl hw.model hw.ncpu 448 | sudo sysctl kern.smp.cpus 449 | ``` 450 | 451 | ## Memory commands 452 | 453 | - Virtual memory statistics 454 | 455 | ``` 456 | vmstat -c 1 457 | sysctl hw.realmem hw.physmem 458 | top -bt 0 459 | ``` 460 | 461 | - Memory total, wired, active, cache 462 | 463 | ``` 464 | sysctl vm.stats|grep count 465 | ``` 466 | 467 | - Process memory mappings 468 | 469 | ``` 470 | procstat vm or procstat -v 471 | cat /proc//map 472 | cat /compat/linux/proc//maps 473 | ``` 474 | 475 | ## Sounds commands 476 | 477 | - Sounds devices 478 | 479 | ``` 480 | sudo cat /dev/sndstat 481 | sudo sysctl dev.pcm 482 | ``` 483 | 484 | - Disable beep 485 | 486 | ``` 487 | sudo sysctl hw.syscons.bell=0 488 | sudo sysctl kern.vt.enable_bell=0 489 | ``` 490 | 491 | - Volume mixer 492 | 493 | ``` 494 | mixer vol 100 495 | ``` 496 | 497 | ## IO commands 498 | 499 | - Device read/write IO stats 500 | 501 | ``` 502 | iostat [-x] 503 | iostat -x -w 1 # watch mode 504 | ``` 505 | 506 | ## ZFS Commands 507 | 508 | - ZFS Take snapshot (of zroot) 509 | 510 | ``` 511 | sudo zfs snapshot -r zroot@ 512 | ``` 513 | 514 | - ZFS List snapshot 515 | 516 | ``` 517 | zfs list -t snapshot 518 | ls -1 /.zfs/snapshot/ 519 | ``` 520 | 521 | - ZFS Pools import 522 | 523 | ``` 524 | sudo zpool import -R /mnt zroot 525 | sudo zpool import -R /mnt -e readonly=on zroot # readonly 526 | ``` 527 | 528 | - ZFS Datasets list and mount 529 | 530 | ``` 531 | zfs list 532 | sudo mount -t vfs zroot/usr/home /tmp/home 533 | ``` 534 | 535 | - ZFS Protect snapshot from deletion 536 | 537 | ``` 538 | sudo zfs hold keep -r zroot@ 539 | zfs holds zroot@ 540 | ``` 541 | 542 | - ZFS Restore snapshot 543 | 544 | ``` 545 | sudo zfs rollback zroot@ 546 | ``` 547 | 548 | - ZFS Destroy snapshot 549 | 550 | ``` 551 | sudo zfs destroy -r zroot@ 552 | ``` 553 | --------------------------------------------------------------------------------