" Below is a list of command line tricks I've found to be very useful in web development that a surprising number of web
developers don't know about.
1. ln -s /some/destination name_of_link
This is pretty straightforward: it'll create a symbolic link from name_of_link to /some/destination. If I'm sitting in
/www/matthew/ and I entered the above command, a new file will be created inside that directory that moves the user to
/some/destination if they CD to name_of_link. (It's a shortcut, basically).
If I'm working on a web server where the docroot is buried deep in a directory structure, I'll often create a symbolic
link in something like /www to save myself a few keystrokes when accessing it.
Also, apache won't follow symbolic links unless you tell it to do so using the following directive: Options
+FollowSymLinks
2. tail -f /some/file
This tails a file: it'll read what's at the end and output it to your terminal. The -f parameter tells it to keep
outputting as the file grows. I use this a lot when examining log files that are constantly being written to.
3. ctrl+z and bg
ctrl+z is the long lost brother of ctrl+c. It's a signal that tells the process to suspend execution, while ctrl+c
terminates it. Ctrl+z is useful if you execute a process but you want to get control of your shell; it'll suspend the
process and send it to the background. Think of ctrl+z like minimizing a window, except once it's minimized it's not
doing anything anymore. If you want the process to stay in the background but continue running, that's where bg
(background) comes in: typing bg once a process has been suspended makes the process resume but still keeps it in the
background.
I often combine ctrl+z and bg with tail:
shell> perl -e 'while() { print "."; sleep(1); }' > bunch_of_dots.log
[hit ctrl+z, execution is suspended]
shell> bg [process is now in the background and running]
shell>tail -f bunch_of_dots.log [show me the printed dots]
4. fg and jobs
fg is used if you background a process but want to bring it to the foreground. If you have multiple processes in the
background, type 'jobs' into your terminal to see them all. This will display a list of processes that are in the
background with each process assigned a number (Note: these are not the same as pids). Typing fg [some number] will
resume the process you sent to the background where [some number] matches the number reported by 'jobs.'
A good example of using fg is if you're working with an interactive program, such as the mysql command line, but you
want to drop back to the shell.
mysql>SELECT foo FROM bar;
mysql> [hit ctrl+z]
[1]+ Stopped
shell>pwd /home/matt/stuff
shell>jobs
[1]+ Stopped mysql -u matt -p matts_db
shell>fg 1
mysql>[hooray, we're back in the mysql command line]
You can omit the job number when running 'fg,' it'll just foreground the first process you sent to the background. So
if you only have one process in the background you can just type 'fg' without any extra numbers.
5. Hit the freakin tab key!
Assuming your shell is configured properly, hitting tab will auto-complete with whatever it thinks you need. I've
encountered a surprising number of developers who don't know about this and move around servers at glacial speeds. If
you aren't familiar with the tab auto-complete, get to a terminal right now and type cd [tap the tab key], you should
see a list of available files or commands.
6. scp
This securely copies a file across a network using SSH for data transfer. For example:
scp
[email protected]:~/secret_stuff /some/destination
This would connect via SSH to example.com as the user 'matt' and copy the file 'secure_stuff' from my home directory on
example.com to /some/destination on the machine I'm currently on. It's saved me a ton of time when transferring
sensitive files from one machine to another.
..."
Web Developer command line
tricks
Kommentare