search
HomeOperation and MaintenanceLinux Operation and MaintenanceSummary of commonly used special characters in bash

#Comment symbol (Hashmark)

1. At the beginning of the line of the shell file, as the shell call interpreter mark, #!/bin/bash;

2. Used as a comment in the configuration file. In a line, the content after # will not be executed.

;

is used as the separator for multiple commands (Command separator [semicolon]).

When multiple commands are to be placed on the same line, they can be separated by semicolons.

;;

Continuous semicolon (Terminator [double semicolon]).

When using the case option, it is used as the terminator of each option.

.

Dot command.

1. Execute the current directory file

                #!/bin/bash

      .pythontab-file

2. As part of the file name, in the file The beginning of the name indicates that the file is a hidden file

3. As a directory name, one dot represents the current directory, and two dots represent the upper directory (the parent directory of the current directory). Note that more than two dots do not appear unless you surround the dot character itself with quotation marks (single/double);

4. In regular expressions, the dot represents any character.

"

Double quotation marks.

Partial quotation. Content surrounded by double quotation marks allows variable expansion and the existence of escape characters.

'

Single quotation mark (full quoting [single quote]).

All characters enclosed in single quotation marks are treated as the characters themselves,

Comma (comma operator [comma]).

1. Used to connect a series of mathematical expressions. This series of mathematical expressions are evaluated, but only the last evaluation result is returned. For example: ##.

##!/Bin/Bash

