neulab/tldr huggingface dataset:
• Disabled automatic updates by default for platforms, packages and libraries (issue #171)
• Fixed bug with creating copies of source files (issue #177)
PlatformIO Core 1 1.5.0 (2015-05-15) • Added support of Framework mbed for Teensy 3.1 (issue #183)
• Added GDB as alternative uploader to ststm32 platform (issue #175)
• Added examples with preconfigured IDE projects (issue #154)
• Fixed firmware uploading under Linux OS for Arduino Leonardo board (‐ issue #178)
• Fixed invalid "mbed" firmware for Nucleo F411RE (issue #185)
• Fixed parsing of includes for PlatformIO Library Dependency Finder (‐ issue #189)
• Fixed handling symbolic links within source code directory (issue #190)
• Fixed cancelling any previous definition of name, either built in or provided with a -D option (issue #191)
1.4.0 (2015-04-11) • Added espressif development platform with ESP01 board
• Integrated PlatformIO with AppVeyor Windows based Continuous Integration system (issue #149)
• Added support for Teensy LC board to teensy platform
• Added support for new Arduino based boards by SparkFun, BQ, LightUp, LowPowerLab, Quirkbot, RedBearLab, TinyCircuits to atmelavr platform
• Upgraded Arduino Framework to 1.6.3 version (issue #156)
• Upgraded Energia Framework to 0101E0015 version (issue #146)
• Upgraded Arduino Framework with Teensy Core to 1.22 version (issue #162, issue #170)
• Fixed exceptions with PlatformIO auto-updates when Internet connection isn't active
1.3.0 (2015-03-27) • Moved PlatformIO source code and repositories from Ivan Kravets account to PlatformIO Organisation (issue #138)
• Added support for new Arduino based boards by SparkFun, RepRap, Sanguino to atmelavr platform (issue #127, issue #131)
• Added integration instructions for Visual Studio and Sublime Text IDEs
• Improved handling of multi-file *.ino/pde sketches (issue #130)
• Fixed wrong insertion of function prototypes converting *.ino/pde (‐ issue #137, issue #140)
1.2.0 (2015-03-20) • Added full support of mbed framework including libraries: RTOS, Ethernet, DSP, FAT, USB.
• Added freescalekinetis development platform with Freescale Kinetis Freedom boards
• Added nordicnrf51 development platform with supported boards from JKSoft, Nordic, RedBearLab, Switch Science
• Added nxplpc development platform with supported boards from CQ Publishing, Embedded Artists, NGX Technologies, NXP, Outrageous Circuits, SeeedStudio, Solder Splash Labs, Switch Science, u-blox
• Added support for ST Nucleo boards to ststm32 development platform
• Created new Frameworks page in documentation and added to PlatformIO Web Site (issue #115)
• Introduced online Embedded Boards Explorer
• Automatically append define -DPLATFORMIO=%version% to builder (issue #105)
• Renamed stm32 development platform to ststm32
• Renamed opencm3 framework to libopencm3
• Fixed uploading for atmelsam development platform
• Fixed re-arranging the *.ino/pde files when converting to *.cpp (issue #100)
1.1.0 (2015-03-05) • Implemented PLATFORMIO_* environment variables (issue #102)
• Added support for SainSmart boards to atmelsam development platform
• Added Project Configuration option named envs_dir
• Disabled "prompts" automatically for Continuous Integration systems (‐ issue #103)
• Fixed firmware uploading for atmelavr boards which work within usbtiny protocol
• Fixed uploading for Digispark board (issue #106)
1.0.1 (2015-02-27) PlatformIO 1.0 - recommended for production
• Changed development status from beta to Production/Stable
• Added support for ARM-based credit-card sized computers: Raspberry Pi, BeagleBone and CubieBoard
• Added atmelsam development platform with supported boards: Arduino Due and Digistump DigiX (issue #71)
• Added ststm32 development platform with supported boards: Discovery kit for STM32L151/152, STM32F303xx, STM32F407/417 lines and libOpenCM3 Framework (issue #73)
• Added teensy development platform with supported boards: Teensy 2.x & 3.x (issue #72)
• Added new Arduino boards to atmelavr platform: Arduino NG, Arduino BT, Arduino Esplora, Arduino Ethernet, Arduino Robot Control, Arduino Robot Motor and Arduino Yun
• Added support for Adafruit boards to atmelavr platform: Adafruit Flora and Adafruit Trinkets (issue #65)
• Added support for Digispark boards to atmelavr platform: Digispark USB Development Board and Digispark Pro (issue #47)
• Covered code with tests (issue #2)
• Refactored Library Dependency Finder (issues #48, #50, #55)
• Added src_dir option to [platformio] section of platformio.ini which allows to redefine location to project's source directory (issue #83)
• Added --json-output option to platformio boards and platformio search commands which allows to return the output in JSON format (issue #42)
• Allowed to ignore some libs from Library Dependency Finder via lib_ignore option
• Improved platformio run command: asynchronous output for build process, timing and detailed information about environment configuration (issue #74)
• Output compiled size and static memory usage with platformio run command (issue #59)
• Updated framework-arduino AVR & SAM to 1.6 stable version
• Fixed an issue with the libraries that are git repositories (issue #49)
• Fixed handling of assembly files (issue #58)
• Fixed compiling error if space is in user's folder (issue #56)
• Fixed AttributeError: 'module' object has no attribute 'disable_warnings' when a version of requests package is less then 2.4.0
• Fixed bug with invalid process's "return code" when PlatformIO has internal error (issue #81)
• Several bug fixes, increased stability and performance improvements
PlatformIO Core Preview 0.10.2 (2015-01-06) • Fixed an issue with --json-output (issue #42)
• Fixed an exception during platformio upgrade under Windows OS (issue #45)
0.10.1 (2015-01-02) • Added --json-output option to platformio list, platformio serialports list and platformio lib list commands which allows to return the output in JSON format (issue #42)
• Fixed missing auto-uploading by default after platformio init command
0.10.0 (2015-01-01) Happy New Year!
• Implemented platformio boards command (issue #11)
• Added support of Engduino boards for atmelavr platform (issue #38)
• Added --board option to platformio init command which allows to initialise project with the specified embedded boards (issue #21)
• Added example with uploading firmware via USB programmer (USBasp) for atmelavr MCUs (issue #35)
• Automatic detection of port on platformio serialports monitor (issue #37)
• Allowed auto-installation of platforms when prompts are disabled (issue #43)
• Fixed urllib3's SSL warning under Python <= 2.7.2 (issue #39)
• Fixed bug with Arduino USB boards (issue #40)
0.9.2 (2014-12-10) • Replaced "dark blue" by "cyan" colour for the texts (issue #33)
• Added new setting enable_prompts and allowed to disable all PlatformIO prompts (useful for cloud compilers) (issue #34)
• Fixed compilation bug on Windows with installed MSVC (issue #18)
0.9.1 (2014-12-05) • Ask user to install platform (when it hasn't been installed yet) within platformio run and platformio show commands
• Improved main documentation
• Fixed "OSError: [Errno 2] No such file or directory" within platformio run command when PlatformIO isn't installed properly
• Fixed example for Eclipse IDE with Tiva board (issue #32)
• Upgraded Eclipse Project Examples to latest Luna and PlatformIO releases
0.9.0 (2014-12-01) • Implemented platformio settings command
• Improved platformio init command.  Added new option --project-dir where you can specify another path to directory where new project will be initialized (issue #31)
• Added Migration Manager which simplifies process with upgrading to a major release
• Added Telemetry Service which should help us make PlatformIO better
• Implemented PlatformIO AppState Manager which allow to have multiple .platformio states.
• Refactored Package Manager
• Download Manager: fixed SHA1 verification within Cygwin Environment (‐ issue #26)
• Fixed bug with code builder and built-in Arduino libraries (issue #28)
0.8.0 (2014-10-19) • Avoided trademark issues in library.json with the new fields: frameworks, platforms and dependencies (issue #17)
• Switched logic from "Library Name" to "Library Registry ID" for all platformio lib commands (install, uninstall, update and etc.)
• Renamed author field to authors and allowed to setup multiple authors per library in library.json
• Added option to specify "maintainer" status in authors field
• New filters/options for platformio lib search command: --framework and --platform
0.7.1 (2014-10-06) • Fixed bug with order for includes in conversation from INO/PDE to CPP
• Automatic detection of port on upload (issue #15)
• Fixed lib update crashing when no libs are installed (issue #19)
0.7.0 (2014-09-24) • Implemented new [platformio] section for Configuration File with home_dir option (issue #14)
• Implemented Library Manager (issue #6)
0.6.0 (2014-08-09) • Implemented platformio serialports monitor (issue #10)
• Fixed an issue ImportError: No module named platformio.util (issue #9)
• Fixed bug with auto-conversation from Arduino *.ino to *.cpp
0.5.0 (2014-08-04) • Improved nested lookups for libraries
• Disabled default warning flag "-Wall"
• Added auto-conversation from *.ino to valid *.cpp for Arduino/Energia frameworks (issue #7)
• Added Arduino example with external library (Adafruit CC3000)
• Implemented platformio upgrade command and "auto-check" for the latest version (issue #8)
• Fixed an issue with "auto-reset" for Raspduino board
• Fixed a bug with nested libs building
0.4.0 (2014-07-31) • Implemented platformio serialports command
• Allowed to put special build flags only for src files via src_build_flags environment option
• Allowed to override some of settings via system environment variables such as: PLATFORMIO_SRC_BUILD_FLAGS and PLATFORMIO_ENVS_DIR
• Added --upload-port option for platformio run command
• Implemented (especially for SmartAnthill) platformio run -t uploadlazy target (no dependencies to framework libs, ELF and etc.)
• Allowed to skip default packages via platformio install --skip-default-package option
• Added tools for Raspberry Pi platform
• Added support for Microduino and Raspduino boards in atmelavr platform
0.3.1 (2014-06-21) • Fixed auto-installer for Windows OS (bug with %PATH% custom installation)
0.3.0 (2014-06-21) • Allowed to pass multiple "SomePlatform" to install/uninstall commands
• Added "IDE Integration" section to README with Eclipse project examples
• Created auto installer script for PlatformIO (issue #3)
• Added "Super-Quick" way to Installation section (README)
• Implemented "build_flags" option for environments (issue #4)
0.2.0 (2014-06-15) • Resolved issue #1 "Build referred libraries"
• Renamed project's "libs" directory to "lib"
• Added arduino-internal-library example
• Changed to beta status
0.1.0 (2014-06-13) • Birth! First alpha release
Migrating from 3.x to 4.0 Guidance on how to upgrade from piocore v3.x to v4.x with emphasis on major changes, what is new, and what has been removed.
Please read PlatformIO 4.0 Release Notes before.
Contents • Compatibility
• What is new
• Global scope [env]
• External Configuration Files
• New Options
• Package Dependencies
• Custom Platform Packages
• Custom Upload Command
• Shared Cache Directory
• What is changed or removed
• Command Line Interface
Compatibility PlatformIO Core 4.0 is fully backward compatible with v3.x. The only major change is a new location for project build artifacts and library dependencies.  The previous .pioenvs (projectconf_pio_build_dir) and .piolibdeps (projectconf_pio_libdeps_dir) folders were moved to a new projectconf_pio_workspace_dir.
NOTE: If you manually added library dependencies to old .piolibdeps folder, please declare them in projectconf_lib_deps. We do not recommend modifying any files or folders in projectconf_pio_workspace_dir.  This is an internal location for PlatformIO Core artifacts and temporary files.  PlatformIO Core 4.0 may delete/cleanup this folder in a service purpose any time.
Infrastructure Finally, Python 3 interpreter is officially supported! The minimum requirements are Python 2.7 or Python 3.5+.
We also added full support for operating system locales other than UTF-8. So, your project path can contain non-ASCII/non-Latin chars now.
If you are platforms maintainer or you need to show a progress bar (upload progress, connecting status...), PlatformIO Core 4.0 has re-factored target runner where line-buffering was totally removed. Just print any progress information in real time and PlatformIO Core will display it instantly on user the side. For example, a writing progress from platform_atmelavr "avrdude" programmer:
... Looking for upload port... Auto-detected: /dev/cu.usbmodemFA141 Uploading build/uno/firmware.hex
avrdude: Device signature = 0x1e950f (probably m328p) avrdude: reading input file "build/uno/firmware.hex" avrdude: writing flash (930 bytes):
Writing | ##########################
What is new In this section, we are going to highlight the most important changes and features introduced in piocore 4.0. Please visit PlatformIO 4.0 Release Notes for more detailed information.
projectconf A project configuration parser was rewritten from scratch. It has strict options typing (API) and helps to avoid issues when option values are invalid (for example, invalid ldf_mode or non-existing projectconf_debug_svd_path).
Global scope [env] One of the most requested features was a "global" or "common" project environment (projectconf_section_env) where developers can share common configuration between all declared build environments [env:NAME].
The previous solution in PlatformIO Core 3.0 was using projectconf_dynamic_vars.  As practice has shown, this approach was not good and more advanced projectconf looked so complicated and hard for managing (for example, open source projects MarlinFirmware, Espurna).
PlatformIO Core 4.0 introduces a new global scope named [env] which allows declaring global options that will be shared between all [env:NAME] sections in projectconf. For example,
In this example we have 2 build environments release and debug. This is the same if you duplicate all options (PlatformIO Core 3.0 compatible):
External Configuration Files To simplify the project configuration process, PlatformIO Core 4.0 adds support for external projectconf. Yes! You can finally extend one configuration file with another or with a list of them. The cool feature is a support for Unix shell-style wildcards. So, you can dynamically generate projectconf files or load bunch of them from a folder.  See projectconf_pio_extra_configs option for details and a simple example below:
[common] debug_flags = -D RELEASE lib_flags = -lc -lm
New Options We have added new options and changed some existing ones. Here are the new or updated options.
Library Management Library management brings a few new changes which resolve historical issues presented in PlatformIO 3.0:
1. .piolibdeps folder was moved to projectconf_pio_libdeps_dir of project workspace.
If you manually added library dependencies to old .piolibdeps folder, please declare them in projectconf_lib_deps. We do not recommend modifying any files or folders in projectconf_pio_workspace_dir.  This is an internal location for PlatformIO Core artifacts and temporary files.  PlatformIO Core 4.0 may delete/cleanup this folder in a service purpose any time.
2. ldf now uses isolated library dependency storage per project build environment. It resolves conflicts when the libraries from different build environments declared via projectconf_lib_deps option were installed into the same .piolibdeps folder.
See Library Management section in release_notes_4 release notes for more details.
Build System PlatformIO Core 4.0 uses a new projectconf_pio_build_dir instead of .pioenvs for compiled objects, archived libraries, firmware binaries and, other artifacts. A new projectconf_build_type option allows you to control a build process between "Release" and "Debug" modes (see build_configurations).
See Build System section in release_notes_4 release notes for more details.
Package Dependencies PlatformIO has decentralized architecture and allows platform maintainers to create platform_creating for PlatformIO ecosystem. Each development platform depends on a list of packages (toolchains, SDKs, debugging servers, etc). PlatformIO Package Manager installs these packages automatically and PlatformIO Build System uses them later.
Starting from PlatformIO Core 4.0, developers can see which versions of a development platform or its dependent packages will be used. This is a great addition to track changes (frameworks, SDKs) between platforms updates.  See an example with "staging" (Git) version of platform_espressif8266 development platform:
Processing nodemcuv2 (platform: https://github.com/platformio/platform-espressif8266.git#feature/stage; board: nodemcuv2; framework: arduino) ------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html PLATFORM: Espressif 8266 (Stage) 2.3.0-alpha.1 #990141d > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash PACKAGES: toolchain-xtensa 2.40802.190218 (4.8.2), tool-esptool 1.413.0 (4.13), tool-esptoolpy 1.20600.0 (2.6.0), framework-arduinoespressif8266 78a1a66 LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain+, Compatibility ~ soft Found 35 compatible libraries Scanning dependencies...
Custom Platform Packages Sometimes you need to override default platforms packages or add an extra. PlatformIO Core 4.0 introduces a new configuration option projectconf_env_platform_packages per a build environment.  Also, using this option you can install external packages and use them later as programmers or upload tools. See a few examples:
Custom Upload Command PlatformIO's platforms have pre-configured settings to program boards or devices. They depend on a type of bootloader or programming interface. PlatformIO Core 4.0 allows you to override default upload command using projectconf_upload_command option in projectconf:
[env:custom_upload_cmd] platform = ... framework = ... board = ... upload_command = /my/flasher arg1 arg2 --flag1 $SOURCE
See real examples for projectconf_upload_command.
Shared Cache Directory PlatformIO Core 4.0 allows you to configure a shared folder for the derived files (objects, firmwares, ELFs) from a build system using projectconf_pio_build_cache_dir. You can use it in multi-environments project configuration to avoid multiple compilations of the same source code files.
The example of projectconf below instructs PlatformIO Build System to check projectconf_pio_build_cache_dir for already compiled objects for framework_stm32cube and project source files. The cached object will not be used if the original source file was modified or build environment has a different configuration (new build flags, etc):
[platformio] ; set a path to a cache folder build_cache_dir = /tmp/platformio-shared-cache
You can also use the same projectconf_pio_build_cache_dir between different projects if they use the same platforms and frameworks.
What is changed or removed Command Line Interface The following commands have been changed in v4.0.
┌────────────────────┬─────────────────────────────┐ │Command             │ Description                 │ ├────────────────────┼─────────────────────────────┤ │cmd_run             │ Added platformio run --jobs │ │                    │ option                      │ ├────────────────────┼─────────────────────────────┤ │cmd_update          │ Replaced -c, --only-check   │ │                    │ with platformio update      │ │                    │ --dry-run                   │ ├────────────────────┼─────────────────────────────┤ │cmd_lib_update      │ Replaced -c, --only-check   │ │                    │ with platformio lib update  │ │                    │ --dry-run                   │ ├────────────────────┼─────────────────────────────┤ │cmd_platform_update │ Replaced -c, --only-check   │ │                    │ with platformio platform    │ │                    │ update --dry-run            │ ├────────────────────┼─────────────────────────────┤ │cmd_remote_update   │ Replaced -c, --only-check   │ │                    │ with platformio remote      │ │                    │ update --dry-run            │ └────────────────────┴─────────────────────────────┘
projectconf The following options have been changed in v4.0.
┌───────────┬────────────────┬──────────────────────────────┐ │Section    │ Option         │ Description                  │ ├───────────┼────────────────┼──────────────────────────────┤ │platformio │ env_default    │ Renamed to                   │ │           │                │ projectconf_pio_default_envs │ ├───────────┼────────────────┼──────────────────────────────┤ │platformio │ home_dir       │ Renamed to                   │ │           │                │ projectconf_pio_core_dir     │ ├───────────┼────────────────┼──────────────────────────────┤ │env        │ debug_load_cmd │ Renamed to                   │ │           │                │ projectconf_debug_load_cmds  │ │           │                │ and allowed to pass more     │ │           │                │ than one load command        │ └───────────┴────────────────┴──────────────────────────────┘
PlatformIO
2014-present, PlatformIO
SSH-KEYSCAN(1)             BSD General Commands Manual            SSH-KEYSCAN(1)
ssh-keyscan — gather SSH public keys from servers
ssh-keyscan [-46cDHv] [-f file] [-p port] [-T timeout] [-t type] [host | addrlist namelist]
ssh-keyscan is a utility for gathering the public SSH host keys of a number of hosts.  It was designed to aid in building and verifying ssh_known_hosts files, the format of which is documented in sshd(8).  ssh-keyscan provides a minimal interface suitable for use by shell and perl scripts.
ssh-keyscan uses non-blocking socket I/O to contact as many hosts as possible in parallel, so it is very efficient.  The keys from a domain of 1,000 hosts can be collected in tens of seconds, even when some of those hosts are down or do not run sshd(8).  For scanning, one does not need login access to the machines that are being scanned, nor does the scanning process involve any encryption.
-4      Force ssh-keyscan to use IPv4 addresses only.
-6      Force ssh-keyscan to use IPv6 addresses only.
-c      Request certificates from target hosts instead of plain keys.
-D      Print keys found as SSHFP DNS records.  The default is to print keys in a format usable as a ssh(1) known_hosts file.
-f file Read hosts or “addrlist namelist” pairs from file, one per line. If ‘-’ is supplied instead of a filename, ssh-keyscan will read from the standard input.  Input is expected in the format:
1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4
-H      Hash all hostnames and addresses in the output.  Hashed names may be used normally by ssh(1) and sshd(8), but they do not reveal identifying information should the file's contents be disclosed.
-p port Connect to port on the remote host.
-T timeout Set the timeout for connection attempts.  If timeout seconds have elapsed since a connection was initiated to a host or since the last time anything was read from that host, the connection is closed and the host in question considered unavailable.  The default is 5 seconds.
-t type Specify the type of the key to fetch from the scanned hosts.  The possible values are “dsa”, “ecdsa”, “ed25519”, or “rsa”.  Multiple values may be specified by separating them with commas.  The default is to fetch “rsa”, “ecdsa”, and “ed25519” keys.
-v      Verbose mode: print debugging messages about progress.
If an ssh_known_hosts file is constructed using ssh-keyscan without verifying the keys, users will be vulnerable to man in the middle attacks. On the other hand, if the security model allows such a risk, ssh-keyscan can help in the detection of tampered keyfiles or man in the middle attacks which have begun after the ssh_known_hosts file was created.
/etc/ssh/ssh_known_hosts
Print the RSA host key for machine hostname:
$ ssh-keyscan -t rsa hostname
Find all hosts from the file ssh_hosts which have new or different keys from those in the sorted file ssh_known_hosts:
$ ssh-keyscan -t rsa,dsa,ecdsa,ed25519 -f ssh_hosts | \ sort -u - ssh_known_hosts | diff ssh_known_hosts -
ssh(1), sshd(8)
Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255, 2006.
David Mazieres <dm@lcs.mit.edu> wrote the initial version, and Wayne Davison <wayned@users.sourceforge.net> added support for protocol version 2.
srm(1)                                                                    srm(1)
srm - securely remove files or directories
srm [OPTION]... FILE...
srm removes each specified file by overwriting, renaming, and truncating it before unlinking.  This prevents other people from undeleting or recovering any information about the file from the command line.  By default srm uses the simple mode to overwrite the file's contents.  You can choose a different overwrite mode with --dod, --doe, --openbsd, --rcmp, --gutmann.  If you specify more than one mode option, the last option is used.
You can use srm to overwrite block devices.  The device node is not removed after overwriting.  This feature is available on Linux.  Files with multiple hard links will be unlinked but not overwritten.
srm, like every program that uses the getopt function to parse its arguments, lets you use the -- option to indicate that all following arguments are non-options.  To remove a file called `-f' in the current directory, you could type either rm -- -f or rm ./-f
-d, --directory ignored (for compatibility with rm(1))
-f, --force ignore nonexistent files, never prompt
-i, --interactive prompt before any removal
-r, -R, --recursive remove the contents of directories recursively
-x, --one-file-system when removing a hierarchy recursively, skip any directory that is on a file system different from that of the corresponding command line argument.  (Not supported on Windows)
-s, --simple Overwrite the file with a single pass of 0x00 bytes.  This is the default mode.
-P, --openbsd OpenBSD compatible rm.  Files are overwritten three times, first with the byte 0xFF, then 0x00, and then 0xFF again, before they are deleted.
-D, --dod US Dod compliant 7-pass overwrite.
-E, --doe US DoE compliant 3-pass overwrite.  Twice with a random pattern, finally with the bytes "DoE".  See http://cio.energy.gov/CS-11_Clearing_and_Media_Sanitization_Guidance.pdf for details.
-G, --gutmann Use the 35-pass Gutmann method.  See http://en.wikipedia.org/wiki/Gutmann_method for details.
-C, --rcmp Royal Canadian Mounted Police compliant 3-pass overwrite.  First pass writes 0x00 bytes.  Second pass writes 0xFF bytes.  Third pass writes "RCMP".  See https://www.cse- cst.gc.ca/en/node/270/html/10572 for details.
-v, --verbose explain what is being done.  Specify this option multiple times to increase verbosity.
-h, --help display this help and exit.
-V, --version output version information and exit.
SIGINFO, SIGUSR2 show current write position and filename handled.
srm can write to block devices on Linux.  You can use srm to securely delete an entire hard disk, however you should only do this for classic magnetic drives.  The modern solid state disks (SSD) have a faster and better way to erase all contents, Secure Erase.  For a Linux operating system see https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
srm can not remove write protected files owned by another user, regardless of the permissions on the directory containing the file.
Development and discussion of srm is carried out at https://sourceforge.net/projects/srm/ which is also accessible via http://srm.sourceforge.net/.  See http://en.wikipedia.org/wiki/Data_remanence for a general discussion about overwriting data.
rm(1)  http://www.gnu.org/software/coreutils/manual/coreutils.html#rm-invocation
shred(1) http://www.gnu.org/software/coreutils/manual/coreutils.html#shred-invocation
wipe(1) http://lambda-diode.com/software/wipe
secure-delete http://packages.debian.org/lenny/secure-delete
scrub(1) http://code.google.com/p/diskscrub/
XCLOCK(1)                    General Commands Manual                   XCLOCK(1)
xclock - analog / digital clock for X
xclock [ -help ] [ -analog ] [ -digital ] [ -brief ] [ -chime ] [ -hd color ] [ -hl color ] [ -update seconds ] [ -strftime format ] [ -padding number ] [ -norender ] [ -render ] [ -sharp ] [ -face pattern ]
The xclock program displays the time in analog or digital form.  The time is continuously updated at a frequency which may be specified by the user.
Xclock accepts all of the standard X Toolkit command line options along with the additional options listed below:
-help   This option indicates that a brief summary of the allowed options should be printed on the standard error.
-analog This option indicates that a conventional 12 hour clock face with tick marks and hands should be used.  This is the default.
-digital or -d This option indicates that a 24 hour digital clock should be used.
-brief  This option indicates that the digital clock should only display the hours and minutes fields.  The default is to show the full time and date information.
-utime or -d This option indicates that a digital clock should display seconds since the Epoch (in format '970012340 seconds since Epoch' instead of a standard 24-hour time.
-strftime format This option allows an strftime(3) format string to be specified for the digital clock's display.
-twelve This option indicates that a digital clock should display the time in twelve hour format.
-twentyfour This option indicates that a digital clock should display the time in twenty-four hour format.  This is the default when a digital clock is used.
-chime  This option indicates that the clock should chime once on the half hour and twice on the hour.
-hands color (or -hd color) This option specifies the color of the hands on an analog clock. The default is black.  This option is effectively ignored when Xrender is in use.
-highlight color (or -hl color) This option specifies the color of the edges of the hands on an analog clock, and is only useful on color displays.  The default is black.  This option is effectively ignored when Xrender is in use.
-update seconds This option specifies the frequency in seconds at which xclock should update its display.  If the clock is obscured and then exposed, it will be updated immediately.  A value of 30 seconds or less will enable a second hand on an analog clock.  The default is 60 seconds.
-padding number This option specifies the width in pixels of the padding between the window border and clock text or picture.  The default is 10 on a digital clock and 8 on an analog clock.
-render This option tells xclock to use the Xrender extension to draw an anti-aliased face. This is the default if xclock has been compiled with Xrender support.  Note that the color selection options and resources used when Xrender is in effect differ from the standard options.
-norender This option turns off the use of Xrender to draw the clock.
-sharp  This option tells xclock to use sharper edges when drawn using the Xrender extension.
-face pattern This option specifies the font to use in digital mode when the Xrender extension is used.
This program uses the Clock widget.  It understands all of the core resource names and classes as well as:
width (class Width) Specifies the width of the clock.  The default for analog clocks is 164 pixels; the default for digital clocks is whatever is needed to hold the clock when displayed in the chosen font.
height (class Height) Specifies the height of the clock.  The default for analog clocks is 164 pixels; the default for digital clocks is whatever is needed to hold the clock when displayed in the chosen font.
update (class Interval) Specifies the frequency in seconds at which the time should be redisplayed.
foreground (class Foreground) Specifies the color for the tick marks. The default depends on whether reverseVideo is specified.  If reverseVideo is specified the default is lwhite, otherwise the default is black.
hands (class Foreground) Specifies the color of the insides of the clock's hands. The default depends on whether reverseVideo is specified.  If reverseVideo is specified the default is lwhite, otherwise the default is black.  Note that this resource is not used when Xrender is in effect.
highlight (class Foreground) Specifies the color used to highlight the clock's hands. The default is depends on whether reverseVideo is specified.  If reverseVideo is specified the default is lwhite, otherwise the default is black.  Note that this resource is not used when Xrender is in effect.
analog (class Boolean) Specifies whether or not an analog clock should be used instead of a digital one.  The default is True.
twentyfour (class Boolean) Specifies whether or not a digital clock should display the time in twenty-four hour format.  The default is True.
chime (class Boolean) Specifies whether or not a bell should be rung on the hour and half hour.
padding (class Margin) Specifies the amount of internal padding in pixels to be used. The default is 8.
font (class Font) Specifies the font to be used for the digital clock.  Note that variable width fonts currently will not always display correctly. This font is only used when Xrender is not in effect.
render (class Boolean) Specifies whether or not the Xrender extension should be used for the display. The default is True if xclock has been compiled with Xrender support.
When Xrender is in effect, the following additional resources are understood:
face (class FaceName) Specify the pattern for the font to be used for the digital clock when Xrender is used.
sharp (class Boolean) Specifies if sharp edges should be used when rendering the clock. The default is False.
buffer (class Boolean) Specifies that the updates of the image are drawn to a pixmap before copied into the window instead drawing them into the window directly.
The defaults of the following color resources depend on whether reverseVideo is specified.  If reverseVideo is specified the default is lwhite, otherwise the default is black.
hourColor (class Foreground) The color of the hour hand.
minuteColor (class Foreground) The color of the minute hand.
secondColor (class Foreground) The color of the second hand.
majorColor (class Foreground) The color of the major scale ticks (i. e. each five minutes).
minorColor (class Foreground) The color of the minor scale ticks (between major ticks).
In order to specify resources, it is useful to know the hierarchy of the widgets which compose xclock.  In the notation below, indentation indicates hierarchical structure.  The widget class name is given first, followed by the widget instance name.
XClock  xclock Clock  clock
/etc/X11/app-defaults/XClock specifies required resources
X(7), xrdb(1), time(3C)
Xclock believes the system clock.
When in digital mode, the string should be centered automatically.
Tony Della Fera (MIT-Athena, DEC) Dave Mankins (MIT-Athena, BBN) Ed Moy (UC Berkeley)
AMIXER(1)                    General Commands Manual                   AMIXER(1)
amixer - command-line mixer for ALSA soundcard driver
amixer [-option] [cmd]
amixer allows command-line control of the mixer for the ALSA soundcard driver.  amixer supports multiple soundcards.
amixer with no arguments will display the current mixer settings for the default soundcard and device. This is a good way to see a list of the simple mixer controls you can use.
help   Shows syntax.
info   Shows the information about a mixer device.
scontrols Shows a complete list of simple mixer controls.
scontents Shows a complete list of simple mixer controls with their contents.
set or sset <SCONTROL> <PARAMETER> ... Sets the simple mixer control contents. The parameter can be the volume either as a percentage from 0% to 100% with % suffix, a dB gain with dB suffix (like -12.5dB), or an exact hardware value. The dB gain can be used only for the mixer elements with available dB information.  When plus(+) or minus(-) letter is appended after volume value, the volume is incremented or decremented from the current value, respectively.
The parameters cap, nocap, mute, unmute, toggle are used to change capture (recording) and muting for the group specified.
The optional modifiers can be put as extra parameters before the value to specify the stream direction or channels to apply.  The modifiers playback and capture specify the stream, and the modifiers front, frontleft, frontright, frontcenter, center, rear, rearright, rearleft, woofer are used to specify channels to be changed.
A simple mixer control must be specified. Only one device can be controlled at a time.
get or sget <SCONTROL> Shows the simple mixer control contents.
controls Shows a complete list of card controls.
contents Shows a complete list of card controls with their contents.
cset <CONTROL> <PARAMETER> ... Sets the card control contents. The identifier has these components: iface, name, index, device, subdevice, numid. The next argument specifies the value of control.
cget <CONTROL> Shows the card control contents. The identifier has same syntax as for the cset command.
-c card
Select the card number to control. The device name created from this parameter has syntax 'hw:N' where N is specified card number.
-D device
Select the device name to control. The default control name is 'default'.
-s | --stdin
Read from stdin and execute the command on each line sequentially. When this option is given, the command in command-line arguments is ignored.
Only sset and cset are accepted.  Other commands are ignored.  The commands to unmatched ids are ignored without errors too.
-h     Help: show syntax.
-q     Quiet mode. Do not show results of changes.
-R     Use the raw value for evaluating the percentage representation. This is the default mode.
-M     Use the mapped volume for evaluating the percentage representation like alsamixer, to be more natural for human ear.
amixer -c 1 sset Line,0 80%,40% unmute cap will set the second soundcard's left line input volume to 80% and right line input to 40%, unmute it, and select it as a source for capture (recording).
amixer -c 1 -- sset Master playback -20dB will set the master volume of the second card to -20dB.  If the master has multiple channels, all channels are set to the same value.
amixer -c 1 set PCM 2dB+ will increase the PCM volume of the second card with 2dB.  When both playback and capture volumes exist, this is applied to both volumes.
amixer -c 2 cset iface=MIXER,name='Line Playback Volume",index=1 40% will set the third soundcard's second line playback volume(s) to 40%
amixer -c 2 cset numid=34 40% will set the 34th soundcard element to 40%
alsamixer(1)
amixer is by Jaroslav Kysela <perex@perex.cz>.  This document is by Paul Winkler <zarmzarm@erols.com> and Jaroslav Kysela <perex@perex.cz>.
vncserver(1)                        TightVNC                        vncserver(1)
vncserver - a wrapper to launch an X server for VNC.
vncserver [:display] [-geometry widthxheight] [-depth depth] [-pixelformat rgbNNN|bgrNNN] [-name desktop-name] [Xvnc-options...]
vncserver -kill :display
vncserver -help
vncserver is a wrapper script for Xvnc, the free X server for VNC (Virtual Network Computing). It provides all capabilities of a standard X server, but does not connect to a display for itself.  Instead, Xvnc creates a virtual desktop you can view or control remotely using a VNC viewer.
You can add Xvnc options at the command line. They will be added to the invocation of Xvnc without changes. The options provided by the vncserver itself are as follows:
:display The display number to use. If omitted, the next free display number is used.
-geometry widthxheight Set desktop width and height.
-depth depth Set the colour depth of the visual to provide, in bits per pixel. Must be a value between 8 and 32.
-pixelformat rgbNNN|bgrNNN Set colour format for pixels representation. The viewer can do the conversion to any other pixel format, but it is faster if the depth and pixel format of the server is the same as the equivalent values on the viewer display.
-name string This specifies the name of the desktop.
-kill :display Stops the session running on the specified display.
-help  Prints a short usage notice to stderr.
vncserver Invokes Xvnc on the next available display and with suitable defaults.
vncserver :1 Invokes Xvnc on display :1.
vncserver -geometry 800x600 -depth 16 :1 Invokes Xvnc on display :1 with desktop size of 800x600 pixels and color depth of 16 bits per pixel.
vncserver -kill :1 Shuts down Xvnc server on display :1.
/etc/tightvncserver.conf System-wide configuration file of TightVNC Server.
$HOME/.vnc/tightvncserver.conf User configuration file of TightVNC Server. Its setting override system-wide configuration.
Xvnc(1), vncviewer(1), vncpasswd(1), vncconnect(1)
Original VNC was developed in AT&T Laboratories Cambridge. TightVNC additions were implemented by Constantin Kaplinsky. Many other people participated in development, testing and support.
Man page authors: Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>, Tim Waugh <twaugh@redhat.com>, Constantin Kaplinsky <const@tightvnc.com>
SEQ(1plan9)                                                          SEQ(1plan9)
seq - print sequences of numbers
seq [ -w ] [ -fformat ] [ first [ incr ] ] last
Seq prints a sequence of numbers, one per line, from first (default 1) to as near last as possible, in increments of incr (default 1).  The loop is:
for(val = min; val <= max; val += incr) print val;
The numbers are interpreted as floating point.
Normally integer values are printed as decimal integers.  The options are
-fformat   Use the print(3)-style format print for printing each (floating point) number.  The default is
-w         Equalize the widths of all numbers by padding with leading zeros as necessary.  Not effective with option -f, nor with numbers in exponential notation.
seq 0 .05 .1 Print 0 0.05 0.1 (on separate lines).
seq -w 0 .05 .1 Print 0.00 0.05 0.10.
/src/cmd/seq.c
Option -w always surveys every value in advance.  Thus seq -w 1000000000 is a painful way to get an `infinite' sequence.
RAR(1)                            RAR archiver                            RAR(1)
rar - archive files with compression
rar <command> [-<switch 1> -<switch N>] archive [files...] [@listfiles...] [path_to_extract]
This manual page documents briefly the rar archiver. This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. Commands and options described here are as of rar 5.50.
rar is a program for creating and manipulating .rar archives.
After the program name comes a command and then optional switches with dashes before them. A summary of commands is included below.  For a complete description, run rar -?
a      Add files to archive.
c      Add archive comment. Comment length is limited to 256 KB.
ch     Change archive parameters.  Can be used with most of archive modification options.
cw     Write archive comment to a specified file.
d      Delete files from archive.
e      Extract files to current directory. Does not create any subdirectories.
f      Freshen files in archive.  Updates those files changed since they were packed to the archive.  This command will not add new to the archive.
k      Lock archive.  Any command which intend to change the archive will be ignored.
l[t[a],b] List content of archive [technical[all], bare]. 'lt' displays the detailed file information in multiline mode. Commands 'lt', 'lta' and 'lb' are equal to 'vt', 'vta' and 'vb' correspondingly.
m[f]   Move to archive [files only].  Directories will not be removed if 'f' modifier is used and/or '-ed' switch is applied.
r      Repair archive. For further details look in rar.txt.
rc     Reconstruct missing volumes using recovery volumes (.rev files). You need to specify any existing volume as the archive name, for example, 'rar rc backup.part03.rar'.
rn     Rename archived files.
rr[N]  Add data recovery record. Optionally, redundant information (recovery record) may be added to an archive.
rv[N]  Create recovery volumes (.rev files), which can be later used to reconstruct missing files in a volume set.  This command has sense only for multivolume archives.  For further details look in rar.txt.
s[name|-] Convert archive to or from SFX. The archive is merged with SFX- module in the user's home directory.
u      Update files in archive. Adds files not already in the archive and updates files changed since they were packed to the archive.
v[t[a],b] Verbosely list archive [technical]
NOTE: Every switch must be separated by a whitespace.  They cannot be put together.
-?     Display help on commands and switches. The same as when none or an illegal command line option is entered.
--     This switch tells to RAR that there is no more switches in the command line. It could be useful, if either archive or file name starts from '-' character. Without '--' switch such name would be treated as switch.
-@[+]  Disable [enable] file lists.
-ad    Append archive name to destination path.
-ag[format] Generate archive name using the current date and time.  Appends the current date string to an archive name when creating an archive. Useful for daily backups.  For further details look in rar.txt.
-ai    Ignore file attributes.
-ap<path> Set path inside archive. This path is merged to file names when adding files to an archive and removed from file names when extracting.
-as    Synchronize archive contents. If this switch is used when archiving, those archived files which are not present in the list of the currently added files, will be deleted from archive. It is convenient to use this switch in combination with -u (update) to synchronize contents of an archive and an archiving directory.
-cfg-  Disable reading configuration and environment.
-cl    Convert file names to lower case.
-cu    Convert file names to upper case.
-c-    Disable showing comments.
-df    Delete files after archiving. This switch in combination with the command "a" performs the same action as the command "m".
-dh    Open shared files. Allows to process files opened by other applications for writing.
-ds    Do not sort files while adding to a solid archive.
-dw    Wipe files after archiving.
-ed    Do not add empty directories.
-en    Do not add "end of archive" block. This switch cannot be used with volumes because the end of archive block contains information important for correct volume processing.
-ep    Exclude paths from names.
-ep1   Exclude base dir from names.
-ep2   Expand paths to full. Store full file paths (except a drive letter and leading path separator) when archiving.
-e[+]<attr> Set file exclude [or include] attributes.
-f     Freshen files. May be used with archive extraction or creation.
-hp[password] Encrypt both file data and headers.  The password is case- sensitive. If you omit the password on the command line, you will be prompted with message "Enter password".
-ht[b|c] Select hash type [BLAKE2,CRC32] for file checksum.
-id[c,d,p,q] Disable messages.
-ilog[name] Log errors to file (registered versions only).
-isnd  Enable sound.
-iver  Display the version number
-k     Lock archive. Any command which intends to change the archive will be ignored.
-log[f][=name] Write names to log file.
-m<0..5> Set compression level (0-store...3-default...5-best). By default rar uses -m3 method (Normal compression).
-ma[4|5] Specify a version of archiving format.
-mc<par> Set advanced compression parameters.  For further details look in rar.txt.
-md<size>[k,m,g] Set dictionary size in KB, MB or GB.
-ms[ext;ext] Specify file types (extensions) to store.
-mt<threads> Set the number of threads. If this switch is not specified, RAR will try to detect the number of available processors and selects the optimal number of threads automatically.
-n<file> Additionally filter included files.
-n@    Read additional filter masks from stdin.
-n@<list> Read additional filter masks from list file.
-oh    Save hard links as the link instead of the file.
-oi[0-4][:min] Save identical files as references.
-ol[a] Process symbolic links as the link [absolute paths].
-or    Rename files automatically.
-ow    Save or restore file owner and group.
-p[password] Encrypt files with the given string as password while archiving. The password is case-sensitive. If you omit the password on the command line, you will be prompted with message "Enter password".
-qo[-|+] Add quick open information [none|force].
-r-    Disable recursion.