Notes by Dr. Xi
Displaying keyword search results 1 - 10
Created by Dr. Xi on February 24, 2012 13:01:01
Last update: February 24, 2012 13:01:01
To zip all files under js and css , but exclude the svn files:
$ zip -r css-js.zip css js -x '*.svn*'
Created by Dr. Xi on January 06, 2012 13:44:55
Last update: January 06, 2012 13:44:55
To exclude CVS directories:
grep -R -l --exclude-dir=CVS 'string_to_find‘ src
...
To exclude .svn directories:
grep -R -l --exclude-dir=.svn 'string_to_find‘ src...
Created by Dr. Xi on September 30, 2011 15:34:47
Last update: September 30, 2011 15:34:47
A naive try would be something like this:
$ nc -l 8082 | nc remote_host 80 Yes, it does forward the request from local port 8082 to remote_host:80 , but the response is dumped to stdout , not routed back to the client as expected. Using a named pipe makes it work: $ mkfifo backpipe $ nc -l 8082 0<backpipe | nc ... Use tee to get a glimpse of the response through the pipe (I wasn't able to find a way to dump the request): $ nc -k -l 8082 0<backpipe | nc localhost 80 | tee... The GNU netcat has a different syntax than the stock nc . It also supports different switches. To listen to port 1234: $ netcat -l -p 1234...
Created by Dr. Xi on February 17, 2011 12:34:58
Last update: August 10, 2011 09:04:32
String comparison operators: Operator Meaning -n str the length of str is nonzero. -z str the length of str is zero (0). str1 = str2 str1 and str2 are the same (note one equal sign, not two!). str1 != str2 str1 and str2 are not the same. str str is not a null string Examples:
# empty string is not null if [ '' ]; then ... Numerical comparisons ( integer expressions only! ): Operator Meaning int1 -eq int2 int1 and int2 are numerically equal int1 -ne int2 int1 and int2 are numerically NOT equal int1 -gt int2 int1 is greater than int2 int1 -ge int2 int1 is greater than or equal to int2 int1 -lt int2 int1 is less than int2 int1 -le...
Created by Dr. Xi on June 20, 2011 15:18:06
Last update: June 20, 2011 15:18:06
Perl does not have built-in functions to get the base name or dir name from a file path. But on the Unix platforms we can rely on the executables basename and dirname .
#!/usr/bin/perl
$f = '/A path with/space "/file...
The quotes, escapes, and chomp are necessary:
# This fails when there's a space in $f
$base =...
Created by Dr. Xi on March 28, 2011 11:11:33
Last update: March 28, 2011 11:13:21
grep is a versatile command with many variations (grep, egrep, fgrep, then various implementations). It uses a regula expression (regex) pattern to filter input. But then there are basic and extended flavors of regex - leading to even more confusion. And, beware that there are lots of bad examples of regex in the wild... There are two critical questions to ask when you use grep: which grep implementation are you using? what is the flavor of the regex? Here are some examples for gnu grep v2.7:
# Find all numbers (no decimal point), basic regex... Use the -o flag to show only the matching part instead of the whole matching line: grep -o -E '\b[0-9]{2}\b' The good thing about the gnu grep is that it...
Created by Dr. Xi on February 28, 2011 12:29:19
Last update: February 28, 2011 12:30:40
The Unix shell passes these parameters to the shell script:
Variable Meaning
$* A single string representing all command line arguments separated by $IFS (internal field separator, usually a space)
$@ A sequence of strings representing the command line arguments.
$1,$2...$n $1 is the first argument, $2 is the second argument, and so on...
$0 The name of the script itself.
$# The number of arguments.
Example shell script ( sharg.sh ):
#!/bin/sh
echo $# arguments passed to $0: $@
...
Output for ./sharg.sh "a b c d" :
1 arguments passed to ./sharg.sh: a b c d
here ...
Output for ./sharg.sh a "b c" d :
3 arguments passed to ./sharg.sh: a b c d
here ...
Created by Dr. Xi on February 17, 2011 14:06:22
Last update: February 17, 2011 14:06:22
This is the crontab to run a cron job every 15 minutes:
*/15 * * * * /path/to/executable >/redirect/output...
or,
0,15,30,45 * * * * /path/to/executable >/redirect/...
In general, the format is:
minute hour day_of_month month day_of_week command
Valid values are:
Field Value
minute 0-59
hour 0-23
day of month 1-31
month 1-12
day of week 0-6 (Sunday = 0)
Reference: crontab(5) - Linux man page
Created by Dr. Xi on February 17, 2011 13:23:16
Last update: February 17, 2011 13:23:16
To find the PID of the tomcat instance that is currently running:
ps -ef | grep java | grep tomcat | awk '{print $2}...
Created by Dr. Xi on February 17, 2011 12:59:47
Last update: February 17, 2011 12:59:47
Operator Meaning -e file1 file1 exists -b file1 file1 is a block special file -c file1 file1 is a character special file -d file1 file1 is a directory -f file1 file1 is a regular -g file1 Set Group ID (sgid) bit is set for file1 -h file1 file1 is a symbolic link -k file1 Sticky bit is set for file1 -L file1 file1 is a symbolic link -p file1 file1 is a named pipe (FIFO) -r file1 file1 is readable by the current process -s file1 file1 has a size greater than zero. -t FileDescriptor FileDescriptor is open and associated with a terminal. -u file1 Set User ID (suid) bit is set for file1 -w file1 Write flag (w) is on for file1 -x file1...