who It is used to get information about currently logged in user on to system. If you don't provide any option or arguments, the command displays the following information for each logged-in user.
Login name of the user
User terminal
Date & Time of login
Remote host name of the user
$ who
sudheer :0 2019-08-04 01:21 (:0)
whoami: It display the system’s username
$ whoami
sudheer
id: It display the user identification(the real and effective user and group IDs) information
$ id
uid=1000(sj) gid=1000(sj) groups=1000(sj),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare)
groups: This command is used to display all the groups for which the user belongs to.
finger: Used to check the information of any currently logged in users. i.e, It displays users login time, tty (name), idle time, home directory, shell name etc.
$ finger
Login Name Tty Idle Login Time Office Office Phone
sj sj *:0 Aug 28 01:27 (:0)
This may not be available by default in many linux machines. In this case, you need to install it manually.
$ sudo apt install finger
users: Displays usernames of all users currently logged on the system.
$ users
sj
grep: It is a powerful pattern searching tool to find information about a specific user from the system accounts file: /etc/passwd.
pwd The pwd(Present Working Directory) command is used to print the name of the present/current working directory starting from the root.
$ pwd
/home/sj/Desktop/Linux
ls: The ls command is used to list files or directories. It also accepts some flags or options that changes how files or directories are listed in your terminal.
Syntax:
ls [flags] [directory]
Example:
$ ls
bin dev lib libx32 mnt
//Listing files & directories with timein a rever order
$ ls -ltr
drwxr-xr-x 2 sj sj 4096 May 14 2020 Videos
drwxr-xr-x 2 sj sj 4096 May 14 2020 Templates
drwxr-xr-x 2 sj sj 4096 May 14 2020 Public
//Home directory
$ ls ~
Desktop Downloads Pictures Sudheer test test.txt
Documents Music Public Templates test1 Videos
Below are the list of possible options for ls command,
-a Show all (including hidden)
-R Recursive list
-r Reverse order
-t Sort by last modified
-S Sort by file size
-l Long listing format-1 One file per line
-m Comma-separated output
-Q Quoted output
mkdir The mkdir(make directory) command allows users to create directories or folders.
$ mkdir ubuntu
$ ls
ubuntu
The option '-p' is used to create multiple directories or parent directories at once.
$ mkdir -p dir1/dir2/dir3
$ cd dir1/dir2/dir3
~/Desktop/Linux/dir1/dir2/dir3$
rmdir: The rmdir(remove directories) is used to remove empty directories. Can be used to delete multiple empty directories as well. Safer to use compared to rm -r FolderName. This command can also be forced to delete non-empty directories.
Remove empty directory:
rmdir FolderName
Remove multiple directories:
rmdir FolderName1 FolderName2 FolderName3
Remove non-empty directories:
rmdir FolderName1 --ignore-fail-on-non-empty
Remove entire directory tree. This command is similar to rmdir a/b/c a/b a:
rmdir -p a/b/c
rm: The rm(remove) command is used to remove objects such as files, directories, symbolic links etc from the file system.
Remove file: The rm command is used to remove or delete a file
rm file_name
Remove file forcefully: The rm command with -f option is used for removal of file without prompting for confirmation.
rm -f filename
Remove directory: The rm command with -r option is used to remove the directory and its contents recursively.
rm -r myDir
Remove directory forcefully: The rm command with -rf option is used to forcefully remove directory recursively.
rm -rf myDir
touch: The touch command is is used to create, change and modify timestamps of a file without any content.
Create a new file: You can create a single file at a time using touch command. The file created is an empty file.
touch file_name
Create multiple files: You can create the multiple numbers of files at the same time.
touch file1_name file2_name file3_name
Change access time: The touch command with a option is used to change the access time of a file.
touch -a file_name
Change modification time: The touch command with m option is used to change the modified time.
touch -m file_name
Use timestamp of other file: The touch command with r option is used to get timestamp of another file.
touch -r file2 file1
In the above example, we get the timestamp of file1 for file2.
Create file with Specific time: The touch command with 't' option is used to create a file with specified time.
touch -t 1911010000 file_name
cat: The cat command is used to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files.
$ cat [OPTION] [FILE]...
Create a file: Used to create a file with specific name, content and press exit using CTRL + D
cat > file_name1.txt
Hello, How are you?
View file contents: You can view contents of a single or more files by mentioning the filenames.
cat file_name1 file_name2
More & Less options: If a file having a large number of content that won’t fit in the output terminal then more & less options can be used to indiate additional content.
cat file_name1.txt | more
cat file_name1.txt | less
Since Linux is a multi-user operating system, it is necessary to provide security to prevent people from accessing each other’s confidential files.
So Linux divides authorization into 2 levels,
Ownership:
Each file or directory has assigned with 3 types of owners
i. User: Owner of the file who created it.
ii. Group: Group of users with the same access permissions to the file or directory.
iii. Other: Applies to all other users on the system
Permissions:
Each file or directory has following permissions for the above 3 types of owners.
i. Read: Give you the authority to open and read a file and lists its content for a directory.
ii. Write: Give you the authority to modify the contents of a file and add, remove and rename files stored in the directory.
iii. Execute: Give you the authority to run the program in Unix/Linux.
The permissions are indicated with below characters,
r = read permission
w = write permission
x = execute permission
\- = no permission
The above authorization levels represented in a diagram
There is a need to restrict own file/directory access to others.
Change access:
The chmod command is used to change the access mode of a file. This command is used to set permissions (read, write, execute) on a file/directory for the owner, group and the others group.
chmod [reference][operator][mode] file...
Example
chmod ugo-rwx test.txt
There are 2 ways to use this command,
Absolute mode:
The file permissions will be represented in a three-digit octal number.
The possible permissions types represented in a number format as below.
Permission Type
Number
Symbol
No Permission
0
---
Execute
1
--x
Write
2
-w-
Execute + Write
3
-wx
Read
4
r--
Read + Execute
5
r-x
Read + Write
6
rw-
Read + Write + Execute
7
rwx
Let's update the permissions in absolute mode with an example as below,
chmode 764 test.txt
Symbolic mode:
In the symbolic mode, you can modify permissions of a specific owner unlike absolute mode.
The owners are represented as below,
Owner
Description
u
user/owner
g
group
o
other
a
all
and the list of mathematical symbols to modify the file permissions as follows,
Operator
Description
+
Adds permission
-
Removes the permission
=
Assign the permission
Changing Ownership and Group:
It is possible to change the the ownership and group of a file/directory using chown command.
chown user filename
chown user:group filename
Example:
chown John test.txt
chown John:Admin test.txt
Change group-owner only:
Sometimes you may need to change group owner only. In this case, chgrp command need to be used
Display network information:ifconfig command is used to display all network information(ip address, ports etc)
ifconfig -a
Test connection to a remote machine: Send an echo request to test connection of a remote machine.
ping<ip-address> or hostname
Example:
ping 10.0.0.11
Show IP Address: Display ip address of a currennt machine
hostname -I
(OR)
ip addr show
Active ports: Shows active or listening ports
netstat -pnltu
Find information about domain:whois command is used to find out information about a domain, such as the owner of the domain, the owner’s contact information, and the nameservers used by domain.
The find command is used to find or search files and directories by file name, folder name, creation date, modification date, owner and permissions etc and perform subsequent operations on them.
find ./ -type f -name file_pattern -exec grep some_text {} \;
Example:
find ./ -type f -name "*.txt" -exec grep 'World' {} \; // Hello World
Whereis to locate binary or source files for a command:
The whereis command in Linux is used to locate the binary, source, and manual page files for a command. i.e, It is used to It is used to find executables of a program, its man pages and configuration files.
whereis command_name
Example:
whereis netstat //netstat: /bin/netstat /usr/share/man/man8/netstat.8.gz(i.e, executable and location of its man page)
Locate to find files:
The locate command is used to find the files by name. This command is faster compared to find command because it searches database for the filename instead of searching your filesystem.
:Connect remote machine using custom port By default, the SSH server listens for a connection on port 22. But you can also specify the custom port.
ssh<host-name> or <ip-address> -p port_number
Example:
ssh test.remoteserver.com -p 3322
Generate SSH keys using keygen: SSH Keygen is used to generate a key pair which consists of public and private keys to improve the security of SSH connections.
ssh-keygen -t rsa
Copying SSH keys to servers: For SSH authentication, ssh-copy-id command will be used to copy public key(id_rsa.pub) to server.
ssh-copy-id hostname_or_IP
Copy a File Remotely over SSH: SCP tool is used to securely copy files over the SSH protocol.
Vi editor is the most popular text editor from the early days of Unix. Whereas Vim(Vi IMproved) is an improved version of vi editor to be used in CLI (command line interface) for mainly text editing tasks in many configuration files. Some of the other alternatives are Elvis, Nvi, Nano, Joe, and Vile.
It has two main operation modes,
Command Mode: It allows the entry of commands to manipulate text.
Entry mode(Or Insert mode): It allows typed characters on the keyboard into the current file.
1. Start with Vi Editor
You can create a new file or open an existing file using vi filename command.
vi <filename_NEW> or <filename_EXISTING> // Create a new file or open an existing file
Example:
vi first.txt
Let's see how do you create file, enter the content and leave the CLI by saving the changes.
Create a new file named first.txt
Press i to enter the insert mode
Enter the text "Hello World!"
Save the text and exit by pressing :wq! command
Check the entered text
2. Cursor movement
These commands will be used in Command mode.
Move cursor
You can use arrow keys(left, right, up and down) to move the cursor on the terminal. But you can also other keys for this behavior.
h # Move left
j # Move down
k # Move up
l # Move right
Jump one word
These commands used to jump one word at a time
w # Jump forwards to the start of a word
W # Jump forwards to the start of a WORD
e # Jump forwards to the start of a word
E # Jump forwards to the start of a WORD
b # Jump backwords to the start of a word
B # Jump backwords to the start of a WORD
Jump to start or end of a line or next line
These commands used to jump starting or ending of a line or a next line.
^ # Jump to the start of a current line
$ # Jump to the end of a current line
return # Jump to the start of a next line
Move sides
These commands used to moves all sides of the screen
Backspace # Move cursor one character to the left
Spacebar # Move cursor one character to the right
H(High) # Move cursor to the top of the screen
M(Middle) # Move cursor to the middle of the screen
L(Low) # Move cursor to the bottom of the screen
Paging and Scrolling
Paging is used to moves the cursor up or down through the text a full screen at a time. Whereas Scrolling happens line by line.
Ctrl + f # move forward one full screen
Ctrl + b # move backward one full screen
Ctrl + d # move forward half a screen
Ctrl + u # move backward half a screen
Inserting Text
These commands places vi in entry mode from command mode. First, you need to be in command mode to use the below commands.
请发表评论