Difference between revisions of "Linux2"
Line 50: | Line 50: | ||
= Automating things = | = Automating things = | ||
"batch files" | "batch files" | ||
+ | |||
+ | <pre> | ||
+ | $ cd example2 | ||
+ | </pre> | ||
+ | |||
+ | convert is a small utility from the program Imagemagick which allows the manipulation of images at the command line. For instance, to resize an image to 2000 pixels max and rename it, you could use: | ||
+ | |||
+ | <pre> | ||
+ | $ convert image-large.jpg -resize 2000 image-2000.jpg | ||
+ | </pre> | ||
+ | |||
+ | Now let's say | ||
+ | |||
+ | <pre> | ||
+ | #!/bin/bash | ||
+ | |||
+ | echo "Create thumbnails." | ||
+ | convert image-large.jpg -resize 2000 image-2000.jpg | ||
+ | convert image-large.jpg -resize 1000 image-1000.jpg | ||
+ | convert image-large.jpg -resize 500 image-500.jpg | ||
+ | convert image-large.jpg -resize 100 image-100.jpg | ||
+ | convert image-large.jpg -resize 10 image-10.jpg | ||
+ | |||
+ | echo "Move thumbnails." | ||
+ | mkdir thumbnails | ||
+ | mv image-*0.jpg thumbnails/ | ||
+ | |||
+ | echo "Compress thumbnails." | ||
+ | zip -r thumbnails thumbnails | ||
+ | |||
+ | echo "Clean up." | ||
+ | rm -rf thumbnails | ||
+ | |||
+ | echo "All done." | ||
+ | </pre> | ||
=Launching, monitoring and controlling jobs= | =Launching, monitoring and controlling jobs= |
Revision as of 12:16, 27 February 2008
Leveraging the power of the Linux command line
Getting the content for this practical
The necessary files for this practical are hosted in a version control system. To obtain them, just type the following command:
$ svn export http://source.ggy.bris.ac.uk/subversion-open/linux2/trunk linux2
This will fetch all necessary files and put them in a folder called linux2/. Ignore the cryptic syntax so far, an introduction to version control using subversion (svn) will be given later on.
Output redirection
In the Linux1 practical, we have discovered a few Linux commands. Some of these commands use input from the keyboard (standard input) and output data to the screen (standard output). It is possible to (a) redirect input and output and (b) link commands together to perform complex actions.
Redirecting standard input and output
The diff command outputs to the screen.
$ diff file1 file2
$ diff file1 file2 > diff12.txt $ diff file2 file3 > diff23.txt
$ cat diff12.txt diff23.txt > diff.txt
$ diff file1 file2 > diff.txt $ diff file2 file3 >> diff.txt
It is also possible to redirect the input. For instance consider the following
Pipelines
pipes between simple commands
ls -l | more
diff file1 file2 | tail
grep -i scene | wc
Automating things
"batch files"
$ cd example2
convert is a small utility from the program Imagemagick which allows the manipulation of images at the command line. For instance, to resize an image to 2000 pixels max and rename it, you could use:
$ convert image-large.jpg -resize 2000 image-2000.jpg
Now let's say
#!/bin/bash echo "Create thumbnails." convert image-large.jpg -resize 2000 image-2000.jpg convert image-large.jpg -resize 1000 image-1000.jpg convert image-large.jpg -resize 500 image-500.jpg convert image-large.jpg -resize 100 image-100.jpg convert image-large.jpg -resize 10 image-10.jpg echo "Move thumbnails." mkdir thumbnails mv image-*0.jpg thumbnails/ echo "Compress thumbnails." zip -r thumbnails thumbnails echo "Clean up." rm -rf thumbnails echo "All done."
Launching, monitoring and controlling jobs
Background, bg, jobs, fg, nohup, top, kill
Shell Scripting
Environment Variables
SHELL PWD PATH (LD_LIBRARY_PATH)
Uploaded example scripts for:
- Environment Variables
- Conditionals
- For loops
- Functions
- Arithmetic
Text Processing
sed, awk.