3.1.2.6 Lab - Working With Text Files in The CLI
3.1.2.6 Lab - Working With Text Files in The CLI
Introduction
In this lab, you will get familiar with Linux command line text editors and configuration files.
Required Resources
CyberOps Workstation Virtual Machine
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 1 of 10
Lab – Working with Text Files in the CLI
b. Type ls to see the contents of the current directory. Notice space.txt is listed. This means you do not
have to provide path information to open the file.
c. Type scite space.txt to open SciTE. Note that this will not only launch SciTE in the GUI, but it will
also automatically load the space.txt text file that was previously created.
[analyst@secOps ~]$ scite space.txt
d. Notice that while SciTE is open on the foreground, the terminal window used to launch it is still open
in the background. In addition, notice that the terminal window used to launch SciTE no longer
displays the prompt.
Why the prompt is not shown?
_________________________________________________________________________________
___
_________________________________________________________________________________
___
e. Close this instance of SciTE by either clicking the X icon as before, or by switching the focus back to
the terminal window that launched SciTE and stopping the process. You can stop the process by
pressing CTRL+C.
Note: Starting SciTE from the command line is helpful when you want to run SciTE as root. Simply
precede scite with the sudo command, sudo scite.
f. Close SciTE and move on to the next section.
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 2 of 10
Lab – Working with Text Files in the CLI
What character does nano use to represent that a line continues beyond the boundaries of the
screen?
_________________________________________________________________________________
___
_________________________________________________________________________________
___
c. As shown on the bottom shortcut lines, CTRL+X can be used to exit nano. nano will ask if you want
to save the file before exiting (‘Y’ for Yes, or N for ‘No’). If ‘Y’ is chosen, you will be prompted to press
enter to accept the given file name, or change the file name, or provide a file name if it is a new
unnamed document.
d. To control nano, you can use CTRL, ALT, ESCAPE or the META keys. The META key is the key on
the keyboard with a Windows or Mac logo, depending on your keyboard configuration.
e. Navigation in nano is very user friendly. Use the arrows to move around the files. Page Up and Page
Down can also be used to skip forward or backwards entire pages. Spend some time with nano and
its help screen. To enter the help screen, press CTRL+G.
While a few files are displayed, none of them seem to be configuration files. This is because it is
convention to hide home-directory-hosted configuration files by preceding their names with a “.” (dot)
character.
b. Use the ls command again but this time add the –a option to also include hidden files in the output:
[analyst@secOps ~]$ ls –la
total 268
drwxr-xr-x 19 analyst analyst 4096 Aug 2 15:43 .
drwxr-xr-x 3 root root 4096 Sep 26 2014 ..
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 3 of 10
Lab – Working with Text Files in the CLI
c. Use cat command to display the contents of the .bashrc file. This file is used to configure user-
specific terminal behavior and customization.
[analyst@secOps ~]$ cat .bashrc
export EDITOR=vim
Do not worry too much about the syntax of .bashrc at this point. The important thing to notice is that
.bashrc contains configuration for the terminal. For example, the line PS1='\[\e[1;32m\][\u@\h \W]\$\
[\e[0m\] ' defines the prompt structure of the prompt displayed by the terminal:
[username@hostname current_dir] followed by a dollar sign, all in green. A few other
configurations include shortcuts to commands such as ls and vi. In this case, every time the user
types ls, the shell automatically converts that to ls –color to display a color-coded output for ls
(directories in blue, regular files in grey, executable files in green, etc.)
The specific syntax is out of the scope of this course. What is important is understanding that user
configurations are conventionally stored as hidden files in the user’s home directory.
d. While configuration files related to user applications are conventionally placed under the user’s home
directory, configuration files relating to system-wide services are place in the /etc directory, by
convention. Web services, print services, ftp services, email services are examples of services that
affect the entire system and of which configuration files are stored under /etc. Notice that regular
users do not have writing access to /etc. This is important as it restricts the ability to change the
system-wide service configuration to the root user only.
Use the ls command to list the contents of the /etc directory:
[analyst@secOps ~]$ ls /etc
adjtime host.conf mke2fs.conf rc_maps.cfg
apache-ant hostname mkinitcpio.conf request-key.conf
apparmor.d hosts mkinitcpio.d request-key.d
arch-release ifplugd modprobe.d resolv.conf
avahi initcpio modules-load.d resolvconf.conf
bash.bash_logout inputrc motd rpc
bash.bashrc iproute2 mtab rsyslog.conf
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 4 of 10
Lab – Working with Text Files in the CLI
e. Use the cat command to display the contents of the bash_bashrc file:
[analyst@secOps ~]$ cat /etc/bash.bashrc
#
# /etc/bash.bashrc
#
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:
%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
screen)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:
%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
esac
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 5 of 10
Lab – Working with Text Files in the CLI
The syntax of bash_bashrc is out of scope of this course. This file defines the default behavior of the
shell for all users. If a user wants to customize his/her own shell behavior, the default behavior can be
overridden by editing the .bashrc file located in the user’s home directory. Because this is a system-
wide configuration, the configuration file is placed under /etc, making it editable only by the root user.
Therefore, the user will have to log in as root to modify .bashrc.
Why are user application configuration files saved in the user’s home directory and not under /etc with
all the other system-wide configuration files?
_________________________________________________________________________________
___
_________________________________________________________________________________
___
_________________________________________________________________________________
___
_________________________________________________________________________________
___
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 6 of 10
Lab – Working with Text Files in the CLI
e. Locate 32 and replace it with 31. 32 is the color code for green, while 31 represents red.
f. Save the file by selecting File > Save and close SciTE by clicking the X icon.
g. Click the Terminal application icon located on the Dock, at the bottom center of the Cisco CyberOPS
VM screen. The prompt should appear in red instead of green.
Did the terminal window which was already open also change color from green to red? Explain.
_________________________________________________________________________________
___
_________________________________________________________________________________
___
h. The same change could have been made from the command line with a text editor such as nano.
From a new terminal window, type nano .bashrc to launch nano and automatically load the .bashrc
file in it:
[analyst@secOps ~]$ nano .bashrc
export EDITOR=vim
[ Read 5 lines ]
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos
^X Exit ^R Read File ^\ Replace ^U Uncut Text^T To Spell ^_ Go To Line
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 7 of 10
Lab – Working with Text Files in the CLI
j. Press CTRL+X to save and then press Y to confirm. Nano will also offer you the chance to change
the filename. Simply press ENTER to use the same name, .bashrc.
k. Nano will end, and you will be back on the shell prompt. Again, click the Terminal application icon
located on the Dock, at the bottom center of the Cisco CyberOps VM screen. The prompt should
now appear in yellow instead of red.
1
2 #user html;
3 worker_processes 1;
4
5 #error_log logs/error.log;
6 #error_log logs/error.log notice;
7 #error_log logs/error.log info;
8
9 #pid logs/nginx.pid;
10
11
12 events {
13 worker_connections 1024;
14 }
15
16
17 http {
18 include mime.types;
19 default_type application/octet-stream;
20
21 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
22 # '$status $body_bytes_sent "$http_referer" '
23 # '"$http_user_agent" "$http_x_forwarded_for"';
24
25 #access_log logs/access.log main;
26
27 sendfile on;
28 #tcp_nopush on;
29
30 #keepalive_timeout 0;
31 keepalive_timeout 65;
32
33 #gzip on;
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 8 of 10
Lab – Working with Text Files in the CLI
34
35 types_hash_max_size 4096;
36 server_names_hash_bucket_size 128;
37
38 server {
39 listen 81;
40 server_name localhost;
41
42 #charset koi8-r;
43
44 #access_log logs/host.access.log main;
45
46 location / {
47 root /usr/share/nginx/html;
48 index index.html index.htm;
49 }
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos
^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Spell ^_ Go To Line
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 9 of 10
Lab – Working with Text Files in the CLI
k. You can test whether the nginx server is indeed shut down by first clearing the recent history in the
web browser, then close and re-open the web browser, then go to the nginx homepage at
127.0.0.1:8080. Does the web page appear? _____
Challenge: Can you edit the /etc/nginx/custom_configuration.conf file with SciTE? Describe the
process below.
Remember, because the file is stored under /etc, you will need root permissions to edit it.
____________________________________________________________________________________
___
____________________________________________________________________________________
___
Reflection
Depending on the service, more options may be available for configuration.
Configuration file location, syntax, and available parameters will vary from service to service. Always
consult the documentation for information.
Permissions are a very common cause of problems. Make sure you have the correct permissions before
trying to edit configuration files.
More often than not, services must be restarted before the changes take effect.
© Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 10 of 10