Jun 24, 2014

Top 17 Unix commands Java developers use frequently

Unix for software developers

1.Top 17 Unix commands Java developers use frequently 2.History commands 3.Shell scripting 4. Reading from a file
5.Purging older files 6.Splitting and archiving files 7.Emulator, SSH client 8.Unix commands for developers 9.Unix basic interview Q&A

1. Find with grep to search for files with a certain text. For example, search all properties files where there are "inbox" search texts defined.

$find . -type file -name "*.properties" | xargs grep inbox \{\}; #
$find . -type f -name "*.properties" -exec grep "inbox" {} /dev/null \;

This will recursively search all sub folders as well. Very handy if you are searching for something. The addition of /dev/null is for the grep to consistently print the file name when it finds a match.

If you are searching within a single folder, for example, to list all the log files that have "job-no-300"

grep -l "job-no-300" *.log

To recursively delete .svn folders of a project to remove any links to subversion

find . -type d -name .svn -exec rm -rf {} \;

2. If a log file is too large, split it into smaller files before using less -200 xaaaa.

split -b 1m -a 3 PUWPD394.20140623.172525.log

files are split into xaaa, xaab, xaaac, etc.

3. Identify the jar file that has a particular class or resource file. For example, to find the jar files that has MyConnection.class filer. Handy for identifying class loading issues for batch job.

find . -name '*.jar' -print0 |  xargs -0 -I '{}' sh -c 'jar tf {} | grep MyConnection.class

4. find all the files that has URLs that are http:// with https:// with the power of sed command

find . -type f -name '*.properties' -exec sed -i 's/http\:\/\//https\:\/\//g' {} \;

5. Create a symbolic link

ln -s

now, -> Handy when you have different environmental properties files, and can use a symbolic link to connect to particular environment like test1, test2, test3, etc.

6. Execute a shell command

$./ -env test1 -logile myapp.log

where -env test1 and -logfile myapp.log are arguments passed to the shell script.

7. Run a shell script in the background even after you log out  the session. For example, kick off a long running batch job.

$nohup  ./ -env test1 -logile myapp.log &

nohup ensures that it runs even after you logout.  and & is for running in the background.

8. change directory, make a new directory, create an empty file, find the present folder, and list files.

$ cd folder1

$ mkdir folder2

$cd folder2

$touch test.txt   #new file

$pwd    #list current folder

$cat test.txt   #display contents
$more test.txt   #paginates

$ls -ltr
$ls -ltr *300* #all jobs with job number 300 

9. Copy or move files

$cp /test3/*.txt /test1/
$cp /test3/a.txt /test/b.txt # copy a file with another name
$mv /test3/a.txt /test/b.txt

If you mv, the source file will be deleted. You can use mv to rename a file as well.

10. history command to reuse some of the commands you already used.


$history | grep mkdir



11. Check a log file.

$less -200 myapp.log
tail -f myapp.log

shift+G to go to bottom of the file
g to go to beginning of the file
/INFO to search for "INFO"
:q to quit

12. Edit a file

$vi myapp.txt

a -> append
x --> delete a character

13. Java process control commands

$ps -ef | grep java
$kill-3 12345  #kill a process with pid 12345 

14 Network connections and sockets info. You can identify ports already in use.

$netstat -a | grep 444

15. archive the files in the current folder with tar.

tar cvzf myapp.tgz .   #z means gzip. c - create
tar xvzf myapp.tgz     #untar and un gzip x - extract

16. Transfer files with scp.

scp myappl.tgz   # copy to a server
scp .   # copy from a server

17. Commands to verify network connectivity

$ping hostname
$telnet hostname 25 #hostname and port number

This was meant to be a quick list. You can search for more detailed examples in this blog.



Post a Comment

Subscribe to Post Comments [Atom]

<< Home