Online Courses
Free Tutorials  Go to Your University  Placement Preparation 
Goeduhub's Online Courses @ Udemy in Just INR 570/-
Online Training - Youtube Live Class Link
0 like 0 dislike
168 views
in Tutorial & Interview questions by Goeduhub's Expert (8.3k points)

Goeduhub's Top Online Courses @Udemy

For Indian Students- INR 360/- || For International Students- $9.99/-

S.No.

Course Name

 Coupon

1.

Tensorflow 2 & Keras:Deep Learning & Artificial Intelligence

Apply Coupon

2.

Natural Language Processing-NLP with Deep Learning in Python Apply Coupon

3.

Computer Vision OpenCV Python | YOLO| Deep Learning in Colab Apply Coupon
    More Courses

1 Answer

0 like 0 dislike
by Goeduhub's Expert (8.3k points)
 
Best answer

A common and task of someone using the Linux Command Line (shell) is to search for files/directories with a certain name or containing certain text. There are 2 commands you should familiarise yourself with in order to accomplish this: 

Find files by name

find /var/www -name '*.css' 

This will print out the full path/filename to all files under /var/www that end in .css. Example output: 

/var/www/html/text-cursor.css 

/var/www/html/style.css For more info: man find

For more info:

 man find

Find files containing text 

grep font /var/www/html/style.css

This will print all lines containing the pattern font in the specified file. Example output: 

font-weight: bold; 

font-family: monospace; 

Another example: 

grep font /var/www/html/

This doesn't work as you'd hoped. You get:

 grep: /var/www/html/: Is a directory 

You need to grep recursively to make it work, using the -R option:

 grep -R font /var/www/html/ 

Hey nice! Check out the output of this one:

 /var/www/html/admin/index.php: echo '<font color=red><b> Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b> Error: try again</b></font><br/>';

 /var/www/html/style.css: font-weight: bold; 

/var/www/html/style.css: font-family: monospace; 

Notice that when grep is matching multiple files, it prefixes the matched lines with the filenames. You can use the - h option to get rid of that, if you want.

 For more info: 

man grep 

 File Manipulation-

Files and directories (another name for folders) are at the heart of Linux, so being able to create, view, move, and delete them from the command line is very important and quite powerful. These file manipulation commands allow you to perform the same tasks that a graphical file explorer would perform.
Create an empty text file called myFile:
 touch myFile 
Rename myFile to myFirstFile:
 mv myFile myFirstFile 
View the contents of a file: 
cat myFirstFile 
View the content of a file with pager (one screenful at a time): 
less myFirstFile 
View the first several lines of a file:
 head myFirstFile 
View the last several lines of a file
tail myFirstFile 
Edit a file:
vi myFirstFile
See what files are in your current working directory: 
ls 
Create an empty directory called myFirstDirectory:
 mkdir myFirstDirectory 
Create multi path directory: (creates two directories, src and myFirstDirectory)
 mkdir -p src/myFirstDirectory 
Move the file into the directory: 
mv myFirstFile myFirstDirectory/
You can also rename the file: 
user@linux-computer:~$ mv myFirstFile secondFileName 
Change the current working directory to myFirstDirectory: 
cd myFirstDirectory
Delete a file: 
rm myFirstFile 
Move into the parent directory (which is represented as ..): 
cd .. 
Delete an empty directory: 
rmdir myFirstDirectory 
Delete a non-empty directory (i.e. contains files and/or other directories):
 rm -rf myFirstDirectory

 Make note that when deleting directories, that you delete ./ not / that will wipe your whole filesystem. 


File/Directory details

The ls command has several options that can be used together to show more information.
Details/Rights
The l option shows the file permissions, size, and last modified date. So if the root directory contained a dir called test and a file someFile the command:
user@linux-computer:~$ ls -l

Would output something like

-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt 

drwxrwxrwx 2 user users 4096 Jul 21 07:18 test  

The permissions are in format of drwxrwxrwx. The first character represents the file type d if it's a directory - otherwise. The next three rwx are the permissions the user has over the file, the next three are the permissions the group has over the file, and the last three are the permissions everyone else has over the file. 

The r of rwx stands for if a file can be read, the w represents if the file can be modified, and the x stands for if the file can be executed. If any permission isn't granted a - will be in place of r, w, or x. 

So from above user can read and modify someFile.txt but the group has only read-only rights.

 To change rights you can use the chmod ### fileName command if you have sudo rights. r is represented by a value of 4, w is represented by 2, and x is represented by a 1. So if only you want to be able to modify the contents to the test directory  

Owner rwx = 4+2+1 = 7

 Group r-x = 4+0+1 = 5

 Other r-x = 4+0+1 = 5

So the whole command is 

chmod 755 test  

Now doing a ls -l would show something like

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test 

Readable Size 

Used in conjunction with the l option the h option shows file sizes that are human readable. Running
user@linux-computer:~$ ls -lh 

Would output: 

 total 4166

 -rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txt 

drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test  

Hidden  

To view hidden files use the a option. For example 
user@linux-computer:~$ ls -a

Might list

.profile 

someFile.txt 

test 

Total Directory Size  

To view the size of the current directory use the s option (the h option can also be used to make the size more readable). 

user@linux-computer:~$ ls -s 

Outputs

 total 4166

 someFile.txt test

Recursive View  

Lets say test directory had a file anotherFile and you wanted to see it from the root folder, you could use the R option which would list the recursive tree. 

user@linux-computer:~$ ls -R 

Outputs

.: 

someFile.txt test

 ./test: 

anotherFile

 

3.3k questions

7.1k answers

394 comments

4.6k users

Related questions

0 like 0 dislike
1 answer 163 views
0 like 0 dislike
1 answer 147 views
asked Nov 2, 2019 in Tutorial & Interview questions by Goeduhub Goeduhub's Expert (8.3k points)
0 like 0 dislike
1 answer 153 views
asked Nov 2, 2019 in Tutorial & Interview questions by Goeduhub Goeduhub's Expert (8.3k points)
0 like 0 dislike
1 answer 220 views
0 like 0 dislike
1 answer 181 views

 Goeduhub:

About Us | Contact Us || Terms & Conditions | Privacy Policy || Youtube Channel || Telegram Channel © goeduhub.com Social::   |  | 
...