TranslateProject/sources/tech/20230316.0 ⭐️ Terminal Basics Series 5 View the File Contents in Linux.md

225 lines
6.9 KiB
Markdown

[#]: subject: "Terminal Basics Series #5: View the File Contents in Linux"
[#]: via: "https://itsfoss.com/view-file-contents/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Terminal Basics Series #5: View the File Contents in Linux
======
You learned to [create new files][1] in the previous chapter of the Terminal Basics series.
In this chapter, you'll learn to read the files. I'll be discussing the most common Linux commands to display the contents of a text file.
Before you do that, let's create our 'playground' with sample files. Let's create a directory first and switch to it.
```
mkdir display_files && cd display_files
```
Copy a huge text file here.
```
cp /etc/services .
```
And then, create a new file named `columbo.txt` with the following text (use the cat command with >> as discussed in the previous chapter):
```
Prescription: Murder
Ransom for a Dead Man
Murder by the Book
Death Lends a Hand
Dead Weight
Suitable for Framing
Lady in Waiting
Short Fuse
Blueprint for Murder
```
You don't have to type it all by yourself. You can copy-paste in the terminal using Ctrl+Shift+V. Most terminals support this shortcut.
With things set, let's see various ways of viewing files in the Linux terminal.
### Use cat command to display file content
The cat command is the most popular method to view files in Linux.
It is dead simple to use. Just give it the file name and it displays the file content on the screen. Things cannot go simpler than this.
```
cat filename
```
Can you try displaying the contents of the columbo.txt file?
```
cat columbo.txt
```
This is the output it shows:
![Using the cat command to view files in Linux][2]
> 🖥️ Optional challenge: Use the cat or echo command with >> redirection to add a new line with "Etude in Black" text to the columbo.txt file. Refer to the previous chapter if you need help.
### Using the less command to read large text files
The cat command is so simple. In fact, it is too simple. And simple doesn't work in complicated scenarios.
Try using the cat command to view the content of the services file.
```
cat services
```
This `services` is a huge file with hundreds of lines. When you use cat, it floods the entire screen with the entire text.
This is not ideal. Can you read the first line of the file? Yes, you can but you have to scroll all the way up. If the file has thousands of lines, you won't even be able to scroll back to the first few lines.
This is where the less command comes into the picture. It lets you read the contents of a file in a page-by-page manner. You exit the viewing mode and your terminal screen is clean as ever.
Use the less command to read the services file:
```
less services
```
Now you are in a different viewing mode. You can use the arrow keys to move line by line. You can also use the Page Up and Page Down keys to move up and down by pages.
You can even search for certain text using /search_term.
When you are done reading the file, **press Q key to exit the less view** and go back to the normal terminal viewing.
![less command example][3]
This table will help you use less:
| Keys | Action |
| :- | :- |
| Up arrow | Move one line up |
| Down arrow | Move one line down |
| Space or PgDn | Move one page down |
| b or PgUp | Move one page up |
| g | Move to the beginning of the file |
| G | Move to the end of the file |
| ng | Move to the nth line |
| /pattern | Search for pattern and use n to move to next match |
| q | Exit less |
From viewing files in real time to bookmarking text, less can do a lot more. Read this to learn more about it.
> 💡 You can use the less command to read PDF files in the terminal.
### Head and tail to show part of text files
If you only want to see certain parts of the text file in cat-styled display, use the head and tail commands.
By default, the head command displays the first 10 lines of a file.
```
head filename
```
But you can modify it to show the first n lines as well.
```
head -n filename
```
The tail command displays the last 10 lines by default.
```
tail filename
```
But you can modify it to show n lines from the bottom.
```
tail -n filename
```
#### Practice examples
Let's see some examples. Generate an easy-to-follow file using this script:
```
#create or clear the content of the file
echo -n > sample
#put content to the file
for i in {1..70}
do
echo "This is the line $i" >> sample
done
```
Create a new file named script.sh and copy-paste the above script content into it. Now run the script like this to generate your sample file:
```
bash script.sh
```
Now, you have got a file named `sample` that contains lines like "This is the line number N" for every 70 lines.
> 🖥️ Display the first 10 and the last 10 lines of this sample file.
Let's take it to the next level. You can combine them both to show specific lines of a file. For example, to show lines from 35 to 40, use it like this:
```
head -n 40 filename | tail -n +35
```
Here:
- `head -n 40 filename` will display the first 40 lines of the file.
- `tail -n +35` will display the lines from the 35th line to the end of the output from the `head` command. Yeah! Mind the + sign that changes the normal behavior of the tail command.
![Show a range of lines in Linux][4]
You can also combine them to show only a particular line. Let's say you want to display the 55th line; combine head and tail like this.
```
head -n 55 filename | tail -n 1
```
Here:
- `head -n 55 filename` will display the first 55 lines of the file.
- `tail -n 1` will display the last line of the output from the `head` command, which will be the 55th line of the file.
![Show only a particular line in Linux command line][5]
### Test your knowledge
Time for you to exercise your grey cells and practice what you learned in this chapter.
- Use the same `sample` file and display lines from 63 and 68.
- Now display the lines from 67 to 70.
- How about displaying the first line only?
- What do you see in the /etc/passwd file? Display its content.
That's it for this chapter. Next, you'll learn about removing files and folders in the command line. Stay tuned.
--------------------------------------------------------------------------------
via: https://itsfoss.com/view-file-contents/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lkxed/
[1]: https://itsfoss.com/create-files/
[2]: https://itsfoss.com/content/images/2023/03/use-cat-command-to-view-files-linux.png
[3]: https://itsfoss.com/content/images/2023/03/less-examples.svg
[4]: https://itsfoss.com/content/images/2023/03/show-specific-lines-linux.png
[5]: https://itsfoss.com/content/images/2023/03/show-particular-line-linux.png