echo Solaris Cheat Sheet
echo this Cheat Sheet contains quick copy paste stuff for Sun's Solaris OS
echo caveat ... some of the stuff has been copied from my Linux Cheat Sheet
echo and you know Linux is not Unix ; )
echo record the current session via script
script -a /export/home/yogeorgi/SCRIPTSLOGS/`date +%Y%m%d%H%M%S`_script.log
echo /usr/bin is for normal user executables, /usr/sbin is for superuser executables, /usr/sfw is for external software (like gnu one), but provided with bundle of OS, /usr/ccs is for development utilities, usually not need for daily tasks like make, lex, yacc, sccs
echo where I have been lately ?
history | grep cd
echo take the last 5 commands for faster execution to the temp execution script
tail -n 5 /root/.bash_history >> /var/run.sh
echo I saw the command cd /to/some/suching/dir/which/was/very/long/to/type
so I redid it and saved my fingers
!345
history >history.txt ---- echo the last 1000 commands into a history.txt file
echo send that file to myself
cat history.txt | mail -s "test file sending" -c mail1@com
yordan.georgiev(boom)gmail.com
echo remove all trealing spaces from the history file works for TextPad
^([ ]*)([0-9]*)(.*)$
\3 --- replace with the pure commands
history | gawk -F1 'BEGIN {FS=" "};{print $2 , $3}' | less
echo display the history withouth the line numbers ...
history | perl -i -pe 's/^([ ]*)([0-9]*)(.*)$/$3/gi'
vi fileName anotherFile
echo how to deal with command outputs
command | filtercommand > command_output.txt 2>errors_from_command.txt
echo Hint after the less filter pressing s will prompt you for saving the
output to a file ...
echo find all files and folders containing the word linux and pipe it to
the less for easier viewing
find / -name "linux" | less
echo find the files having os somewhere in their names and only those having linux
find . -name '*os*' | grep linux | less
echo find all xml type of files and display only the rows having wordToFindInRow
find . -name '*.xml' -exec cat {} \;| grep wordToFindInRow | less
echo The ultimate "find in files"
find / -name '*bash*' -exec grep -nH tty {} \;
echo or even faster , be aware of "funny file names xargs -0
find / -name '*bak' | xargs grep -nH tty
echo find and replace recursively
find . -name '*.html' -print0 | xargs -0 perl -pi -e 's/foo/bar/g'
echo putty , bash shortcuts
Ctrl + A --- Go to the beginning of the line you are currently typing on
Ctrl + E --- Go to the end of the line you are currently typing on
echo how-to mount an usb stick
echo remember to change the path other wise you will get the device is busy errror
mkdir /mnt/usbflash
mount /dev/sdb1 -t vfat /mnt/usbflash
umount /mnt/usbflash
head -n 20 tooLongFile -- display the first 20 lines of the file
echo change the uggly prompt
vi /etc/bashrc
echo get a nice prompt
PS1="\u@\h \t \w\n\\$ "
echo how to restart a process initiated at startup
/etc/rc.d/init.d/sendmail start | stop | status | restart
echo see all the rules associated with the firewall
iptables -L -v
gunzip *file.zip
tar -xvf file.tar
To access the server download winscp.exe:
echo start winscp with a stored session from Win box
cmd /c start /max winscp oracle@192.168.255.12
echo To start remote session click on the putty screen , configure putty
settings to pull full screen with alt + Enter
echo right click on the title bar , settings , change the font , copy
paste from and to the terminal window text
echo how to ensure the sshd daemon is running
ps -ef | grep sshd
echo User and group management
useradd -p winscppass -r winscp -d /home/winscp --- to add a user with
specifig home directory name and pass
luserdel winscp --- delete the user
gpasswd: administer the /etc/group file
groupadd: Create a new group
groupmod: Modify a group
groupdel: Delete a new group
useradd: Create a new user or update default new user information
usermod: Modify a user account
userdel: Delete a user account and related files
echo how to kill process interactively
killall -v -i sshd
echo disk usage of users under the /home directory
du --max-depth=1 /home | sort -n -r
echo the most efficent way to search your history is to hit Ctrl R and
type the start of the command. It will autocomplete as soon as there’s
a match to a history entry, then you just hit enter. If you want to
complete the command (add more stuff to it ) use the right arrow to
escape from the quick search box ...
How to install Perl modules
gzip -dc yourmodule.tar.gz | tar -xof -
perl Makefile.PL
make test
make install
How to see better which file were opened , which directories were visited
type always the fullpath after the vi - use the $PWD env variable to
open files in the current directory , thus after opening the file
after:
vi /$PWD , press tab to complete the name of the current directory ,
type the name of the file
thus after
history | grep vi
the full list of opened files is viwed .
of course the same could be seen from the /home/username/.viinfo file /files
where to set the colors for the terminal (if you are lucky to have one
with colors; )
/etc/DIR_COLORS
open a file containing "sh" in its name bellow the "/usr/lib" directory
:r !find /usr/lib -name *sh*
go over the file and gf
uname -a --- which version of Linux I am using
rmp -qa --- show all installed packages
passwd [username] --- change the password for the specified user (own password)
How to copy paste text in the putty window from client to server -
click the right button of your pointing device
How to copy paste text from the putty window from server to client -
right-click the window title and select copy all to Clipboard.
To restart a service
service sshd restart
service --status-all --- show the status of all services
chown -R root:nortel Directory
echo perform action recursively on a set of files
find . -name '*.pl' -exec perl -wc {} \;
$ for file in *
> do cp $file $file.bak
> done
$ for file in `ls -R` ; do cp $file $file.bak; done
echo make Bash append rather than overwrite the history on disk:
shopt -s histappend
echo henever displaying the prompt, write the previous line to disk:
PROMPT_COMMAND='history -a'
gpm -- general "cut and paste" server
sh ScriptWithALotOfErrorMessages.sh | tee -a whereToSaveIt.log
echo run first the following command
$ script -a The_Log_File_To_Append_as_well_as_display_diagnostig_messages.log
echo than run the script
sh ScriptWithALotOfErrorMessages.sh
tr '\t' ',' < FileWithTabs > fileWithCommas
df -k --- disk usage
echo Allow access to the box from only one ip address
IPTables=/sbin/iptables
$ IPTables -A INPUT -s <Insert other Origin ip here> -p tcp
--source-port xxx -j ACCEPT
$ IPTables -A OUTPUT -d < Insert other Origin ip here > -p tcp
--destination-port xxx-j ACCEPT
echo has the root logged in over an unencrypted network ?
echo last | grep “^root “ | egrep –v “reboot|console” | more
echo start command in the background
command1 &
echo start another one
command2 &
echo bring the command in the foreground
fg %1
echo create a backup file based on the timestamp on bash
cp fileName.ext fileName.ext.`date +%Y%m%d%H%M%S`.bak
echo which box I am workign currently
uname -a
echo who am I on this machine
id
echo the current time is( in yyyy.mm.dd HH:MM:SS format )
echo `date +%Y.%m.%d. --- %H.%M.%S`
If you have GNU Parallel http://www.gnu.org/software/parallel/ installed you can replace xargs with parallel and get it done faster:
ReplyDeletefind . -name '*.html' -print0 | parallel -0 perl -pi -e 's/foo/bar/g'
Also parallel (without -0) deals nicely with funny names. -0 is only required if the names contain newline (\n).
See the video http://www.youtube.com/watch?v=LlXDtd_pRaY to learn more in 9 minutes.