Chanler

Chanler

Linux Introduction Commands

shell is used to accept user commands and pass them to the os for execution
image.png|500


Basic Navigation and Viewing#


pwd#

pwd, displays the absolute path of the current directory


ls#

list, lists the files in the current directory

Parameters:
-l lists the attributes of each file, usually abbreviated as ll

drwxr-xr-x@ 2 fling staff  64  5 24 15:42 test
^ ^  ^  ^ ^ ^   ^     ^     ^   ^ ^  ^     ^
| |  |  | | |   |     |     |   | |  |     |
| |  |  | | |   |     |     |   | |  |     └─ File/Directory Name
| |  |  | | |   |     |     |   | |  └─────── Last Modified Time
| |  |  | | |   |     |     |   | └────────── Last Modified Date (Day of Month)
| |  |  | | |   |     |     |   └──────────── Last Modified Month
| |  |  | | |   |     |     └──────────────── File Size (Bytes)
| |  |  | | |   |     └────────────────────── Group
| |  |  | | |   └──────────────────────────── Owner
| |  |  | | └──────────────────────────────── Number of Hard Links
| |  |  | └────────────────────────────────── Extended Attributes Flag - @ (macOS specific)
| |  |  └──────────────────────────────────── Others' Permissions
| |  └─────────────────────────────────────── Group's Permissions
| └────────────────────────────────────────── Owner's Permissions
└──────────────────────────────────────────── File Type

Attribute Explanation:

  • File Type:
    • -: Regular file (e.g., 1.txt)
    • d: Directory (e.g., test)
    • l: Symbolic link
    • c: Character device file
    • b: Block device file
    • s: Socket file
    • p: Named pipe

  • File Permissions:
    • Divided into three groups, each with three characters, representing the permissions for the file owner, group users, and other users
    • Each group of characters is rwx, representing read, write, and execute permissions; if there is no corresponding permission, it is replaced with -. For simplicity, r\w\x is assigned the numbers 4\2\1

  • Number of Hard Links:
    • For files, it indicates how many filenames point to this file's inode
    • For directories, it is usually 2 + the number of subdirectories, as each directory has . pointing to itself and .. pointing to the parent directory

-a lists all files, including hidden files

.     ..    .env  1.txt test

cd#

c, enter a directory

As mentioned earlier, .. represents the parent directory
cd - represents entering the last location


tree#

tree [] displays the structure of the directory []


File and Directory Operations#


touch#

touch, updates the timestamp, but can also create files


mkdir#

mkdir, creates a directory


cat#

cat, outputs the contents of a file


less#

less, views a file, can scroll up and down, press q to return
Only reads and displays the part of the screen needed
g for beginning G for end
% or p for percentage jump
/pattern for forward search, ?pattern for backward search, n for next match, N for previous match
F continuously monitors new content added to the end of the file, similar to tail -f


more#

more, views a file, cannot scroll up, press q to return
Loads the entire file into memory before displaying


head#

head, outputs the beginning of a file

head --lines=n file outputs the first n lines of file


tail#

tail, outputs the end of a file

tail --lines=n file outputs the last n lines of file
tail -f continuously views subsequent content


cp#

cp source destination copies files or directories


mv#

mv source destination moves, can also be used for renaming


rm#

rm, deletes
rm -r recursively deletes, used for directories


ln#

ln, links
ln -s source destination creates a symbolic link, does not store the file, just a shortcut
ln source destination creates a hard link, a pointer to the source file, sharing the same inode, can be considered a reference, can only point to files


Permissions and Searching#


chmod#

modifies permissions
u\g\o represents the three groups of permissions
chmod u+x file gives execute permission to the owner
Can also use numbers to modify, such as chmod 744 file


file#

file, what type of file, e.g., 1.txt: ASCII text


where/which/whereis#

where, finds where the file is located


Output, Pipes, and Editing#


echo#

echo, outputs to the command line, note that special characters should be wrapped in " "

> redirects standard output to a file, e.g., echo "1" > 1.txt
>> appends to a file
< redirects standard input from a file


pipe#

command1 | command2 | command3 the standard output of one command as the standard input of another command

ls -l | grep "*.txt"
cat server.log | grep "ERROR" | less


nano#

Crtl+X to exit, Crtl+O to save


vim#

In command mode, :wq to save and exit, :q! to force quit, [n]yy to copy n lines, [n]p to paste n times to the next line of the cursor dd to delete

In command mode, input i\a\o\I\A\O to enter insert mode, in insert mode esc to enter command mode


image.png|500

In insert mode ^ can jump to the beginning of the line $ can jump to the end of the line

In command mode, input : to enter line mode, in line mode esc\enter to enter command mode


Variables and Wildcards#


shell#

Define a variable variable=value to define it, can use echo ${variable} to view, the braces are used to prevent ambiguity

Forward trimming, e.g., ff=week01, echo ${ff#week} outputs 01
Trim from the end %

? represents a placeholder for one character, * represents a placeholder for any character


for i in $(seq 1 10) sequence from 1 to 10
for ((i=0;i<10;i++)) C-style loop

Batch renaming

for> do
for> mv ${d} chapter${d#week}
for> done

This article is synchronized and updated to xLog by Mix Space
The original link is https://blog.chanler.dev/posts/tech-learn/linux-command


Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.