- That English paper you were writing on the works of Lewis Carroll is due in a few hours and you have forgeotten the name of the text file in which you had written a number of quotations to use in your paper. Luckily, you know that the file is somewhere in your
~/UnixCoursedirectory or in some subdirectory directly or indirectly within it. You also know that the file name ended in ‘
.txt’. You are pretty sure that you could recognize the file from just the first line.
You seem to recall having heard that there is a Unix command
headthat will print the first few lines of any file and suspect that, with the proper parameters, it could be used to print just the first line. (Hint – part of your task in this question is to show that you can use the built-in Unix help facilities.)
But you really don’t want to type that command out for every file or even every directory. What command would you give to produce a listing of the names of all the text files (as absolute paths) in
~/UnixCourseor its subdirectories (possibly nested several layers deep) followed immediately by the first line of text within that file? E.g., to produce a listing looking like this:
in the course of human development /home/yourname/UnixCourse/Quotations/bar.txt Curiouser
Note that the output format must look like the example above. (That’s not unreasonable, as one of the things you should have learned from this lesson is that the output of one command is often fed into later commands, which must be able to read it.) In particular, all files should be listed and absolute paths and solutions that add extraneous characters around the file name (e.g., << or ==>) are not correct.
- Every time you issue a command in Linux, a new process is launched to run that command. Some of these processes end immediately upon completion of the command. Some may hang around or may spawn additional processes of their own.
ps -Afwill display a listing of all processes running on the same machine as you are. This includes processes being run by lots of other people. Part of the information shown is the name of the command that launched the process. It also will show the login name of the account that launched that process. Try it now and examine its output.
One of the most common processes that you will see is
sshd, the process that accepts an incoming ssh connection like the ones that you have opened for this assignment.
What command would you enter to get a count of the number of
sshdprocesses running on the machine where you are logged in?