LPI Linux Certification/LPI-101 Exercises results

From Wikibooks, open books for an open world
Jump to: navigation, search
LPI logo

Hardware & Architecture[edit]

Configure Fundamental BIOS Settings[edit]

To show the amount of physical RAM available:
free
or
cat /proc/meminfo | grep MemTotal
Which are the devices that are sharing an interrupt line?
cat /proc/interrupts | more
How many PCI buses and bridges are there?
lspci | wc -l
Are there any PCI/ISA bridges?
lspci | grep 'PCI\|ISA'
What is the option with lspci to list all the Intel PCI devices?
lspci -d 8086:*
What is the command to set you IDE hard drive in read only mode?
hdparm -r1 <device>
What is the command to turn on/off the disk cache hard drive?
hdparm -W1 <device>    hdparm -W0 <device>
What does the setpci utility do?
setpci is a utility for querying and configuring PCI devices.
What would be the command to write a word in register N of a PCI device?
setpci -s 12:3.4 N.W=1
.

Configure Modem and Sound cards[edit]

Setup SCSI Devices[edit]

Setup different PC expansion cards[edit]

Configure Communication Devices[edit]

Configure USB devices[edit]

Linux Installation & Package Management[edit]

Design hard disk layout[edit]

To display periodically the virtual memory usage:
vmstat -n 1

Install a boot manager[edit]

Make and install programs from source[edit]

What steps should you follow to compile and install a program from source?
./configure
make
make install

Manage shared libraries[edit]

Use Debian package management[edit]

To see what will be installed on your computer, use the command:
 dpkg -c package_name.deb
If the package is already installed, you can see also what files were installed:
 dpkg -L package_name

dpkg-reconfigure <package name>

Use Red Hat Package Manager (RPM)[edit]

To see what will be installed on your computer, use the command:
 rpm -qpl package_name.rpm

GNU & Unix Commands[edit]

Working on the command line[edit]

Get information on the useradd and userdel commands.
man useradd
man userdel
Assuming you have $PAGER set to less; Use SPACE to advance by one page, B to go back.

Create two new accounts user1 and user2 and set the passwords to those accounts with the passwd command. As root lock the accounts and check if you can still log in.

What is the command to concatenate files?
cat file1 file2

Declare and Initialize the following environment variables NAME and LASTNAME. Use echo to print them out.
set NAME="Joe"
set LASTNAME="Bloggs"
echo "$NAME $LASTNAME"


Start a new bash (type bash) and check that you can still see those declared variables.
No

Use exec to start a new bash session. Can you still see those declared variables?
Yes

Use date to display the month.

Add a new user named notroot with root's rights and lock the root account.GNU and UNIX Commands

This is a trick question. The only account with root privileges is the one with a UID of zero.

One could alter /etc/passwd so that “root” is called something else, which would have the a similar effect; the account “root” would no longer exist. With the possible exception of translation to a foreign language, I can’t see the point in doing this.

You could set the SUID bit on all files on the file system for that authentic “Redmond style" security but again, why would you want to?



Process text streams using filters[edit]

  1. Use wildcard characters and list all filenames that contain any character followed by 'in' in the /etc directory.
       ls /etc/in*
  2. Use wildcard characters and list all filenames that start with any character between 'a' and 'e' that have at least two more characters and do not end with a number.
       ls [a-e]??[!0-9]
  3. Use wildcard characters and list all filenames of exactly 4 characters and all filenames starting with an uppercase letter. Do not descend into any directory found.
       ls -d [A-Z]???
  4. Use wildcard characters and list all files that contain 'sh' in /bin.
  5. Display your environment variable HOME preceded by the string "$HOME value is:"
  6. Display the contents of $SHELL with two asterisk characters before and after it.
  7. How would you display the following string of characters as is with echo using double quote and \.
         * @ # $ % ^ & * ( ) ' " \
  8. Compose echo commands to display the following two strings:
         * That's what he said!
         * 'Never Again!' he replied.
  9. Display the number of words in all files that begin with the letter 'h' in the /etc directory.
 10. How would you send a 2M (megabyte) file with two 1.44 M floppy. How would you put back together the split file?
 11. What is the command to translate the : delimiter in /etc/password by #?
         cat /etc/password | tr ":" "#"

Perform basic file management[edit]

  1. Compose an interactive command to remove all .tmp files in your home directory. Respond y to every prompt.

