{"id":288,"date":"2019-05-14T13:50:20","date_gmt":"2019-05-14T13:50:20","guid":{"rendered":"https:\/\/blog.iabsolute.com\/?p=288"},"modified":"2019-05-14T13:50:20","modified_gmt":"2019-05-14T20:50:20","slug":"command-line-tips-and-tricks","status":"publish","type":"post","link":"https:\/\/blog.iabsolute.com\/?p=288","title":{"rendered":"command line tips and tricks"},"content":{"rendered":"\n<p>Version:1.0\nStartHTML:000000196\nEndHTML:000060386\nStartFragment:000010516\nEndFragment:000060318\nStartSelection:000010516\nEndSelection:000060312\nSourceURL:http:\/\/blogs.iabsolute.com\/?p=592\n\ncommand line tips and tricks \u00ab  Blogs IT Networking\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<\/p>\n\n\n\n<p>These tips are in no particular order\u2026.<\/p>\n\n\n\n<p><strong>Watch a log file as its appended to<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tail -f logfile<\/pre>\n\n\n\n<p><strong>Redirect a man page to a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man whatever | col -b &gt; whatever.out<\/pre>\n\n\n\n<p><strong>Allow a command to continue execution after logout<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nohup mycommand &amp;<\/pre>\n\n\n\n<p><strong>Extract tarball when tar has no z option<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gzip -dc mytarball.tar.gz | tar xvf -<\/pre>\n\n\n\n<p><strong>Display one particular line from a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">set linenumber = 8  # tcsh\nlinenumber=8        # ksh\nsed -n \"${linenumber}p\" filename<\/pre>\n\n\n\n<p><strong>Display current runlevel<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">who -r<\/pre>\n\n\n\n<p><strong>Split lines of text into n-char lines<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"some line of chars\" | fold -w 3<\/pre>\n\n\n\n<p><strong>Temporary directories<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># \/tmp gets cleared at boot, whereas \/var\/tmp does not<\/pre>\n\n\n\n<p><strong>Insert spaces at beginning of each line in vi<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">:5,16s\/^\/   \/    # for lines 5 through 16, for example<\/pre>\n\n\n\n<p><strong>Make init re-examine \/etc\/inittab<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">init q<\/pre>\n\n\n\n<p><strong>Find out MAC address<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arp `uname -n`     # as regular user\nifconfig -a        # ethernet address only displayed when run as root<\/pre>\n\n\n\n<p><strong>Display last 10 system reboots<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">last reboot | head<\/pre>\n\n\n\n<p><strong>Set backspace to do the right thing<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stty erase ^H # sometimes ^? - just do stty erase &lt;hit backspace here!&gt;<\/pre>\n\n\n\n<p><strong>Linux \u2013 display \/proc information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">procinfo -a<\/pre>\n\n\n\n<p><strong>Solaris \u2013 display processor information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/psrinfo -v\n\/usr\/platform\/`uname -i`\/sbin\/prtdiag | sed -n '\/CPUs\/,\/Mem\/p' | sed '\/==\/d'<\/pre>\n\n\n\n<p><strong>Solaris \u2013 display memory information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/prtconf | grep \"Memory\"<\/pre>\n\n\n\n<p><strong>Solaris \u2013 display system information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/platform\/`uname -i`\/sbin\/prtdiag | more\n\/usr\/sbin\/prtconf | more<\/pre>\n\n\n\n<p><strong>Solaris \u2013 find out whether kernel modules are 32 or 64-bit<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/isainfo -kv<\/pre>\n\n\n\n<p><strong>Solaris \u2013 kill all matching processes \u2013 e.g. all \u201ctip\u201d processes<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pgrep -l tip         # check output....\npkill -x tip         # -x to kill only full searchterm matched processes\n# for linux - man killall<\/pre>\n\n\n\n<p><strong>Solaris \u2013 get syslogd to re-read config<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkill -HUP syslogd<\/pre>\n\n\n\n<p><strong>Solaris \u2013 display numeric uid<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/xpg4\/bin\/id -u username<\/pre>\n\n\n\n<p><strong>Solaris \u2013 crude halt\u2026.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sync;sync;sync;halt\n\nThese tips are in no particular order.... \n\n<strong>CDE: Start a dtterm and log it<\/strong>\n\ndtterm -l -lf $HOME\/logs\/`date +%d%m%y`.log &amp;<\/pre>\n\n\n\n<p><strong>Truss a process from start of execution<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">truss -f -wall -rall -vall whatever<\/pre>\n\n\n\n<p><strong>Truss an already running process and output to file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ps -ef | grep myprocess   # find pid\ntruss -f -wall -rall -vall -o outputfile -p pid<\/pre>\n\n\n\n<p><strong>Execute command as different user<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">su - username -c \"my;commands;here\"<\/pre>\n\n\n\n<p><strong>Stop users logging in<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># kill user processes; then\ntouch \/etc\/nologin<\/pre>\n\n\n\n<p><strong>Set correct permissions on \/tmp<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chmod 1777 \/tmp\nls -lad \/tmp         # just checking!<\/pre>\n\n\n\n<p><strong>View NIS hosts and passwd files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ypcat hosts\nypcat passwd<\/pre>\n\n\n\n<p><strong>Editing crontab<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Only use crontab -e - signals change to cron daemon<\/pre>\n\n\n\n<p><strong>Check which processes are listening on which ports<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsof -i | grep LISTEN<\/pre>\n\n\n\n<p><strong>Print range of lines from a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sed -n '100,200 p' filename<\/pre>\n\n\n\n<p><strong>du without mountpoint traversal<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">du -kd \/<\/pre>\n\n\n\n<p><strong>tcsh: redirect stderr only \u2013 stupid c-based shells!<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">( command_here &gt;\/dev\/tty ) &gt;&amp; \/dev\/null<\/pre>\n\n\n\n<p><strong>tcsh: Stop any alias from being evaluated<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\\rm -rf \/    # i.e. preceed with backslash<\/pre>\n\n\n\n<p><strong>Move last file modified<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mv `ls -1 -t *.txt | head -1` whatever.txt<\/pre>\n\n\n\n<p><strong>Get to telnet prompt from a telnet session<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Ctrl-]  # usually....<\/pre>\n\n\n\n<p><strong>Disable ftp login for a user<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"banned_username\" &gt;&gt; \/etc\/ftpusers<\/pre>\n\n\n\n<p><strong>ksh: Debug a script<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ksh -x .\/some_ksh_script.ksh<\/pre>\n\n\n\n<p><strong>ksh: Set up r alias \u2013 see my article on customising your home environment for details (see <a href=\"http:\/\/linuxguruz.wordpress.com\/wp-admin\/etc.html\">\/etc<\/a>)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">alias r='fc -e -'<\/pre>\n\n\n\n<p><strong>ksh: Remove extensions from filenames<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">for file in *.ext; do\n  mv $file ${file%%.*}\ndone<\/pre>\n\n\n\n<p><strong>Bourne-type shells: Find a file\u2019s hard links<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">inode=`ls -li \/path\/and\/filename | awk '{print $1}'`\nfind \/ -inum $inode -exec ls -li {} \\;<\/pre>\n\n\n\n<p><strong>ksh: Access positional parameters<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$1 $2               # and so on, up to and including 9th param\n${10} ${11}\t\t\t# params &gt;= 10<\/pre>\n\n\n\n<p><strong>ksh: Substitute old for new in current pwd then cd<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd old new\ne.g.\n$ pwd\n\/path\/to\/foo\/here\n$ cd foo bar\n\/path\/to\/bar\/here<\/pre>\n\n\n\n<p><strong>Linux: Make image of floppy disk<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dd if=\/dev\/fd0 of=\/path\/to\/my\/new.img\n\n<strong>Tail the newest file in a directory<\/strong>\n\ntail -f `ls -1rt | tail -1`<\/pre>\n\n\n\n<p><strong>Find out which application caused a core dump<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">file \/some\/path\/to\/core<\/pre>\n\n\n\n<p><strong>Sybase \u2013 Check status of databases<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># su - sybase\nPassword:\n&gt; isql -Usa -Ppassword -w200\n1&gt; use master\n2&gt; go\n1&gt; select status, name from sysdatabases\n2&gt; go<\/pre>\n\n\n\n<p><strong>Convert single column into two columns line by line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ cat foofile\na\nb\nc\nd\ne\nf\n$ paste -d: - - &lt; foofile\na:b\nc:d\ne:f<\/pre>\n\n\n\n<p><strong>gunzip and untar with one pipe<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gzip -dc SOMEFILE.tar.gz | tar xvf -\n# or with GNU tar\ntar xvzf SOMEFILE.tar.gz<\/pre>\n\n\n\n<p><strong>Solaris: Standard UNIX ping<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ping -s xxx.xxx.xxx.xxx<\/pre>\n\n\n\n<p><strong>Simple command line arithmetic<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \" ( 10 + 20 ) \/ 15 \" | bc<\/pre>\n\n\n\n<p><strong>Solaris: Mount an ISO image located on NFS share<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># mount -F nfs ip_address:\/path\/to\/iso\/store \/mnt\n# lofiadm -a \/mnt\/my_iso.iso\n\/dev\/lofi\/1\n# mount -F hsfs \/dev\/lofi\/1 \/mnt2\n# ls \/mnt2\n...<\/pre>\n\n\n\n<p><strong>Solaris: Set server to automatically boot<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Note - to reverse this either use eeprom or just bust\n# out with Stop-A\n\n# init 0\nok printenv                # check auto-boot?\nok setenv auto-boot? true\nok boot<\/pre>\n\n\n\n<p><strong>Quickly copy a directory tree with tar<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/path\/to\/source\ntar cvf - .\/* | ( cd \/dest; tar xvf - )<\/pre>\n\n\n\n<p><strong>Access the local shell from an ftp session<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># note - this depends on your ftp client\nftp&gt; !\n$ echo \"Now in local shell\"<\/pre>\n\n\n\n<p><strong>Truncate a log file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># note - you might need to restart whichever process is\n# writing to the file... kill -HUP some_pid may be appropriate\n&gt; \/log\/file\n# or\ncat \/dev\/null &gt; \/log\/file<\/pre>\n\n\n\n<p><strong>Solaris: Non-interactive pkgadd without admin files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkgadd -d ${PKG_PATH} ${PKG} &lt;&lt;EOF\ny\ny\nEOF\n# obviously, your supplied input may need to be adjusted<\/pre>\n\n\n\n<p><strong>Solaris: Check loaded kernel modules<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">modinfo | grep -i \"whatever\"<\/pre>\n\n\n\n<p><strong>Add stuff to beginning or end of every line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sed 's\/^\/stuff\/' file &gt; newfile    # at the beginning\nsed 's\/$\/stuff\/' file &gt; newfile    # at the end<\/pre>\n\n\n\n<p><strong>Solaris: Screwy vi behaviour when using console<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># set TERM properly...\nTERM=sun-cmd\nexport TERM<\/pre>\n\n\n\n<p><strong>ksh: Using local environment file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Ensure that you enter the following in your $HOME\/.profile file\nENV=${HOME}\/.kshrc\nexport ENV<\/pre>\n\n\n\n<p><strong>Create tar archives where files have absolute paths<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar cvf foo.tar \/path\/to\/files<\/pre>\n\n\n\n<p><strong>Create tar archives where files have relative paths<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/path\/to\ntar cvf foo.tar .\/files<\/pre>\n\n\n\n<p><strong>Check if two files are hardlinked<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -li file1 file2  # are inode numbers the same and the files\n                    # residing on the same filesystem?<\/pre>\n\n\n\n<p><strong>Recursive grep without GNU grep<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find \/ -type f -name \"*foo*\" -exec grep \"bar\" {} \/dev\/null \\; -print<\/pre>\n\n\n\n<p><strong>Replace spaces in filenames with underscores<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls | while read file; do\n  mv \"${file}\" `echo \"${file}\" | tr ' ' '_'`\ndone\n\n<strong>see differences between two files<\/strong>\n\ndiff file_1 file_2\n# also see\nman comm<\/pre>\n\n\n\n<p><strong>count processes running on system (-1 to remove header)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo $((`ps -ef | wc -l` - 1))<\/pre>\n\n\n\n<p><strong>recursive wget<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/where\/to\/put\/files; wget -r http:\/\/somewhere.com\/somedir<\/pre>\n\n\n\n<p><strong>check number of fields on each line (delimited by |)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">awk 'BEGIN {FS=\"|\"} {print NF}' somefile<\/pre>\n\n\n\n<p><strong>perform verbose nmap scan<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nmap -v hostname<\/pre>\n\n\n\n<p><strong>perform UDP scan<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nmap -sU -v hostname<\/pre>\n\n\n\n<p><strong>renice a process to increase priority<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">renice -10 -p 123<\/pre>\n\n\n\n<p><strong>remove all .log files in \/tmp that haven\u2019t been modified in over two days<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find \/tmp -type f -name \"*.log\" -mtime +2 -exec rm -rf '{}' \\;<\/pre>\n\n\n\n<p><strong>indent output from a command<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">my_command | sed 's\/^\/   \/'<\/pre>\n\n\n\n<p><strong>Print last four characters in each line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">awk '{printf(\"%s\\n\",substr($0,length($0)-3))}' foofile<\/pre>\n\n\n\n<p><strong>output man page to file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man foo | col -b &gt; outfile<\/pre>\n\n\n\n<p><strong>view man page that\u2019s not yet installed<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nroff -man man_file | more<\/pre>\n\n\n\n<p><strong>show unprintable characters with cat<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat -vET somefile<\/pre>\n\n\n\n<p><strong>ls -l sorted by filesize<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -l | sort -k5,5rn<\/pre>\n\n\n\n<p><strong>extract a single file from a tar<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar cvf foo.tar single_file<\/pre>\n\n\n\n<p><strong>ksh\/bash change to previous directory<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd -<\/pre>\n\n\n\n<p><strong>bash \/ ksh95 variable pattern substitution<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ FOO=\"bash\"\n$ echo \"${FOO\/ba\/k}\"\nksh<\/pre>\n\n\n\n<p><strong>my standard useradd line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">useradd -m -d \/home\/kwaldron -c \"Kevin Waldron\" -s \"\/bin\/ksh\" kwaldron &amp;&amp; passwd kwaldron<\/pre>\n\n\n\n<p><strong>perform snmpwalk of localhost<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">snmpwalk -v 1 localhost -c community_string | more<\/pre>\n\n\n\n<p><strong>ksh \u2013 left pad numbers with zeros<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ typeset -Z8 foo\n$ foo=1234\n$ echo $foo\n00001234<\/pre>\n\n\n\n<p><strong>find files larger than 300k<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find \/ -size +300k -ls 2&gt; \/dev\/null<\/pre>\n\n\n\n<p><strong>find two different types of file extensions<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find . \\( -name \"*.c\" -o -name \"*.c\" \\) -print<\/pre>\n\n\n\n<p><strong>remove the first character from a variable<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ foo=12345\n$ echo \"${foo#?}\"\n2345<\/pre>\n\n\n\n<p><strong>find what program has caused a core file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">file \/path\/to\/core<\/pre>\n\n\n\n<p><strong>convert from ebcdic to ascii<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dd if=\/yourdir\/your-ebcdicfile of=\/yourdir\/your-asciifile conv=ascii<\/pre>\n\n\n\n<p><strong>replace current process with another (i.e. don\u2019t fork, just exec)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">exec newprocess<\/pre>\n\n\n\n<p><strong>display unprintable filenames<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -lb somedir<\/pre>\n\n\n\n<p><strong>correct permissions on \/tmp and \/var\/tmp<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chmod 1777 \/var\/tmp\n# or\nchmod a=rwx,+t \/var\/tmp<\/pre>\n\n\n\n<p><strong>recover corrupt terminal<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stty sane\necho \"^O\" \t# Ctrl-V Ctrl-O<\/pre>\n\n\n\n<p><strong>ring the terminal bell<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/echo \"\\a\"<\/pre>\n\n\n\n<p><strong>bash substitution in previous command<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls\n^l^p\nps<\/pre>\n\n\n\n<p><strong>crontab location<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/var\/spool\/cron\/crontabs\t# solaris\n\/var\/spool\/cron\t\t\t# linux<\/pre>\n\n\n\n<p><strong>GNU grep<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># show 2 lines either side of match\ngrep -C 2 \"somestring\" filename\n# show 2 lines after match\ngrep -A 2 \"somestring\" filename\n# show 2 lines before match\ngrep -B 2 \"somestring\" filename<\/pre>\n\n\n\n<p><strong>grep for a word<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">grep \"\\&lt;something\\&gt;\" somefile<\/pre>\n\n\n\n<p><strong>GNU sed relative addressing<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sed -n '\/searchstring\/,+2 p' filename\n# i.e. to print line containing searchstring plus the next two lines<\/pre>\n\n\n\n<p><strong>convert dos file to unix (remove carriage returns)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dos2unix &lt; infile.dos &gt; outfile.unix  # dos2ux on HP-UX\ntr -d '\\r' &lt; infile.dos &gt; outfile.unix\n# the unix2dos command (ux2dos) exists for the opposite conversion\n# or just ftp the file in ascii mode in the first place, but beware that\n# all sftp transfers are binary only<\/pre>\n\n\n\n<p><strong>searching for a literal $ in a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">grep '\\$' filename\n# or fgrep \/ grep -F\nfgrep '$' filename<\/pre>\n\n\n\n<p><strong>bash \u2013 funky curly brace substitution<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls file{1,3,4}\n# to list file1 file3 and file4<\/pre>\n\n\n\n<p><strong>ksh \u2013 alias r<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">alias r='fc -e -'\n# then\nr vi\n# will execute last vi command<\/pre>\n\n\n\n<p><strong>copy directory tree<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd \/src; tar cvf - .\/* | ( cd \/dest; tar xvpf - )\ncd \/src; find . -depth -print | cpio -pvdum \/dest<\/pre>\n\n\n\n<p><strong>show OS and kernel info<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">uname -a<\/pre>\n\n\n\n<p><strong>wc -l without the filename<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wc -l &lt; filename\n# or\nwc -l filename | awk '{print $1}'\n# as opposed to\nwc -l filename<\/pre>\n\n\n\n<p><strong>list mounts<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mount\t\t# no arguments\ndf -k<\/pre>\n\n\n\n<p><strong>show my history<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">history<\/pre>\n\n\n\n<p><strong>disregard alias<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># rm -r dir\nrm: descend into directory `dir'? n\n# \\rm -r dir<\/pre>\n\n\n\n<p><strong>su and inherit user environment<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">su - [ user ] [ -c \"commands ]<\/pre>\n\n\n\n<p><strong>set terminal type<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">export TERM=vt100<\/pre>\n\n\n\n<p><strong>ksh \u2013 concise tests<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[[ -f foo ]] || {\n  echo \"Foo doesn't exist\" &gt;&amp;2\n  exit 2\n}<\/pre>\n\n\n\n<p><strong>traceroute using ICMP<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">traceroute -I destination<\/pre>\n\n\n\n<p><strong>using last argument of previous command in bash<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ echo foohost\nfoohost\n$ ping !$\nping foohost\n.\n.\n.<\/pre>\n\n\n\n<p><strong>make an alias global for all users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">- add entry to \/etc\/profile<\/pre>\n\n\n\n<p><strong>check for listening ports<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">netstat -an | grep LISTEN<\/pre>\n\n\n\n<p><strong>define sendmail smarthost for relaying in sendmail.cf<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">DSsomehost.foodomain.com<\/pre>\n\n\n\n<p><strong>copy, preserving permissions, ownership and timestamps<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp -p source dest\n# recursively too\ncp -Rp source dest<\/pre>\n\n\n\n<p><strong>create soft link<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ln -s file_to_link link_name\n# hard link\nln file_to_link link_name<\/pre>\n\n\n\n<p><strong>create directories including non-existent parents<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir -p \/some\/lengthy\/dir\/tree<\/pre>\n\n\n\n<p><strong>recursive chown<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chown -R user:group \/some\/dir<\/pre>\n\n\n\n<p><strong>recursive chmod<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chmod -R 744 somedir<\/pre>\n\n\n\n<p><strong>cut the last character from a string<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">a=\"somestring\"\necho ${a} | cut -c${#a}\n# other ways to do this\necho \"${a#${a%?}}\"\n# or\necho \"${a}\" | sed 's\/.*\\(.\\)\/1\/'\n# or\necho \"${a}\" | nawk '{print substr($0, length($0))}'\n# or\nexpr \"${a}\" : '.*\\(.\\)'\n# or\necho \"${a}\" | tail -2c<\/pre>\n\n\n\n<p><strong>truncate log file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp \/dev\/null logfile\n&gt; logfile\ncat \/dev\/null &gt; logfile\n# may need to restart\nkill -HUP `cat \/var\/run\/syslog.pid`<\/pre>\n\n\n\n<p><strong>the true use of cat \u2013 to conCATenate files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat file1 file2 file3 &gt; finalfile<\/pre>\n\n\n\n<p><strong>show subdirectories only in an ls listing<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -l | grep \"^d\"\n# recursively\nfind . -type d -exec ls -ld {} \\;<\/pre>\n\n\n\n<p><strong>show information about directory entry itself (not contents)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -ld dir\n# show size\nls -ls\n# show inode numbers\nls -lia<\/pre>\n\n\n\n<p><strong>recursive grep<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find . -type f -exec grep \"somestring\" {} \/dev\/null \\;<\/pre>\n\n\n\n<p><strong>sed to replace \\ with \\\\<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sed -e 's_\\\\_\\\\\\\\_g'<\/pre>\n\n\n\n<p><strong>getent<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">getent hosts hostname\n# using getent with ssh\nssh -l admin `get hosts hostname | awk '{print $1}'`<\/pre>\n\n\n\n<p><strong>view available signals<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kill -l<\/pre>\n\n\n\n<p><strong>search for strings in a binary file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">strings binary_name<\/pre>\n\n\n\n<p><strong>show current runlevel<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">who -r\n(or on some Linuxen - runlevel)<\/pre>\n\n\n\n<p><strong>show uptime and processor run queue averages<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">uptime\n# or with who output\nw<\/pre>\n\n\n\n<p><strong>stop people logging in<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">touch \/etc\/nologin<\/pre>\n\n\n\n<p><strong>temporarily change your prompt<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">PS1='$ '\nexport PS1<\/pre>\n\n\n\n<p><strong>bourne based shells \u2013 show current environment variables<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">env\n# show all variables\nset\n# show shell options\nset -o\n# current shell options (set via set -x, etc)\necho $-\n# bash\nshopt\n# show current shell\necho $0<\/pre>\n\n\n\n<p><strong>filename completion ksh (vi mode)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ESC-\\<\/pre>\n\n\n\n<p><strong>check for interactive shell<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">case $- in\n  *i*)  echo \"Interactive\"\n        ;;\n  *)    echo \"Not interactive\"\n        ;;\nesac<\/pre>\n\n\n\n<p><strong>find ip address for an interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/sbin\/ifconfig interface | grep inet\n# e.g.\n\/sbin\/ifconfig bge0 | grep inet<\/pre>\n\n\n\n<p><strong>changing my primary group to one of my secondary groups<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ groups\nkwaldron wheel\n$ grep kwaldron \/etc\/group\nwheel:x:10:root,kwaldron\nkwaldron:x:502:\n$ newgrp wheel\n$ id\nuid=502(kwaldron) gid=10(wheel) groups=10(wheel),502(kwaldron) context=user_u:system_r:unconfined_t<\/pre>\n\n\n\n<p><strong>gunzip and untar in one line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gzip -dc foo.tar.gz | tar xvf -<\/pre>\n\n\n\n<p><strong>gzip and tar in one line<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar cvf - .\/* | gzip -c &gt; foo.tar.gz<\/pre>\n\n\n\n<p><strong>with GNU tar this can happen in one command<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar xzvf foo.tar.gz\ntar cvzf foo.tar.gz files\ntar tvzf foo.tar.gz\netc...<\/pre>\n\n\n\n<p><strong>uncompress and untar<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">zcat foo.tar.Z | tar xvf -<\/pre>\n\n\n\n<p><strong>find SUID files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/ -perm -4000 -exec \/usr\/bin\/ls -ld {} \\;<\/pre>\n\n\n\n<p><strong>find SGID files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/ -perm -2000 -exec \/usr\/bin\/ls -ld {} \\;<\/pre>\n\n\n\n<p><strong>find world writable files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/ -perm -0777 -exec \/usr\/bin\/ls -ld {} \\;\n# symbolic links will always be 77 so we can ignore them\n\/usr\/bin\/find -perm -0777 ! -type l -exec \/usr\/bin\/ls -ld {} \\;<\/pre>\n\n\n\n<p><strong>remove files older than one week<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/some\/dir -name \"*whatever*\" -mtime +7 | xargs rm<\/pre>\n\n\n\n<p><strong>find device files located where they shouldn\u2019t be<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/ \\( -type b -o -type c \\) | egrep -v 'proc|\/dev'<\/pre>\n\n\n\n<p><strong>remove old core files (see Tip 0001 and Tip 0040)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/bin\/find \/ -name core -mtime +7 -exec rm {} \\;<\/pre>\n\n\n\n<p><strong>ksh\/bash \u2013 damn emacs editing mode \u2013 turn it off!<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">set +o emacs\nset -o vi<\/pre>\n\n\n\n<p><strong>remove duplicate occurrences of characters<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># echo \"ssoommeetthhiinngg\" | tr -s [a-z]\nsomething\n## remove all occurrences of characters\n# echo \"ssoommeetthhiinngg\" | tr -d [m-z]\neehhiigg<\/pre>\n\n\n\n<p><strong>check whois information for a domain<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">whois -h whois.opensrs.net foo.com<\/pre>\n\n\n\n<p><strong>view dynamically linked library dependencies for a binary<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ldd \/path\/to\/some\/binary<\/pre>\n\n\n\n<p><strong>enable a service<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vi \/etc\/inetd.conf\n# then\nkill -HUP `cat \/var\/run\/syslog.pid`\n# or (Solaris)\nkill -HUP `pgrep syslogd`<\/pre>\n\n\n\n<p><strong>remove a user, and their homedirectory<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">userdel -r someuser<\/pre>\n\n\n\n<p><strong>check routing table<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">netstat -rn<\/pre>\n\n\n\n<p><strong>check interfaces for collisions and errors, tx\/rx packets, etc<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">netstat -ivn\n# check for just one interface\nnetstat -ivn -I eth0<\/pre>\n\n\n\n<p><strong>check NTP status<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ntpq -p<\/pre>\n\n\n\n<p><strong>perform a verbose trace of NTP<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ntptrace -dv<\/pre>\n\n\n\n<p><strong>ksh arithmetic \u2013 very flexible about variables<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ foo=1\n$ bar=20\n$ echo $(( foo + bar ))\n21\n$ echo $(( ${foo} + ${bar} ))\n21<\/pre>\n\n\n\n<p><strong>output to screen and file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">my_command | tee -a \/some\/file<\/pre>\n\n\n\n<p><strong>output to two files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">my_command | tee -a \/some\/file &gt; \/some\/other\/file<\/pre>\n\n\n\n<p><strong>append stderr and stdout to a file and then perform further actions<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">some_command 2&gt;&amp;1 | tee -a some_file | some_other_command &gt; some_other_file<\/pre>\n\n\n\n<p><strong>redirect stdout and stderr somewhere (in this case, \/dev\/null)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">some_command &gt;\/dev\/null 2&gt;&amp;1<\/pre>\n\n\n\n<p><strong>place command in background<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># either\nsome_command &amp;\n# or\nsome_command\n^Z\nbg\n# can then view jobs\njobs\n# and kill by job number\nkill %1<\/pre>\n\n\n\n<p><strong>line numbering<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nl -ba infile &gt; outfile<\/pre>\n\n\n\n<p><strong>create 100kb file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dd if=\/dev\/zero of=\/some\/file bs=1 count=100<\/pre>\n\n\n\n<p><strong>octal dump (show octal and ascii)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">od -bc somefile\n# use this to check a directory entry\nod -bc somedirectory<\/pre>\n\n\n\n<p><strong>show the arp cache<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">arp -a<\/pre>\n\n\n\n<p><strong>view tracked alias cache (bash\/ksh)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">hash<\/pre>\n\n\n\n<p><strong>clear tracked alias cache (bash\/ksh)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">hash -r<\/pre>\n\n\n\n<p><strong>show all stty modes<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stty -a<\/pre>\n\n\n\n<p><strong>create a core dump<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stty intr ^\\\n# then\nlaunch a process in the foreground and hit Ctrl-\\<\/pre>\n\n\n\n<p><strong>ksh read-only variables<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># typeset -r somevar=\"something\"\n# somevar=\"newval\"\nksh: somevar: is read only<\/pre>\n\n\n\n<p><strong>using at<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">at now + 5 min\nat&gt; ls\nat&gt; ^D\n# then show list of jobs\natq\t# linux atq output less verbose, but with simpler job identifiers\natrm 1135911587.a\t# remove an at jon (Solaris)\natrm 1\t\t\t# ditto (Linux)<\/pre>\n\n\n\n<p><strong>remove crontab<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -r<\/pre>\n\n\n\n<p><strong>list crontab<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -l user\t   # solaris\ncrontab -u user -l # linux<\/pre>\n\n\n\n<p><strong>exporting X<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">display_host# xhost +\napplication_server# DISPLAY=mybox:0.0\napplication_server# export DISPLAY\napplication_server# somexprog &amp;<\/pre>\n\n\n\n<p><strong>append a line to a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"new line\" &gt;&gt; some_file<\/pre>\n\n\n\n<p><strong>apache control<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apachectl restart\n# or\n\/etc\/init.d\/httpd restart\n# or\n\/etc\/init.d\/httpd stop &amp;&amp; \/etc\/init.d\/httpd start<\/pre>\n\n\n\n<p><strong>take log of session<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">script \/my\/log\/file<\/pre>\n\n\n\n<p><strong>common vi(m) options<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># ignore case\n:set ic\n# line numbers\n:set num\n:set nonum\n# turn off search highlighting (VIM)\n:nohl\n# syntax highlight on (VIM)\n:sy on\n# show unprintable characters\n:set list<\/pre>\n\n\n\n<p><strong>view kernel message buffer<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dmesg<\/pre>\n\n\n\n<p><strong>check TCPD rules in \/etc\/hosts.{allow,deny}<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">grep -v \"^#\" \/etc\/hosts.allow \/etc\/hosts.deny | grep -v \"^[ \t]*$\"<\/pre>\n\n\n\n<p><strong>disable HTTP TRACE in apache<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># vi \/etc\/httpd\/conf\/httpd.conf\n# grep Rewrite \/etc\/httpd\/conf\/httpd.conf\nRewriteEngine On\nRewriteCond %{REQUEST_METHOD} ^TRACE\nRewriteRule .* - [F]\n# apachectl restart<\/pre>\n\n\n\n<p><strong>get postfix to reload configuration<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">postfix reload<\/pre>\n\n\n\n<p><strong>change user foo\u2019s login name to bar<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">usermod -l bar foo\n\n<strong>view Group membership<\/strong>\n\n$ id -Gn -- anyuser\nanyuser wheel<\/pre>\n\n\n\n<p><strong>tcpdump port 123 (ntp)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tcpdump port 123<\/pre>\n\n\n\n<p><strong>disable SELinux protection for syslogd<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># setsebool -P syslogd_disable_trans 1        ;; -P to make change permanent\n# getsebool -a | grep sys\nsyslogd_disable_trans --&gt; active\n# getsebool syslogd_disable_trans\nsyslogd_disable_trans --&gt; active<\/pre>\n\n\n\n<p><strong>Display SELinux context in ls listings<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -lZ \/some\/dir<\/pre>\n\n\n\n<p><strong>Show all SELinux booleans<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">getsebool -a<\/pre>\n\n\n\n<p><strong>is SELinux enabled?<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">selinuxenabled &amp;&amp; echo Yes\n# or\n# getenforce\nEnforcing<\/pre>\n\n\n\n<p><strong>view usb infomation<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsusb\ncat \/proc\/bus\/usb\/devices<\/pre>\n\n\n\n<p><strong>submit a job for printing<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lp -d destination filename<\/pre>\n\n\n\n<p><strong>print cups status information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lpstat<\/pre>\n\n\n\n<p><strong>xorg.conf<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/etc\/X11\/xorg.conf\nxorgconfig<\/pre>\n\n\n\n<p><strong>show partition table<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/sbin\/fdisk -l \/dev\/cciss\/c0d0p1<\/pre>\n\n\n\n<p><strong>check mouse is operational<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/dev\/mouse       # then move the mouse<\/pre>\n\n\n\n<p><strong>perform a reverse DNS lookup<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">host xxx.xxx.xxx.xxx dns_server_ip<\/pre>\n\n\n\n<p><strong>Linux screenshots<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># see http:\/\/www.troubleshooters.com\/linux\/index.htm\nimport -window root -display servername:0 myfile01.pcx\nimport -window root -geometry 640:480 -display servername:0 myfile01.pcx\nxwd -display servername:0 -root &gt; myfile.dmp\n# can view with\nxwd | xwud<\/pre>\n\n\n\n<p><strong>show inode information for all files in a directory<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find . -type f -exec stat {} \\;<\/pre>\n\n\n\n<p><strong>root .profile under Linux<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Most recent Linux distributions use a home directory for root of \/root\n\nYou can check this with\n# awk -vFS=':' '\/^root\/ {print $6}' \/etc\/passwd\n\/root\n\nAgain, most Linux distributions have root set up to use bash\n# awk -vFS=':' '\/^root\/ {print $7}' \/etc\/passwd\n\/bin\/bash\n\nIf you look in roots home directory, you'll see .bash_profile\n# ls -la $HOME\/.bash_profile\n-rw-r--r-- 1 root root 234 Jul 6 2001 \/root\/.bash_profile<\/pre>\n\n\n\n<p><strong>show multiple processor usage statistic<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mpstat 1 10 \t# for ten iterations with 1 second interval<\/pre>\n\n\n\n<p><strong>make a file immutable<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chattr +i somefile<\/pre>\n\n\n\n<p><strong>shutdown your system<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">init 0\nshutdown -h now\n# reboot\ninit 6\nshutdown -r now<\/pre>\n\n\n\n<p><strong>grub \u2013 boot in single user mode<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># Hit the a key at the grub menu, then append 'single' to the list of\n# kernel arguments<\/pre>\n\n\n\n<p><strong>add a log entry via syslog (will be directed as dictated by rules in \/etc\/syslog.conf)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># logger -p kern.error Test message\n# tail -1 \/var\/log\/messages\nDec 28 11:31:09 somehost root: Test message<\/pre>\n\n\n\n<p><strong>get account password summary for a user<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">passwd -S username\n# e.g.\n# passwd -S kwaldron\nPassword set, MD5 crypt\n# passwd -S ntop\nPassword locked.<\/pre>\n\n\n\n<p><strong>Vixie cron \u2013 increments<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">*\/5 * * * * command (would mean every five minutes)\n# Vixie cron - ranges\n10 0-5 * * * command (10 minutes past each hour from 00:10 'til 05:10)<\/pre>\n\n\n\n<p><strong>set global library path<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"\/some\/lib\/path\" &gt;&gt; \/etc\/ld.so.conf\n# then run....\nldconfig\n# can also do this on a session\/user basis with\nexport LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:\/some\/lib\/path<\/pre>\n\n\n\n<p><strong>chfn \u2013 change finger information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># e.g.\n\/usr\/sbin\/useradd bob\n\/usr\/bin\/chfn -f \"Bob Smith\" bob\t# could also use usermod -c \"Bob Smith\"\n# set the encrypted password...\n\/usr\/sbin\/usermon -p 'abcd$01834HFB1a' bob<\/pre>\n\n\n\n<p><strong>chsh can be used to change login shell<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chsh -l \t# will list shells available in \/etc\/shells<\/pre>\n\n\n\n<p><strong>curses based runlevel management<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ntsysv<\/pre>\n\n\n\n<p><strong>view CPU information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/proc\/cpuinfo<\/pre>\n\n\n\n<p><strong>view memory information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/proc\/meminfo<\/pre>\n\n\n\n<p><strong>check nic info<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/proc\/net\/nicinfo\/eth0.info<\/pre>\n\n\n\n<p><strong>find out what type file is<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">file filename<\/pre>\n\n\n\n<p><strong>module configuration file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># RHEL3\n\/etc\/modules.conf\n# RHEL4\n\/etc\/modprobe.conf<\/pre>\n\n\n\n<p><strong>module commands<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsmod\ninsmod\nrmmod\ndepmod\nmodprobe<\/pre>\n\n\n\n<p><strong>remount a filesystem (e.g. mount read-only FS read-write)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mount -o rw,remount \/some\/mountpoint<\/pre>\n\n\n\n<p><strong>mount an iso image<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mount -t iso9660 -o ro,loop \/some\/foo.iso \/mnt<\/pre>\n\n\n\n<p><strong>grab last 10 lines of messages file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">su - root -c \"tail \/var\/log\/messages\"<\/pre>\n\n\n\n<p><strong>use mii-tool on interface to gather link speed and duplex<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mii-tool eth0<\/pre>\n\n\n\n<p><strong>use ethtool for further information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ethtool eth0<\/pre>\n\n\n\n<p><strong>set interface speed and duplex using ethtool<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ethtool -s eth0 speed 100 duplex full autoneg off<\/pre>\n\n\n\n<p><strong>display iptables policy<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iptables -L<\/pre>\n\n\n\n<p><strong>RHEL \u2013 display init.d scripts configured with chkconfig<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chkconfig --list\n# set script to start in runlevels 2, 3, 4 and 5\nchkconfig --level 2345 foosvc on\n# start the service\nservice foosvc start<\/pre>\n\n\n\n<p><strong>display filehandle usage<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsof<\/pre>\n\n\n\n<p><strong>show current runlevel<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">runlevel<\/pre>\n\n\n\n<p><strong>show \/proc info for HBA<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/proc\/scsi\/qla2300\/0<\/pre>\n\n\n\n<p><strong>show top processes ignoring inactive and zombie (i.e. running on CPU only)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">top -i\n# run at highest priority with no delay\ntop -q -i\n# using top in a script - batch mode\ntop -b -n 1<\/pre>\n\n\n\n<p><strong>pstree \u2013 kind-of equivalent to ptree<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ pstree -c -p -a -G PID\n# e.g. pstree of current shell process\n$ pstree -c -p -a -G $$\nbash,24195\n  +-pstree,24858 -c -p -a -G 24195<\/pre>\n\n\n\n<p><strong>show filesystem types in df output<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">df -kT<\/pre>\n\n\n\n<p><strong>define kernel parameters<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vi \/etc\/sysctl.conf\nman sysctl\ne.g.\n# \/sbin\/sysctl -a | grep shmmax\nkernel.shmmax = 33554432<\/pre>\n\n\n\n<p><strong>set hardware clock to system clock date and time<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">hwclock --systohc<\/pre>\n\n\n\n<p><strong>display memory usage (in megabytes)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">free -m<\/pre>\n\n\n\n<p><strong>ssh as different user than currently logged in user<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ssh -l username hostname\n# or\nssh username@hostname<\/pre>\n\n\n\n<p><strong>basic scp syntax<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scp \/src\/files user@host:\/dest\/path<\/pre>\n\n\n\n<p><strong>List users accessing mounted filesystem<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fuser -u \/mnt<\/pre>\n\n\n\n<p><strong>Kill all processes accessing this filesystem<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fuser -km \/mnt\n\nA big heap of (mostly) Solaris specific one-liners \n\n<strong>copy ACL from one file to another<\/strong>\n\ngetfacl file_one | setfacl -f - file_two<\/pre>\n\n\n\n<p><strong>Print all lp status information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lpstat -t<\/pre>\n\n\n\n<p><strong>view the files that make up a Solaris package<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/pkgchk -l SUNWcsr | grep Pathname | sed 's\/Pathname: \\(.*\\)\/\\1\/'<\/pre>\n\n\n\n<p><strong>check which package a file belongs to<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/pkgchk -lp somefile<\/pre>\n\n\n\n<p><strong>snoop an interface for icmp<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">snoop -d eri0 | grep -i icmp<\/pre>\n\n\n\n<p><strong>view a NIS+ map<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">niscat passwd.org_dir\n# for NIS\nypcat passwd<\/pre>\n\n\n\n<p><strong>backup to tape<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar cvf \/dev\/rmt\/0n \/some\/crap\nmt rew\ntar tvf \/dev\/rmt\/0n\nmt rew\ntar xvf \/dev\/rmt\/0n single_file<\/pre>\n\n\n\n<p><strong>Solaris 10 \u2013 list current zones<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/zoneadm list -cv<\/pre>\n\n\n\n<p><strong>Solaris 10 \u2013 list current service state<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -a<\/pre>\n\n\n\n<p><strong>Show extended information about a Solaris 10 service<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -xv svc:\/network\/nfs\/client<\/pre>\n\n\n\n<p><strong>Display all available information about a service<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -l svc:\/network\/nfs\/status:default<\/pre>\n\n\n\n<p><strong>List the services on which a Solaris 10 service depends<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -d svc:\/network\/nfs\/client<\/pre>\n\n\n\n<p><strong>List the services which depend on this Solaris 10 service<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -D svc:\/network\/nfs\/client<\/pre>\n\n\n\n<p><strong>View Solaris 10 inet services<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">inetadm<\/pre>\n\n\n\n<p><strong>Convert new inetd.conf entries to new SMF format<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">inetconf<\/pre>\n\n\n\n<p><strong>list users belonging to a group<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">listusers -g groupname<\/pre>\n\n\n\n<p><strong>share a filesystem<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">share \/some\/fs\n# then on another system\nmount -F nfs some_ip:\/some\/fs \/some\/mnt\n# when we're done\numount \/some\/mnt\n# then back on original system\nunshare \/some\/fs<\/pre>\n\n\n\n<p><strong>find filesystem type<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fstyp \/dev\/dsk\/c0t0d0s0<\/pre>\n\n\n\n<p><strong>set auto-boot to false<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ok setenv auto-boot? false\n# or\neeprom 'auto-boot?=false'<\/pre>\n\n\n\n<p><strong>eject cdrom<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">umount \/cdrom\/cdrom0\neject cdrom\n# or if vold isn't running\numount \/mnt\neject \/dev\/dsk\/c0t6d0s0\t\t(get this info from iostat -En)<\/pre>\n\n\n\n<p><strong>Solaris DHCP configuration table management utility<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dhtadm<\/pre>\n\n\n\n<p><strong>DHCP Graphical interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sadm\/admin\/bin\/dhcpmgr<\/pre>\n\n\n\n<p><strong>solaris print manager<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sadm\/admin\/bin\/printmgr<\/pre>\n\n\n\n<p><strong>solaris graphical configuration<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man fbconfig\nman m64config\nman kdmconfig\t\t# ia86<\/pre>\n\n\n\n<p><strong>administer system controller<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/platform\/`uname -i`\/sbin\/scadm<\/pre>\n\n\n\n<p><strong>create windex with nohup -p<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># catman &amp;\n[1] 2345\n# jobs\n[1] + Running    catman &amp;\n# nohup -p 2345\n# exit<\/pre>\n\n\n\n<p><strong>boot Solaris 10 in verbose mode<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ok boot -m verbose<\/pre>\n\n\n\n<p><strong>view disabled services on Solaris 10<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">svcs -a | grep disabled<\/pre>\n\n\n\n<p><strong>disable \/ enable telnet<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># disable telnet\ninetadm -d telnet\n# re-enable telnet\ninetadm -e telnet\n# or\nsvcadm disable telnet\nsvcadm -v enable -r telnet\n(-v verbose, -r recursively enable dependencies)\n# example\n# svcadm -v disable telnet\nsvc:\/network\/telnet:default disabled.\n# svcadm -v enable -r svc:\/network\/ftp:default<\/pre>\n\n\n\n<p><strong>shutdown your system<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">init 5\nshutdown -y -g0 -i5\n# reboot\ninit 6\nshutdown -y -g0 -i6<\/pre>\n\n\n\n<p><strong>dynamically adding solaris interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ifconfig hme0 plumb\nifconfig hme0 192.168.0.2 netmask 255.255.255.0 broadcast + up\nroute add default 192.168.0.1\n# to make this permanent\necho \"hostname\" &gt; \/etc\/hostname.hme0\necho \"192.168.0.2\" &gt;&gt; \/etc\/inet\/hosts # on Solaris 10 - ensure you modify \/etc\/inet\/ipnodes too\necho \"192.168.0.0 255.255.255.0\" &gt;&gt; \/etc\/inet\/netmasks\necho \"192.168.0.1\" &gt; \/etc\/defaultrouter\ninit 6<\/pre>\n\n\n\n<p><strong>display tape drive status<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mt -f \/dev\/rmt\/0 status<\/pre>\n\n\n\n<p><strong>find installed physical memory<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/prtconf | grep Mem<\/pre>\n\n\n\n<p><strong>standard single user mode boot<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ok boot -s\n# or\ninit s\n# or\nreboot -- -s<\/pre>\n\n\n\n<p><strong>power off<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">init 5\n# or\ninit 0\npower-off\n# or\nshutdown -y -i5 -g0<\/pre>\n\n\n\n<p><strong>single user mode cdrom boot<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stop-A\n# or\ninit 0\n# then\nok boot cdrom -s\n# on intel\nb -s (insert CD first, it will attempt to boot then give you a prompt)<\/pre>\n\n\n\n<p><strong>show configuration information (controllers)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ \/usr\/sbin\/cfgadm\nAp_Id                          Type         Receptacle   Occupant     Condition\nc0                             scsi-bus     connected    configured   unknown\nc1                             scsi-bus     connected    configured   unknown\nc2                             scsi-bus     connected    unconfigured unknown\nusb0\/1                         unknown      empty        unconfigured ok\nusb0\/2                         unknown      empty        unconfigured ok<\/pre>\n\n\n\n<p><strong>burning cd\u2019s under Solaris (see Solaris 10 Devices and Filesystems guide on docs.sun.com )<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man cdrw\nman mkisofs<\/pre>\n\n\n\n<p><strong>truss a process that\u2019s already running (see strace on Linux)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">truss -f -wall -rall -vall -o \/some\/outfile.out -p PID &amp;<\/pre>\n\n\n\n<p><strong>show kernel parameters for an interface ( &lt;= Solaris 9 only )<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">netstat -k interface\n# e.g.\nnetstat -k hme0<\/pre>\n\n\n\n<p><strong>ping using alternative interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ping -i bge1 somehost<\/pre>\n\n\n\n<p><strong>ping 5 x 64 byte packets<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ping -s somehost 64 5<\/pre>\n\n\n\n<p><strong>Just added a new device to the system?<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">devfsadm   # pre Solaris 8 this was tapes, disks, drvconfig\n# or\ntouch \/reconfigure\ninit 6\n# or\nreboot -- -rs\n# or\ninit 0\nok boot -rs<\/pre>\n\n\n\n<p><strong>mount an iso<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># lofiadm -a \/path\/to\/foo.iso\n\/dev\/lofi\/1\n# mount -F hsfs \/dev\/lofi\/1 \/mnt\n# umount \/mnt\n# lofiadm -d \/dev\/lofi\/1<\/pre>\n\n\n\n<p><strong>show uname information in SCO format<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">uname -X<\/pre>\n\n\n\n<p><strong>grab system diagnostics information and variables<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/platform\/`uname -i`\/sbin\/prtdiag -v\n\/usr\/platform\/`uname -i`\/sbin\/eeprom\nprtconf -D\nisainfo -kv\t\t\t# show kernel module version\npagesize \t\t\t# show pagesize\npsrinfo -v\t\t\t# verbose processor information<\/pre>\n\n\n\n<p><strong>Show loaded kernel modules<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">modinfo\n# other module commands\nmodload\nmodunload<\/pre>\n\n\n\n<p><strong>Finding network parameters of bge interfaces<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ndd -get \/dev\/bge0 link_status\nndd -get \/dev\/bge0 link_speed\nndd -get \/dev\/bge0 link_duplex<\/pre>\n\n\n\n<p><strong>check metadbs<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">metadb<\/pre>\n\n\n\n<p><strong>check metastat<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">metastat\n# view brief config snapshot\nmetastat -p<\/pre>\n\n\n\n<p><strong>view swap information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">swap -l\nswap -s\nsar -r\n# view info n 5 samples at 5 second intervals\nsar -r 5 5<\/pre>\n\n\n\n<p><strong>make 100M swap file to temporarily fix swap issues<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkfile 100m \/export\/swapfile\nswap -a \/foo\/swapfile\nswap -l\nswap -s\n# problem fixed - dodgy application patched or removed\nswap -d \/foo\/swapfile\nrm \/foo\/swapfile\n# if it needs to be made persistent, then add it to \/etc\/vfstab<\/pre>\n\n\n\n<p><strong>wide ps listing<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/ucb\/ps auwwwx<\/pre>\n\n\n\n<p><strong>get CLOSE_WAIT interval<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/ndd -get \/dev\/tcp tcp_close_wait_interval<\/pre>\n\n\n\n<p><strong>see if IP Forwarding is enabled<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/ndd -get \/dev\/tcp ip_forwarding<\/pre>\n\n\n\n<p><strong>view information on signals<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man -s3HEAD signal<\/pre>\n\n\n\n<p><strong>fsck (on RAW device)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fsck \/dev\/rdsk\/c1t1d0s0<\/pre>\n\n\n\n<p><strong>view errors on devices (an easy way to find out device name of CD\/DVD drives)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iostat -En<\/pre>\n\n\n\n<p><strong>display inode to filename mapping<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ff \/dev\/dsk\/c1t1d0s0<\/pre>\n\n\n\n<p><strong>display which processes have a file open (also works on some Linux distros)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fuser filename<\/pre>\n\n\n\n<p><strong>display which files a process has open<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pfiles PID\npfiles `pgrep process_name`<\/pre>\n\n\n\n<p><strong>Solaris 9 and above \u2013 reap zombie process<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">preap PID<\/pre>\n\n\n\n<p><strong>show who is doing what<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/whodo<\/pre>\n\n\n\n<p><strong>iostat<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iostat interval iterations\n# e.g.\niostat 1 10\n# same can be done with prstat and vmstat<\/pre>\n\n\n\n<p><strong>ptree \u2013 show parent\/child process relationship<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ptree PID\n# e.g. for current shell\nptree `pgrep $( echo $0 | tr -d '-' )`\n# or\nptree `pgrep $( echo $0 | sed 's\/-\/\/' )`<\/pre>\n\n\n\n<p><strong>view current eeprom settings<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/platform\/`uname -i`\/sbin\/eeprom<\/pre>\n\n\n\n<p><strong>set MTU value for an interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ifconfig interface mtu n\n# e.g.\nifconfig hme0 mtu 1500\n# place in hostname.interface file for persistence<\/pre>\n\n\n\n<p><strong>show patch revisions<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">showrev -p\npatchadd -p<\/pre>\n\n\n\n<p><strong>show brief listing of installed packages<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkginfo<\/pre>\n\n\n\n<p><strong>show long listing of installed packages<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkginfo -l<\/pre>\n\n\n\n<p><strong>see package info on a package that\u2019s not yet installed<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkginfo -l -d \/path\/to\/package.pkg<\/pre>\n\n\n\n<p><strong>get package params (may aswell just browse \/var\/sadm\/pkg\/PKGname\/pkginfo)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkgparam SUNWcsr DESC<\/pre>\n\n\n\n<p><strong>open Solaris product registry<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">prodreg<\/pre>\n\n\n\n<p><strong>send a nohup to an already running command (Solaris 10)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nohup -p PID<\/pre>\n\n\n\n<p><strong>define kernel parameters (requires a reboot after changes)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vi \/etc\/system<\/pre>\n\n\n\n<p><strong>view current system parameters<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sysdef | grep whatever\n# e.g.\n# sysdef | grep shar\n1572864000   max shared memory segment size\n100           shared memory identifiers (SHMMNI)\n60            maximum time sharing user priority (TSMAXUPRI)\n# grep shmmax \/etc\/system\n*set shmsys:shminfo_shmmax=1258291200\nset shmsys:shminfo_shmmax=1572864000<\/pre>\n\n\n\n<p><strong>find pid if you know process name<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pgrep some_process_name\n# or the obvious\nps -ef | grep whatever\n# we can then ptree this\nptree PID\n# or all in one\nptree `pgrep process_name`\n\nAnother bundle of miscellaneous one-liners (Misc OS's....) \n\n<strong>show process listing for single username<\/strong>\n\nps -fu username<\/pre>\n\n\n\n<p><strong>print all lines between two search terms (inclusive)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sed -n '\/acd\/,\/anz\/ p' file.dat<\/pre>\n\n\n\n<p><strong>Solaris \u2013 show multiple processor statistics<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mpstat 1 10<\/pre>\n\n\n\n<p><strong>remove digits from a string<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"abcd01234\" | tr -d [0-9]<\/pre>\n\n\n\n<p><strong>view MX record(s) for a domain<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dig MX foo.com<\/pre>\n\n\n\n<p><strong>GNU tar + bzip + exclude<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tar cvpjf backup.tar.bz2 \/ --exclude \/proc \/dev \/mnt \/sys \/media<\/pre>\n\n\n\n<p><strong>create iso image<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">dd if=\/dev\/cdrom of=\/some\/iso.iso bs=512<\/pre>\n\n\n\n<p><strong># \/etc\/issue displayed before login<br># \/etc\/motd display after login<\/strong><\/p>\n\n\n\n<p><strong>ls by size in descending order<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -la | sort -k5,5rn<\/pre>\n\n\n\n<p><strong>show RPC info on a remote host (probe portmapper)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># rpcinfo -p remote.ip<\/pre>\n\n\n\n<p><strong>output man page to file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man something | col -b &gt; man.out<\/pre>\n\n\n\n<p><strong>Add line numbers to a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nl -ba &lt; infile &gt; outfile<\/pre>\n\n\n\n<p><strong>Run syslog in Debug mode<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/syslogd -d<\/pre>\n\n\n\n<p><strong>manual page detailing hosts.allow hosts.deny<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">man 5 hosts_access<\/pre>\n\n\n\n<p><strong>display ps forest<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ps -axf<\/pre>\n\n\n\n<p><strong>recursively change permissions on directories only<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find . -type d -exec chmod 755 {} \\; -print 2&gt;\/dev\/null<\/pre>\n\n\n\n<p><strong>list specific users process info<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsof -u username<\/pre>\n\n\n\n<p><strong>iconv convert between codesets<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">iconv -f UTF-8 -t iso85591 somefile<\/pre>\n\n\n\n<p><strong>grab sar stats for specific time range<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sar -A -s 19:40 -e 20:50 -f \/var\/adm\/sa\/sa21<\/pre>\n\n\n\n<p><strong>Solaris 10 \u2013 checking online services<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ svcs -xv svc:\/network\/rpc-100235_1\/rpc_ticotsord:default\nsvc:\/network\/rpc-100235_1\/rpc_ticotsord:default (100235)\n State: online since Mon Feb 20 12:59:06 2006\nImpact: None.\n$ inetadm | grep enabled\nenabled   online         svc:\/network\/rpc\/meta:default\nenabled   online         svc:\/network\/rpc-100235_1\/rpc_ticotsord:default\n$ svcs -a | grep online | wc -l\n      46<\/pre>\n\n\n\n<p><strong>Solaris: pgrep against full argument string<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># sleep 200 &amp;\n5868\n# pgrep sleep\n5868\n# pgrep 200\n# pgrep -f 200\n5868\n#<\/pre>\n\n\n\n<p><strong>recursive copy preserving permissions<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp -Rp \/some\/src \/dest<\/pre>\n\n\n\n<p><strong>using xargs to copy files<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">find \/srcdir\/ . -name '*.txt.gz' -mtime -2 | xargs -I {} cp {} \/trgtdir\/<\/pre>\n\n\n\n<p><strong>ntp commands<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># query\n$ \/usr\/sbin\/ntpdate -q somehost\n# update\n# \/usr\/sbin\/ntpdate -u somehost\n# show peers\n$ \/usr\/sbin\/ntpq -p\n# show associations\n$ \/usr\/sbin\/ntpq -c \"assoc\"\n# show rl vars for particular association\n$ \/usr\/sbin\/ntpq -c \"rl assID\"\n# trace NTP back to primary source\n# \/usr\/sbin\/ntptrace -dv someserver<\/pre>\n\n\n\n<p><strong>Linux \u2013 view failure counts for all users<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># faillog -a<\/pre>\n\n\n\n<p><strong>Linux \u2013 show all pam_tally stats (failed login tally) \u2013 see Tip 0041<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># pam_tally<\/pre>\n\n\n\n<p><strong>Solaris \u2013 view PROM variables<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eeprom | more<\/pre>\n\n\n\n<p><strong>Solaris \u2013 echo ignoring backslash-escape sequences<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">-bash-3.00$ \/usr\/ucb\/echo \"c:\\tuser\\abc\"\nc:\\tuser\\abc\n-bash-3.00$<\/pre>\n\n\n\n<p><strong>Solaris 10: Is syslog enabled?<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">-bash-3.00$ svcs -a | grep system-log<\/pre>\n\n\n\n<p><strong>Linux force NIC speed<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mii-tool -F 100baseTx-FD eth0\n# note - better to use ethtool as mii-tool only supports up to 100\/FD\nethtool -s eth0 speed 100 duplex full autoneg off\n# also, to use 1000\/FD you must leave autoneg enabled<\/pre>\n\n\n\n<p><strong>crypt<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crypt &lt; encrypted.file &gt; unencrypted.file\n# crypt will prompt you for your key.<\/pre>\n\n\n\n<p><strong>find the square root of a number<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ echo \"sqrt(4)\" | bc\n2<\/pre>\n\n\n\n<p><strong>Solaris 10: to enable tcp tracing on telnet<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">inetadm -m svc:\/network\/telnet:default tcp_trace=TRUE<\/pre>\n\n\n\n<p><strong>Solaris 10: inetadm \u2013 list properties for selected instance<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">-bash-3.00$ \/usr\/sbin\/inetadm -l svc:\/network\/login:rlogin<\/pre>\n\n\n\n<p><strong>Solaris 10 \u2013 show faults<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># fmadm faulty\n# fmdump -v<\/pre>\n\n\n\n<p><strong>Linux \u2013 Change the label on an ext2 filesystem<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">e2label labelname<\/pre>\n\n\n\n<p><strong>list available signals<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kill -l<\/pre>\n\n\n\n<p><strong>Linux \u2013 check Serial port config<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># setserial -g -a \/dev\/ttyS0<\/pre>\n\n\n\n<p><strong>set modification date on a file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">touch -t DATE file # where DATE is in format [[CC]YY]MMDDhhmm[.SS]<\/pre>\n\n\n\n<p><strong>octal dump of file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">od -c file\nod -bc file<\/pre>\n\n\n\n<p><strong>set system date on RHEL<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">date MMDDhhmm\nhwclock --systohc<\/pre>\n\n\n\n<p><strong>send syslogd a HUP <\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">killall -1 syslogd\t;; linux\npkill -HUP syslogd\t;; solaris<\/pre>\n\n\n\n<p><strong>fsck ext3 filesystem automatically answering Y to questions<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">fsck.ext3 -y \/dev\/hdb1<\/pre>\n\n\n\n<p><strong>Linux \u2013 view PCI and USB bus attached devices<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsusb\nlspci<\/pre>\n\n\n\n<p><strong>Solaris 10 \u2013 disable a service<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># view dependencies\nsvcs -a | grep gss\nsvcs -d svc:\/network\/rpc\/gss:default\t\t;; gss depends on\nsvcs -D svc:\/network\/rpc\/gss:default\t\t;; depend on gss\nsvcadm -v disable svc:\/network\/rpc\/gss:default\nsvcs -xv svc:\/network\/rpc\/gss:default\nsvsa -a | grep gss<\/pre>\n\n\n\n<p><strong>Linux \u2013 grep a gzipped file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">zgrep \"searchterm\" foo.gz<\/pre>\n\n\n\n<p><strong>show plain text strings within a binary file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">strings \/path\/to\/binary<\/pre>\n\n\n\n<p><strong>stop and start named<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">rndc stop\n\/etc\/init.d\/named start<\/pre>\n\n\n\n<p><strong>strace<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">strace -f -o \/var\/tmp\/trace.out -p 554 &amp;<\/pre>\n\n\n\n<p><strong>diff<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">diff file1 file2<\/pre>\n\n\n\n<p><strong>using expr with multiplication<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ expr $a \\* $b\n20<\/pre>\n\n\n\n<p><strong>Switch between postfix and sendmail on RHEL<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/sbin\/system-switch-mail\n# rpm -qa | egrep -i 'sendmail|postfix|switch-mail'\nsystem-switch-mail-0.5.25-3\nsendmail-8.13.1-2\npostfix-2.1.5-4.2.RHEL4<\/pre>\n\n\n\n<p><strong>Linux \u2013 view PCI devices<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lspci<\/pre>\n\n\n\n<p><strong>Linux \u2013 View USB devices<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lsusb<\/pre>\n\n\n\n<p><strong>Linux \u2013 Switch to another virtual console<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Ctrl-Alt-F1<\/pre>\n\n\n\n<p><strong>Solaris \u2013 display nickname to device translation table for eject<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">eject -n<\/pre>\n\n\n\n<p><strong>Display all who information<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">who -a<\/pre>\n\n\n\n<p><strong>join all lines in a file using paste<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">paste -d ' ' -s file1 &gt; file2<\/pre>\n\n\n\n<p><strong>Remove archived files that are over one day old<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">rm -f `find \/archive\/ -mmin +1440 -print`<\/pre>\n\n\n\n<p><strong>awk substrings<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">echo \"1234567890abcdefghij\" | awk '{print substr($0,3,1) \" \" substr($0,11,8)}'\n\nSome misc. Solaris one-liners \n\n<strong>print PICL tree gathering temperature sensor info<\/strong>\n\n\/usr\/sbin\/prtpicl -c temperature-sensor -v<\/pre>\n\n\n\n<p><strong>Clean up \u201cdangling\u201d \/dev links<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">devfsadm -C<\/pre>\n\n\n\n<p><strong>Installation log file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/var\/sadm\/system\/log\/install_log<\/pre>\n\n\n\n<p><strong>detailed package info<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pkginfo -l installed_package_name\npkginfo -l -d some_unistalled_pkg.pkg<\/pre>\n\n\n\n<p><strong>egrep for two things<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">egrep 'THIS|THAT' somefile<\/pre>\n\n\n\n<p><strong>set erase char<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">stty erase ^H<\/pre>\n\n\n\n<p><strong>run syslogd in debug mode to check configuration file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/etc\/init.d\/syslog stop\n\/usr\/sbin\/syslogd -d\n^C\n\/etc\/init.d\/syslog start<\/pre>\n\n\n\n<p><strong>pkgchk<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">-bash-3.00$ \/usr\/sbin\/pkgchk -lp \/usr\/bin\/man\nNOTE: Couldn't lock the package database.\nPathname: \/usr\/bin\/man\nType: linked file\nSource of link: ..\/..\/usr\/bin\/apropos\nReferenced by the following packages:\n        SUNWdoc\nCurrent status: installed<\/pre>\n\n\n\n<p><strong>svcs<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># svcs -xv svc:\/network\/rpc\/meta:default\nsvc:\/network\/rpc\/meta:default (SVM remote metaset services)\n State: disabled since Mon Jan 16 12:29:14 2006\nReason: Disabled by an administrator.\n   See: http:\/\/sun.com\/msg\/SMF-8000-05\n   See: man -M \/usr\/share\/man -s 1M rpc.metad\nImpact: This service is not running.\nsvcs -Dv meta\t\t\t\t\t;; that depend on this\nSTATE          NSTATE        STIME    CTID   FMRI\ndisabled       -             12:29:09      - svc:\/system\/mdmonitor:default\nsvcs -dv meta\t\t\t\t\t;; this depends on\nSTATE          NSTATE        STIME    CTID   FMRI\nonline         -             12:29:12     30 svc:\/network\/rpc\/bind:default<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Version:1.0 StartHTML:000000196 EndHTML:000060386 StartFragment:000010516 EndFragment:000060318 StartSelection:000010516 EndSelection:000060312 SourceURL:http:\/\/blogs.iabsolute.com\/?p=592 command line tips and tricks \u00ab Blogs IT Networking These tips are in no particular order\u2026. Watch a log file as its appended to tail -f logfile Redirect a man page to &hellip; <a href=\"https:\/\/blog.iabsolute.com\/?p=288\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,2],"tags":[],"class_list":["post-288","post","type-post","status-publish","format-standard","hentry","category-command-line-my-linux","category-my-linux"],"_links":{"self":[{"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/posts\/288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=288"}],"version-history":[{"count":1,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/posts\/288\/revisions"}],"predecessor-version":[{"id":289,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=\/wp\/v2\/posts\/288\/revisions\/289"}],"wp:attachment":[{"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.iabsolute.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}