Lett1 = (((A = 5+1, B = 7+2))

## Echot1 = $ t1, a = $ a, b, b, b, b =$b

      ##This $t1=$b;

\

Backslash, backslash (escape [backslash]). 1. Placed before the special symbol, the function of escaping the special symbol only represents the special symbol itself, which is commonly used in strings;

2. Placed at the end of a line of instructions, indicating the subsequent carriage return Invalid (in fact, Enter is escaped), the input of subsequent new lines is still regarded as part of the current command

/

slash, slash (Filename path separator [forward slash]). .

1. As the separator of the path, there is only one slash in the path to represent the root directory, and the path starting with the slash represents the path starting from the root directory;

2. As operator, represents the division symbol. For example: a=4/2

`

Backquotes, backquotes (Command substitution[backquotes]). . The enclosed command can be executed and the execution result is assigned to a variable. For example: a=`dirname '/tmp/x.log'`. The result returned by dirname will be assigned to a. Note , here Mitchell specifically uses backticks and single quotes, pay attention to the difference

:

null command [colon]), what is this command? Neither is done, but there is a return value, and the return value is 0 (ie: true). The function of this command is very wonderful.

1. It can be used as a condition for while loop;

##2. Use it as a placeholder in the if branch (that is, when a certain branch does nothing);

3. Place it as a separator where there must be a binary operation, such as: ${username= `whoami`}

4. Assign a value to a string variable in parameter substitution, and truncate the length of a file to 0 in the redirection operation (>) (:>> When used like this, If the target exists, do nothing), this can only be used in ordinary files, not in pipes, symbolic links and other special files;

5. You can even use it to comment (the content after # will not be checked, but the content after : will be checked. If there is a syntax error in the statement, an error will be reported);

6. You can also use it as a domain separator, such as in the environment variable $PATH, Or in passwd, there is a colon as a domain separator;

7. You can also use a colon as a function name, but this will change the original meaning of the colon (if you accidentally use it as a function name, You can use unset -f: to undefine the function).

!

Exclamation mark (reverse (or negate) [bang], [exclamation mark]).

Negate a test result or exit status.

1. Indicates reverse logic, such as the following !=, which means not equal;

2. Indicates negation, such as: ls a[!0-9] #Indicates what follows a It is not a file followed by a number;

3. In different environments, the exclamation mark can also appear in indirect variable references;

4. In the command line, it can be used for historical commands To call the mechanism, you can try !$,!#, or !-3 to see, but be aware that this feature cannot be used in script files (it is disabled).

*

Asterisk (wildcard/arithmetic operator[asterisk]).

1. As a wildcard that matches file name extensions, it can automatically match every file in a given directory;

2. It can be used as a character qualifier in regular expressions to indicate the preceding The matching rules match any number of times;

3. Represents multiplication in arithmetic operations.

**

Double asterisk. In arithmetic operations, it means exponentiation operation.

?

Question mark (test operator/wildcard[Question mark]).

1. Represents conditional testing;

2. Represents C-style ternary operator ((condition?true-result:false-result)) within double brackets;

3. Used in parameter substitution expressions to test whether a variable has a value set;

4. As a wildcard character, used to match file name expansion properties and used to match a single character;

5. In a regular expression, it means matching the previous rule 0 or 1 times.

$

Dollar sign (Variable substitution[Dollar sign]).

1. As the leader of a variable, it is used as a variable replacement, that is, to quote the content of a variable, such as: echo $PATH;

2. In a regular expression, it is defined as the end of the line ( End offline).

${}

Parameter substitution (Variable substitution).

is used to represent variables in strings.

$'...'

Expand the quoted content and execute the escaped content within the single quotation marks (the single quotation marks are originally quoted as they are). In this way, one or Multiple [\] escaped octal, hexadecimal values ​​expanded to ASCII or Unicode characters.

$*

$@

Positional Parameters.

This is used when passing parameters when using script files. Both can return all parameters of the calling script file, but $* returns all parameters as a whole (string), while $@ returns each parameter as a unit as a parameter list. Note that you need to enclose $*, $@ in double quotes when using them. These two variables are affected by $IFS. If used in actual applications, some details should be considered.

$

# represents the number of parameters passed to the script.

$?

When this variable value is used, it returns the exit status code value of the last command, function, or script. If there is no error, it is 0, if it is non-0 , it means that there was an error in the last execution before this.

$$

Process ID variable, this variable saves the process ID value of running the current script.

()

Parenheses (parentheses).

1, Command group. A command enclosed by a set of parentheses is a command group, and the commands in the command group are executed in a subshell. Because it is running in a subshell, there is no way to get the value of the variable inside the brackets outside the brackets, but conversely, within the command group, you can get the outside value. This is a bit like the relationship between local variables and global variables. In implementation, if you encounter the need to cd to a subdirectory and return to the current directory after the operation is completed, you can consider using subshell to handle it;

2. Used for initialization of arrays.

{x,y,z,...}

Brace Expansion.

This expansion can be used to expand the parameter list in the command. The command will match and expand according to the pattern separated by brackets in the list. One thing to note is that there cannot be spaces in this curly brace expansion. If spaces are indeed necessary, they must be escaped or quoted using quotes. Example: echo {a,b,c}-{\ d," e",' f'}

{a..z}

This flower was added in Bash version 3 As an extension of bracket expansion, you can use {A..Z} to represent a list of all characters from A-Z. Mitchell tested this method and it seems that it only applies to A-Z, a-z, and numbers {minimum..max}. way to expand.

{}

Code blocks (curly brackets).

This is an anonymous function, but unlike a function, the variables in the code block can still be accessed after the code block. Note: There needs to be spaces and statements separated inside the curly braces. In addition, in xargs -i, it can also be used as a text placeholder to mark the location of the output text.

{} \;

This {} represents the path name. This is not built-in in the shell. From what I have seen now, it seems that it is only used in the find command. Pay attention to the semicolon at the end. This is the command sequence that ends the -exec option in the find command. When actually using it, it must be escaped to avoid being misunderstood by the shell.

[]

Square brackets.

1. Test representation, Shell will test the expression within []. It should be noted that [] is part of the Shell’s built-in test, rather than using the external command /usr/bin/test Link;

2. In the context of an array, it represents an array element. Fill in the position of the array element in the square brackets to obtain the content of the corresponding position, such as:

1. Array[ 1]=xxx

2. echo${Array[1]};

3. Indicates the range of the character set. In regular expressions, square brackets indicate the characters that can be matched at this position. Set range.

[[]]

Double brackets.

This structure is also a test, testing the expression in [[]] (Shell keyword). This is better than single square brackets in preventing logical errors in scripts. For example, the &&,||, operators can pass the test in a [[]], but not in []. There is no filename expansion or word splitting in [[]], but parameter expansion and command substitution can be used. Filename wildcards and delimiters like whitespace are not used. Note that if octal, hexadecimal, etc. appear here, the shell will automatically perform conversion comparison.

$[...]

The word expression represents integer expansion.

Execute integer expressions inside square brackets. Example:

1. a=3

2. b=7

3. echo$[$a+$b]

4. echo$ [$a*$b]

5. ##The return is 10 and 21

(())

double parentheses.

represents integer expansion.

In the double bracket structure, all expressions can be like C language, such as: a++, b--, etc.

In the double bracket structure, all variables do not need to be prefixed with the "$" symbol.

Double brackets can perform logical operations and four arithmetic operations

The double bracket structure extends for, while, if conditional test operations

Supports multiple expression operations, each expression Use "," to separate

>

&

>&

>>

Redirection.

scriptname >filename redirects the output of scriptname to the file filename, and overwrites the original file if the filename file exists;

command &>filename redirects the standard output (stdout) of command and Standard error (stderr) to the file filename;

command >&2 Redirect the standard output (stdout) of command to the standard error (stderr);

scriptname >>filename Append the output of scriptname (same as >) to the file filename, or create the file if it does not exist. One > indicates that the file will be overwritten if it exists, and created if it does not exist. Two >> indicates that it will be created if it does not exist. If it exists, it will be added to the original one.

[i]filename Open filename The file is used for reading or writing, and i is assigned to the file as its file descriptor (file descriptor). If the file does not exist, it will be created.

Double less then marks (here-document[double less then marks]).

This is also called Here-document and is used to redirect subsequent content to the stdin of the command on the left.

Three less than signs (here-strings). Here-string is similar to Here-document, here-strings syntax: command [args]

\<...>

Word boundary.

This is a special delimiter used in regular expressions to mark word boundaries. For example: the will match there, another, them, etc. If you only want to match the, you can use this word boundary character, \ will only match the.

|

Pipe. Pipes are a concept that exists in both Linux and Unix. It is a very basic and important concept. Its function is to use the output (stdout) produced by the command before the pipe (on the left) as the input (stdin) of the command after the pipe (on the right). For example: ls | wc l, you can use pipes to connect commands together. Note: The standard output of each process in a pipe will be used as the standard input of the next command. The standard output during the period cannot cross the pipe and be used as the standard input of the subsequent command, such as: cat filename | ls -al | sort. Think about the output of this? Also, the pipe runs as a child process, so the pipe cannot cause variables to change.

>|

Force redirection.

This will force overwriting of already existing files.

&

Run job in background[ampersand]).

If the command is followed by an & symbol, the command will run in the background.

&&

||

Logical operator.

In the test structure, these two operators can be used to connect two logical values. || returns 0 (true) when one of the test conditions is true, and false if all are false; && returns true (0) when both test conditions are true, and false if any.

-

Minus sign, hyphen (Hyphen/minus/dash).

1. As an option, the prefix [option, prefix] is used.

2. Source or destination for stdin or stdout redirection [dash]. When tar does not have bunzip2 program patch, we can do this: bunzip2 linux-2.6.13.tar.bz2 | tar xvf - . Use the previously decompressed data as the standard input of tar (a - is used here)

Note: During implementation, if the file name starts with [-], then add this as a directional operation When echoing a variable, an error may occur. At this time, a suitable prefix path should be added to the file to avoid this situation. Similarly, when echoing a variable, if the variable starts with [-], it may also occur. Unexpected results. To be on the safe side, you can use double quotes to quote scalars:

var="-n"

echo$var

var="-n"

echo$var

Try to see what the output is?

Also, this representation method is not built-in in Bash. To achieve this effect, you need to see whether the software you are using supports this operation;

3. Represents the previous Therefore, if you cd to another directory and want to put back the previous path, you can use cd - to achieve the purpose. In fact, the [-] here uses the environment variable $OLDPWD. Note: [-] here is different from the previous point;

4. The minus sign or negative sign is used in arithmetic operations.

=

Equals.

1. When assigning a value to a variable, is there any space on both sides of the equal sign?

2. Appears as a comparison operator in a comparison test. Note here that if it is in square brackets To appear as a comparison, there need to be spaces on both sides of the equal sign.

+

Plus.

1. Arithmetic operator, indicating addition;

2. In a regular expression, it means that the preceding matching rule matches at least once;

3. As an option marker in a command or filter, use + in some commands or built-in commands to enable certain options, and use - to disable;

4. In parameter substitution (parametersubstitution), the + prefix means Substitute value (when the variable is empty, use the value after +)

%

percent sign (modulo[percent sign]).

1. In arithmetic operations, this is the modulus operator, which is the remainder after division of two numbers;

2. In parameter substitution (parametersubstitution), it can be used as a pattern match. Example:

                                                                                                                                                                                                                                                                                      to #       ##Start searching from the right (think about which symbol is from the left?)

      ##Any content between b and 9 (inclusive)

        ##The first one is to find The shortest matching item

        ##The last one is to find the largest matching item (greedy matching?)

~

tilde (Home directory[tilde]).

This is the same as the internal variable $HOME. By default, it indicates the current user's home directory (home directory). This has the same effect as ~/. If the tilde is followed by the user name, it indicates the user's home directory.

^

caret.

1. In regular expressions, as the beginning-of-line position identifier of a line;

2. In parameter substitution (Parametersubstitution), this usage has two ways One caret (${var^}), or two (${var^^}), respectively means the first letter is capitalized, and all capitals means (Bash version >=4).

Blank

Whitespace.

White space not only refers to spaces (spaces), but also includes tabs (tabs), blank lines (blank lines), or a combination of these. It can be used as a function delimiter to separate commands or variables. A blank line will not affect the behavior of the script, so it can be used to plan the script code to increase readability. The built-in special variable $IFS can be used to target certain commands. The input parameters are split, and the default is the whitespace character. If there are whitespace characters in a string or variable, you can use quotes to avoid possible errors.

The above is the detailed content of Summary of commonly used special characters in bash. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The 5 Core Components of the Linux Operating SystemThe 5 Core Components of the Linux Operating SystemMay 08, 2025 am 12:08 AM

The five core components of the Linux operating system are: 1. Kernel, 2. System libraries, 3. System tools, 4. System services, 5. File system. These components work together to ensure the stable and efficient operation of the system, and together form a powerful and flexible operating system.

The 5 Essential Elements of Linux: ExplainedThe 5 Essential Elements of Linux: ExplainedMay 07, 2025 am 12:14 AM

The five core elements of Linux are: 1. Kernel, 2. Command line interface, 3. File system, 4. Package management, 5. Community and open source. Together, these elements define the nature and functionality of Linux.

Linux Operations: Security and User ManagementLinux Operations: Security and User ManagementMay 06, 2025 am 12:04 AM

Linux user management and security can be achieved through the following steps: 1. Create users and groups, using commands such as sudouseradd-m-gdevelopers-s/bin/bashjohn. 2. Bulkly create users and set password policies, using the for loop and chpasswd commands. 3. Check and fix common errors, home directory and shell settings. 4. Implement best practices such as strong cryptographic policies, regular audits and the principle of minimum authority. 5. Optimize performance, use sudo and adjust PAM module configuration. Through these methods, users can be effectively managed and system security can be improved.

Linux Operations: File System, Processes, and MoreLinux Operations: File System, Processes, and MoreMay 05, 2025 am 12:16 AM

The core operations of Linux file system and process management include file system management and process control. 1) File system operations include creating, deleting, copying and moving files or directories, using commands such as mkdir, rmdir, cp and mv. 2) Process management involves starting, monitoring and killing processes, using commands such as ./my_script.sh&, top and kill.

Linux Operations: Shell Scripting and AutomationLinux Operations: Shell Scripting and AutomationMay 04, 2025 am 12:15 AM

Shell scripts are powerful tools for automated execution of commands in Linux systems. 1) The shell script executes commands line by line through the interpreter to process variable substitution and conditional judgment. 2) The basic usage includes backup operations, such as using the tar command to back up the directory. 3) Advanced usage involves the use of functions and case statements to manage services. 4) Debugging skills include using set-x to enable debugging mode and set-e to exit when the command fails. 5) Performance optimization is recommended to avoid subshells, use arrays and optimization loops.

Linux Operations: Understanding the Core FunctionalityLinux Operations: Understanding the Core FunctionalityMay 03, 2025 am 12:09 AM

Linux is a Unix-based multi-user, multi-tasking operating system that emphasizes simplicity, modularity and openness. Its core functions include: file system: organized in a tree structure, supports multiple file systems such as ext4, XFS, Btrfs, and use df-T to view file system types. Process management: View the process through the ps command, manage the process using PID, involving priority settings and signal processing. Network configuration: Flexible setting of IP addresses and managing network services, and use sudoipaddradd to configure IP. These features are applied in real-life operations through basic commands and advanced script automation, improving efficiency and reducing errors.

Linux: Entering and Exiting Maintenance ModeLinux: Entering and Exiting Maintenance ModeMay 02, 2025 am 12:01 AM

The methods to enter Linux maintenance mode include: 1. Edit the GRUB configuration file, add "single" or "1" parameters and update the GRUB configuration; 2. Edit the startup parameters in the GRUB menu, add "single" or "1". Exit maintenance mode only requires restarting the system. With these steps, you can quickly enter maintenance mode when needed and exit safely, ensuring system stability and security.

Understanding Linux: The Core Components DefinedUnderstanding Linux: The Core Components DefinedMay 01, 2025 am 12:19 AM

The core components of Linux include kernel, shell, file system, process management and memory management. 1) Kernel management system resources, 2) shell provides user interaction interface, 3) file system supports multiple formats, 4) Process management is implemented through system calls such as fork, and 5) memory management uses virtual memory technology.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools