Skip to main content

Unix - useful command line tools

This post lists unix command line tools which are very helpful during a work with these systems.

alias create alias for a command
// use aliast to a command
alias ls='ls -ltr'
awk
// split text into tokens using '.' separator
echo testFile.txt | awk -F'.' '{print$2}' // prints 'txt'
chmod set access privileges to a file
// owner rwx, group r-x, others ---
chmod 750 fileName.txt

Meaning of numbers: owner, group, others (respectively)
4 - read
2 - write
1 - execute
find search for files
// search for all files in a current directory and display lines with a 'stringToFind'
find . -name "*.*" | xargs grep 'stringToFind'

// search for a file and skipp all info about errors
find . -name 'testFile.txt' 2> /dev/null
grep use regexp to display lines from a file
// display all lines without a # sign 
grep ^[^#] testFile.txt

// display all lines with a # sign
grep ^# testFile.txt
gzip compress and decompress files
// display all content of an archive as a file
gzip -cd file.tar.gz | less

head display top lines of a stream or a file (default 10)
// display first 10 lines of a file
head testFile.txt

// display 15 lines of a file
head -n15 testFile.txt

// display 3 head lines of *.txt from a current directory and show their file names
head -n3 *.txt

// display 3 head lines from *.txt from a current directory without file names
head -q -n3 *.txt // -q  means quiet mode
host DNS lookup utility
//get hostname based on IP
$ host 192.168.0.10
kill kill processes
// kill process with a specified PID
kill -9 PID

// kill all user processes
kill -11 -1
less
// display specified file
less testFile.txt
mv move files and folders
mv path/testFile.txt path2
nslookup DNS lookup utility
//get IP based on hostname  
nslookup localhost 
ps display processes of an operation system
// display processes of a current user
ps -fu userName

// 10 most memory-consuming processes
ps -o "pid vsz rssize" -fu ilink | sort -n -r -k 2 | head -20
scp copy files between remote locations over SSH
// copy files to a remote location to a remote location
scp /export/home/* user@host:/export/home/

// copy directories with files
scp -r /path/* user@host:/path/
sed process text streams
// display a text from a middle of a file from a line in a range
sed -n '15,20p' testFile.txt

source send commands from a file to shell
// send commands from a .bashrc file to shell
source .bashrc
tail display bottom lines from a stream or a file (default 10)
//opposite version of head
tar archive files
// tar (zip) a content of a directory into tar.gz file
tar -pczf web.tar.gz web/

// untar(unzip)
tar xvfz web.tar.gz
telnet connect by telnet protocol
// conect to a remote location
telnet host port

Exiting telnet: 
Ctrl + ] (escape character)
Ctrl + d (close conection)
touch change a date of a file modification to a current one or create new file if not exists
touch testFile.txt
uniq return only unique lines
less testFile | uniq 
wc word count
// count lines
cat testFile.txt | grep 'toSearchString' | wc -l

// count words
cat testFile.txt | grep 'toSearchString' | wc -w

Comments

Popular posts from this blog

Deploying Axis2 web service as ROOT application on Tomcat

By default Axis2 services are available on http://host:8080/axis2/services/*. If you want to remove axis2/services part from the service endpoint and access your service by http://host:8080/serviceName/* 1. Overide default Axis2 servlet mapping services in web.xml file. AxisServlet /serviceName/* 2. Remove an application name value by deploying axis2 implementation (from war distribution axis2-1.X.X-war.zip ) as ROOT application. Info: War distribution contains application with above structure: axis2-web META-INF org WEB-INF     classes     conf     lib     modules     services         put here *.aar files to deploy WS     web.xml (manually created) web.xml file Apache-Axis2 AxisServlet Apache-Axis Servlet org.apache.axis2.transport.http.AxisServlet ...

Java read file (entire or line by line)

Four ways to read a file in java. I have tested an execution time of them using 1,37 MB text file with 108825 lines. Result of tests is in a first comment of each method and is specified in milliseconds. 1 Read entire file at once 1.1 FileInputStream with read() // execution time: 7 - 8 ms ByteArrayOutputStream buffer = new ByteArrayOutputStream(); File file = new File("C:\\test.txt"); InputStream is = new FileInputStream(file); byte[] temp = new byte[1024]; int read; while ((read = is.read(temp)) >= 0) { buffer.write(temp, 0, read); } byte[] data = buffer.toByteArray(); System.out.println(new String(data)); PS: remember that read(byte[] b) doesn't do what you think it does -> link 1.2 FileInputStream with readFully() // execution time: 11 - 12 ms File file = new File("C:\\test.txt"); DataInput input = new DataInputStream(new FileInputStream(file)); byte[] bufferArray = new byte[(int) file.length()]; input.readFully(bufferArray); String value = new ...

Convert Source to String

import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXSource; import org.xml.sax.InputSource; public class DataSourceTest { public static void main(String[] args) throws IOException { // created Source InputSource inputSource = new InputSource(new StringReader( " \n \n \n ")); Source source = new SAXSource(inputSource); // read Source SAXSource saxSource = (SAXSource) source; InputSource inputSourceReader = saxSource.getInputSource(); Reader reader = inputSourceReader.getCharacterStream(); BufferedReader buffereRreader = new BufferedReader(reader); String read = null; while ((read = buffereRreader.readLine()) != null) { System.out.println(read); } } }