alias
alias
命令用于为命令创建别名,以便简化输入和提高效率。
用法示例
这个命令会创建一个别名 ll
,用于执行 ls -la
命令。
常见用法
这个命令会创建一个别名 gs
,用于快速查看 Git 状态。
这个命令会创建一个别名 rm
,在删除文件时提示确认。
这个命令会列出当前会话中所有已定义的别名。
这个命令会删除别名 ll
。
- 将别名永久保存:
可以将别名添加到用户的 ~/.bashrc
或 ~/.bash_aliases
文件中,以便在每次登录时自动加载。
1 2
| echo "alias ll='ls -la'" >> ~/.bashrc source ~/.bashrc
|
1
| alias mygrep='grep --color=auto'
|
这个命令会创建一个别名 mygrep
,在使用 grep
时自动启用颜色高亮。
这个命令会创建一个别名 h
,用于快速查看命令历史。
awk
awk
是一个强大的文本处理工具,主要用于模式扫描和处理。它可以从文本文件中提取和处理数据。
用法示例
1
| awk '{print $1}' filename.txt
|
这个命令会打印 filename.txt
文件中每一行的第一个字段。
常见用法
1
| awk 'END {print NR}' filename.txt
|
1
| awk '{sum += $1} END {print sum}' filename.txt
|
1
| awk '/pattern/' filename.txt
|
cat
cat
命令用于连接文件并打印到标准输出,常用于查看文件内容。
用法示例
这个命令会打印 filename.txt
文件的所有内容。
常见用法
1
| cat filename.txt > newfile.txt
|
1
| cat filename.txt >> existingfile.txt
|
cd
cd
命令用于更改当前工作目录。
用法示例
这个命令会将当前工作目录更改为指定的目录。
常见用法
这个命令会切换到当前目录下的 subdirectory
目录。
- 切换到多个目录(使用
pushd
和 popd
):
1 2 3
| pushd /path/to/directory
popd
|
这个命令会将当前目录推入目录栈并切换到指定目录,popd
则会返回到之前的目录。
chmod
chmod
命令用于更改文件或目录的权限。
用法示例
这个命令会将 filename.txt
的权限更改为可读、可写和可执行(所有者),可读和可执行(组和其他用户)。
常见用法
1
| chmod -R 755 directory_name
|
1 2 3
| chmod u+x filename.txt chmod g-w filename.txt chmod o=r filename.txt
|
chown
chown
命令用于更改文件或目录的所有者和所属组。
用法示例
1
| chown user:group filename.txt
|
这个命令会将 filename.txt
的所有者更改为 user
,所属组更改为 group
。
常见用法
1
| chown :group filename.txt
|
1
| chown -R user:group directory_name
|
1
| chown user1:usergroup file1.txt file2.txt
|
cp
cp
命令用于复制文件和目录。
用法示例
1
| cp source.txt destination.txt
|
这个命令会将 source.txt
文件复制到 destination.txt
。
常见用法
1
| cp filename.txt /path/to/directory/
|
1
| cp -r sourcedir/ targetdir/
|
1
| cp filename.txt newname.txt
|
1
| cp -i filename.txt destination.txt
|
1
| cp -p filename.txt destination.txt
|
curl
curl
是一个用于在命令行中进行数据传输的工具,支持多种协议,包括 HTTP、HTTPS、FTP 等。
用法示例
这个命令会从 http://example.com
下载内容并打印到标准输出。
常见用法
1
| curl -O http://example.com/file.txt
|
1
| curl -X POST -d "param1=value1¶m2=value2" http://example.com/api
|
1
| curl -H "Authorization: Bearer TOKEN" http://example.com/api
|
1
| curl -v http://example.com
|
1
| curl -o output.txt http://example.com
|
df
df
命令用于显示文件系统的磁盘空间使用情况。
用法示例
这个命令会显示所有挂载的文件系统的磁盘使用情况。
常见用法
这个命令会显示每个文件系统的 inode 使用情况。
du
du
命令用于显示目录或文件的磁盘使用情况。
用法示例
这个命令会显示指定目录及其子目录的磁盘使用情况。
常见用法
1
| du -sh /path/to/directory
|
这个命令会以人类可读的格式(如 KB、MB、GB)显示指定目录的总大小。
1
| du -h /path/to/directory
|
这个命令会以人类可读的格式显示指定目录下每个子目录的大小。
1
| du -ah /path/to/directory
|
这个命令会显示指定目录及其所有子目录和文件的大小。
1
| du -sh /path/to/directory/* | sort -h
|
这个命令会显示指定目录下每个文件和子目录的大小,并按大小排序。
1
| du -h --max-depth=1 /path/to/directory
|
这个命令会显示指定目录下的每个子目录的大小,但只显示到第一层深度。
1
| du -x /path/to/directory
|
这个命令会限制 du
只计算指定目录所在的文件系统的大小。
echo
echo
命令用于在终端输出文本或变量的值。
用法示例
这个命令会在终端打印 Hello, World!
。
常见用法
1 2
| name="Alice" echo "Hello, $name!"
|
1
| echo -e "Line 1\nLine 2"
|
1
| echo -n "This is on the same line."
|
1
| echo "This is a dollar sign: \$"
|
find
find
命令用于在目录中查找文件和目录,支持多种搜索条件。
用法示例
1
| find /path/to/directory -name "filename.txt"
|
这个命令会在指定目录中查找名为 filename.txt
的文件。
常见用法
1
| find /path/to/directory -type f -name "*.txt"
|
这个命令会查找所有以 .txt
结尾的文件。
1
| find /path/to/directory -size +10M
|
这个命令会查找大于 10MB 的文件。
1
| find /path/to/directory -mtime -7
|
这个命令会查找最近 7 天内修改过的文件。
1
| find /path/to/directory -name "*.log" -exec rm {} \;
|
这个命令会查找所有 .log
文件并删除它们。
1
| find /path/to/directory -name "*.txt" -print
|
这个命令会查找所有 .txt
文件并打印其路径。
1
| find /path/to/directory -type f -empty
|
这个命令会查找所有空文件。
1
| find /path/to/directory -user username
|
这个命令会查找属于指定用户的文件。
grep
grep
命令用于在文件中搜索指定的模式,并打印匹配的行。
用法示例
1
| grep "pattern" filename.txt
|
这个命令会在 filename.txt
文件中搜索包含 pattern
的行并打印出来。
常见用法
1
| grep -i "pattern" filename.txt
|
1
| grep -n "pattern" filename.txt
|
1
| grep -r "pattern" /path/to/directory/
|
1
| grep -o "pattern" filename.txt
|
1
| grep -v "pattern" filename.txt
|
head
head
命令用于显示文件的开头部分,默认情况下显示前 10 行。
用法示例
这个命令会打印 filename.txt
文件的前 10 行。
常见用法
这个命令会打印 filename.txt
文件的前 5 行。
1
| head file1.txt file2.txt
|
这个命令会打印 filename.txt
文件的前 20 个字节。
history
history
命令用于显示用户在当前会话中输入的命令历史记录。
用法示例
这个命令会列出当前用户在终端中输入的所有命令。
常见用法
这个命令会显示最近输入的 10 条命令。
其中 n
是命令在历史记录中的编号。例如,!5
会重新执行历史记录中编号为 5 的命令。
这个命令会清空当前会话的命令历史记录。
这个命令会将当前会话的命令历史保存到 history.txt
文件中。
1
| history | grep "pattern"
|
这个命令会在历史记录中搜索包含 pattern
的命令。
这个命令会重新执行上一个输入的命令。
kill/killall
kill
命令用于向进程发送信号,通常用于终止进程。
用法示例
这个命令会向指定的进程 ID(PID)发送终止信号。
常见用法
这个命令会强制终止指定的进程。
1
| ps aux | grep process_name
|
ls
ls
命令用于列出目录中的文件和子目录。
用法示例
这个命令会列出当前目录中的所有文件和子目录。
常见用法
man
man
命令用于查看其他命令的手册页,提供命令的详细信息和用法。
用法示例
这个命令会显示 command_name
的手册页。
常见用法
这个命令会列出所有包含 keyword
的手册页。
- 查看手册页的特定部分(例如,用户命令、系统调用等):
1 2 3
| man 1 command_name man 2 command_name man 3 command_name
|
这个命令会显示 man
命令本身的手册页。
mv
mv
命令用于移动或重命名文件和目录。
用法示例
1
| mv oldname.txt newname.txt
|
这个命令会将 oldname.txt
文件重命名为 newname.txt
。
常见用法
1
| mv filename.txt /path/to/directory/
|
1
| mv filename.txt /path/to/directory/newname.txt
|
1
| mv -i filename.txt /path/to/directory/
|
1
| mv -f filename.txt /path/to/directory/
|
ps
ps
命令用于显示当前运行的进程信息。
用法示例
这个命令会列出当前用户的所有进程。
常见用法
pwd
pwd
命令用于显示当前工作目录的完整路径。
用法示例
这个命令会打印当前工作目录的绝对路径。
常见用法
1 2
| current_dir=$(pwd) echo "当前目录是: $current_dir"
|
1
| cd /path/to/directory && pwd
|
这个命令会切换到指定目录并显示该目录的路径。
rm
rm
命令用于删除文件和目录。
用法示例
这个命令会删除 filename.txt
文件。
常见用法
scp
scp
命令用于在本地和远程主机之间安全地复制文件。
用法示例
1
| scp localfile.txt user@remotehost:/path/to/destination
|
这个命令会将本地的 localfile.txt
文件复制到远程主机的指定路径。
常见用法
1
| scp user@remotehost:/path/to/remotefile.txt /local/path
|
1
| scp -r localdir user@remotehost:/path/to/destination
|
1
| scp -P 2222 localfile.txt user@remotehost:/path/to/destination
|
1
| scp -p localfile.txt user@remotehost:/path/to/destination
|
1
| scp -v localfile.txt user@remotehost:/path/to/destination
|
sed
sed
是一个流编辑器,用于对文本进行基本的转换和处理。
用法示例
1
| sed 's/old/new/' filename.txt
|
这个命令会将 filename.txt
文件中每一行的第一个 old
替换为 new
。
常见用法
1
| sed 's/old/new/g' filename.txt
|
1
| sed '2s/old/new/' filename.txt
|
这个命令会在第二行中将 old
替换为 new
。
这个命令会删除 filename.txt
文件的第三行。
1
| sed -i 's/old/new/g' filename.txt
|
1
| sed = filename.txt | sed 'N;s/\n/ /'
|
ssh
ssh
命令用于安全地远程登录到另一台计算机。
用法示例
这个命令会以 user
用户身份登录到 remotehost
。
常见用法
1
| ssh -p 2222 user@remotehost
|
1
| ssh user@remotehost 'command_to_run'
|
1
| ssh -i /path/to/private_key user@remotehost
|
1
| ssh -L local_port:remotehost:remote_port user@remotehost
|
1
| scp localfile.txt user@remotehost:/path/to/destination
|
tail
tail
命令用于显示文件的结尾部分,默认情况下显示最后 10 行。
用法示例
这个命令会打印 filename.txt
文件的最后 10 行。
常见用法
这个命令会打印 filename.txt
文件的最后 5 行。
1
| tail file1.txt file2.txt
|
这个命令会打印 filename.txt
文件的最后 20 个字节。
tar
tar
命令用于打包和压缩文件,常用于备份和传输文件。
用法示例
1
| tar -cvf archive.tar /path/to/directory
|
这个命令会将指定目录打包成 archive.tar
文件。
常见用法
1
| tar -czvf archive.tar.gz /path/to/directory
|
这个命令会将指定目录打包并压缩成 archive.tar.gz
文件。
这个命令会解压 archive.tar
文件。
1
| tar -xzvf archive.tar.gz
|
这个命令会解压 archive.tar.gz
文件。
这个命令会列出 archive.tar
文件中的内容。
top
top
命令用于实时显示系统中正在运行的进程和系统资源的使用情况。
用法示例
这个命令会打开一个动态更新的界面,显示当前系统的进程信息和资源使用情况。
常见用法
显示进程的详细信息:
在 top
界面中,可以按 Shift + M
按内存使用量排序,按 Shift + P
按 CPU 使用量排序。
结束进程:
在 top
界面中,按 k
键,然后输入要结束的进程 ID(PID),最后按 Enter
。
刷新间隔:
在 top
界面中,按 d
键可以设置刷新间隔(以秒为单位)。
显示帮助信息:
在 top
界面中,按 h
键可以查看帮助信息。
退出 top
:
在 top
界面中,按 q
键可以退出。
touch
touch
命令用于创建空文件或更新文件的时间戳。
用法示例
这个命令会创建一个名为 filename.txt
的空文件,如果文件已存在,则更新其最后修改时间。
常见用法
1
| touch file1.txt file2.txt file3.txt
|
1
| touch -t 202301010101 filename.txt
|
这个命令会将 filename.txt
的时间戳设置为 2023 年 1 月 1 日 01:01。
这个命令会更新 filename.txt
的访问时间为当前时间。
vi
vi
是一个强大的文本编辑器,广泛用于 Unix 和 Linux 系统中。
用法示例
打开文件:
这个命令会打开 filename.txt
文件进行编辑。
常见用法
进入插入模式:
在命令模式下,按 i
进入插入模式,可以开始编辑文本。
保存并退出:
在命令模式下,输入 :wq
保存文件并退出 vi
。
仅保存:
在命令模式下,输入 :w
仅保存文件而不退出。
退出不保存:
在命令模式下,输入 :q!
强制退出而不保存更改。
删除行:
在命令模式下,输入 dd
删除当前行。
撤销操作:
在命令模式下,输入 u
撤销上一步操作。
查找文本:
在命令模式下,输入 /pattern
查找指定的 pattern
。
替换文本:
在命令模式下,输入 :%s/old/new/g
将文件中的所有 old
替换为 new
。
vim
vim
是 vi
的增强版,提供了更多功能和更好的用户体验。
用法示例
打开文件:
这个命令会打开 filename.txt
文件进行编辑。
常见用法
进入插入模式:
在命令模式下,按 i
进入插入模式,可以开始编辑文本。
保存并退出:
在命令模式下,输入 :wq
保存文件并退出 vim
。
仅保存:
在命令模式下,输入 :w
仅保存文件而不退出。
退出不保存:
在命令模式下,输入 :q!
强制退出而不保存更改。
删除行:
在命令模式下,输入 dd
删除当前行。
撤销操作:
在命令模式下,输入 u
撤销上一步操作。
查找文本:
在命令模式下,输入 /pattern
查找指定的 pattern
。
替换文本:
在命令模式下,输入 :%s/old/new/g
将文件中的所有 old
替换为 new
。
显示行号:
在命令模式下,输入 :set number
显示行号。
语法高亮:
在命令模式下,输入 :syntax on
启用语法高亮。
wget
wget
是一个用于从网络下载文件的命令行工具,支持 HTTP、HTTPS 和 FTP 协议。
用法示例
1
| wget http://example.com/file.txt
|
这个命令会从指定的 URL 下载 file.txt
文件。
常见用法
1
| wget -O newname.txt http://example.com/file.txt
|
1
| wget -r http://example.com
|
1
| wget --limit-rate=200k http://example.com/file.txt
|
1
| wget -c http://example.com/file.txt
|
1
| wget -q http://example.com/file.txt
|
这个命令会从 filelist.txt
文件中读取 URL 并下载。
xargs
xargs
命令用于将标准输入的数据转换为命令行参数,常用于处理大量数据。
用法示例
1
| echo "file1.txt file2.txt file3.txt" | xargs rm
|
这个命令会删除 file1.txt
、file2.txt
和 file3.txt
文件。
常见用法
1
| xargs -a filelist.txt rm
|
这个命令会从 filelist.txt
文件中读取文件名并删除它们。
1
| find . -name "*.txt" | xargs -n 2 rm
|
这个命令会每次删除两个 .txt
文件。
1
| echo "file1.txt,file2.txt,file3.txt" | xargs -d ',' rm
|
这个命令会使用逗号作为分隔符来删除文件。
1
| find . -name "*.log" | xargs grep "error"
|
这个命令会在所有 .log
文件中搜索包含 “error” 的行。