rm -i ~/*.tmp

  2. List all the files in the user's home directories ending with .pdf that are bigger than 50 blocks and have not been accessed for a month.

find /home -name "*.pdf" -atime +30 -size +50 -print

  3. Create a file file.h that will contain all the filenames ending with .h found in the /usr directory.

find /usr -name "*.h" > file.h

  4. Do a touch on all the c files found in /usr/src/packages directory.
  5. What are the default permissions when you create a new file and a new directory?
     new file --> 644
     new directory --> 755
  6. How would you create a new file or directory that contains a space in the filename? (Example: 'new dir')
     touch new\ file.txt
     mkdir new\ dir
      
  7. What is the command to remove all the files of types char and block in your home directory?
  8. How would you find the location of the program find?
  9. Delete all files in /tmp which are not owned by root and have not been accessed for a week.

Use streams, pipes, and redirects[edit]

1. Create a file list.bin that will contain all the file names from the /bin directory.

ls /bin > list.bin

2. Write a command that will append the list of files from /usr/local/bin to the file named list.bin and discard any error output.

ls /usr/local/bin >> list.bin 2>/dev/null

3. Split your list.bin file into files that are 50 lines long and remove list.bin.

split -l 50 list.bin
rm -f list.bin

4. From the split files recreate list.bin (but with inversed order).

cat xab xaa > list.bin

7. Write a command that will create a file list.sbin with the contents of /sbin and at the same time display it to standard output.

ls /sbin | tee sbin.txt

8. Create a file that within the filename you include the creation time.

ls -l /sbin > `date +%d_%m_%y.txt`

9. Create a file that will contain all the filenames in reverse order with extension .conf from the /etc directory. ls *.conf

ls /etc/*\.conf > first.txt
tac first.conf > end_list.txt
rm -f first.txt

Create, monitor, and kill processes[edit]

1. How can you control CPU usage for PID 3196

top -p 3196

Modify process execution priorities[edit]

Search text files using regular expressions[edit]

Perform basic file editing operations using vi[edit]

All of the vi commands below must of course be entered in command mode.

  1. vi foo
  2. Most frequently one would use i, but there are other ways of getting into command mode.
  3. ZZ
  4. vi foo
  5. o opens a new line beneath the cursor position and drops you into command mode. i puts you directly into command mode without making the new line, so o is more efficient.
  6. press esc to get out of command mode
  7. :q!

Devices, Linux Filesystems, Filesystem Hierarchy Standard[edit]

Create partitions and filesystems[edit]

Maintain the integrity of filesystems[edit]

Control mounting and unmounting filesystems[edit]

Managing disk quota[edit]

Use file permissions to control access to files[edit]

Manage file ownership[edit]

1.

 chmod u=rwx,g=rwx,o=rx <file>
 chmod u=rwx,g=r,o=r <file>
 chmod u=r,g=r,o= <file>
 chmod u=rwx,g=rx,o=rx <file>
 chmod u=rwx,g=rx,o=rx <file>
 chmod u=rx,g=x,o=x <file>
 chmod u=w,g=r,o=x <file>
 chmod u=,g=,o= <file>
 chmod u=,g=x,o=rwx <file>

2.

 chmod 777 <file>
 chmod 111 <file>
 chmod 421 <file>
 chmod 200 <file>
 chmod 640 <file>
 chmod 711 <file>

3.

 umaskː    0   0   2   7
 binaryː   000 000 010 111
 ̃invertedː 111 111 101 000

File permissionsː Logically AND with 0666

 ̃inverted maskː       111 111 101 000
 default permissionsː 000 110 110 110
 result of ANDː       000 110 100 000
 result in octalː     0   6   4   0
 resulting permissionsː   rw- r-- ---

Directory permissionsː Locically AND with 0777

 ̃inverted maskː       111 111 101 000
 default permissionsː 000 111 111 111
 result of ANDː       000 111 101 000
 result in octalː     0   7   5   0
 resulting permissionsː   rwx r-x ---


 umaskː    0   0   1   1
 binaryː   000 000 001 001
 ̃invertedː 111 111 110 110

File permissionsː Logically AND with 0666

 ̃inverted maskː       111 111 110 110
 default permissionsː 000 110 110 110
 result of ANDː       000 110 110 110
 result in octalː     0   6   6   6
 resulting permissionsː   rw- rw- rw-

Directory permissionsː Locically AND with 0777

 ̃inverted maskː       111 111 110 110
 default permissionsː 000 111 111 111
 result of ANDː       000 111 110 110
 result in octalː     0   7   6   6
 resulting permissionsː   rwx rw- rw-


 umaskː    0   5   4   1
 binaryː   000 101 100 001
 ̃invertedː 111 010 011 110

File permissionsː Logically AND with 0666

 ̃inverted maskː       111 010 011 110
 default permissionsː 000 110 110 110
 result of ANDː       000 010 010 110
 result in octalː     0   2   2   6
 resulting permissionsː   -w- -w- rw-

Directory permissionsː Locically AND with 0777

 ̃inverted maskː       111 010 011 110
 default permissionsː 000 111 111 111
 result of ANDː       000 010 011 110
 result in octalː     0   2   3   6
 resulting permissionsː   -w- -wx rw-


 umaskː    0   7   7   7
 binaryː   000 111 111 111
 ̃invertedː 111 000 000 000

File permissionsː Logically AND with 0666

 ̃inverted maskː       111 000 000 000
 default permissionsː 000 110 110 110
 result of ANDː       000 000 000 000
 result in octalː     0   0   0   0
 resulting permissionsː   --- --- ---

Directory permissionsː Locically AND with 0777

 ̃inverted maskː       111 000 000 000
 default permissionsː 000 111 111 111
 result of ANDː       000 000 000 000
 result in octalː     0   0   0   0
 resulting permissionsː   --- --- ---

Create and change hard and symbolic links[edit]

1.

mkdir ~/etc ~/bin

2.

cp -r /etc/* ~/etc/
# or
cp -r /etc/ ~/
# or
rsync -a /etc/ ~/etc/

2.

# recursive variant using find
find -name '*.conf' -exec mv {} {}.bak \;
# non recursive variant using rename
rename 's/\.conf/\.conf\.bak/' *.conf

4.

ln -s ~/bin/ls ~/dir
~/dir

5.

rm ~/dir
# or
unlink ~/dir

The ~/bin/ls file gets lost in neither of the cases.

Find system files and place files in the correct location[edit]

The X Window System[edit]

Install & Configure XFree86[edit]

Setup a display manager[edit]

Install & Customize a Window Manager Environment[edit]