很多 Linux 发行版的默认 shell 是 GNU bash shell。本文将介绍 bash shell 的基本特性,比如 bash 手册、命令行补全以及如何显示文件内容等。
GNU bash shell 是一个程序,提供了对 Linux 系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。系统启动的 shell 程序取决于用户账户的配置。
下面是从
/etc/passwd
文件中摘取的样例条目:wkd:x:1001:1001:,,,:/home/wkd:/bin/bash
以
:
为分隔符分为7个段,其中第7个段指定了用户使用的 shell 程序,我这里是/bin/bash
,当wkd这个用户登录时,GNU bash shell 会自行启动。
默认的 bash shell 提示符是美元符号(
$
),这个符号表明 shell 在等待用户输入命令。不同的Linux 发行版会采用不同格式的提示符。 Ubuntu Linux 系统的 shell 提示符是这样的:wkd@ubuntu-virtual-machine:~$
如果切换到 root 用户,bash shell 提示符就变成井号(
#
):wkd@ubuntu-virtual-machine:~$ sudo su sudo: /etc/sudoers.d is world writable [sudo] password for lu: root@ubuntu-virtual-machine:/home/wkd#
man 命令可以访问 Linux 系统的手册页。在 man 命令之后跟上想要查看的命令名,就可以显示相应的手册页。
在命令行输入man ls
,出现下图手册页:
进入手册页后,无法鼠标滑动来翻页,可以通过键盘的上下键来翻行。
想退出的话,可以按q
退出。
在 Linux 文件系统中,可以使用目录切换( cd)命令来将 shell 会话切换到另一个目录。
cd 命令的语法非常简单:cd dir
在 cd 后面的dir是一个目录名称
pwd
命令可以查看当前目录的绝对路径:wkd@ubuntu-virtual-machine:~$ pwd /home/wkd
ls 命令最基本的形式会显示当前目录下的文件和目录:
wkd@ubuntu-virtual-machine:/home/wkd$ ls Desktop Documents Downloads Music Pictures Public Templates Videos
ls -F
:区分文件和文件夹;wkd@ckzn-virtual-machine:~$ ls -F Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/
ls -a
:显示隐藏文件;wkd@ubuntu-virtual-machine:~$ ls -a . .ICEauthority .bash_logout .cache .dotnet .local .profile .vscode-server Desktop Downloads Pictures Templates .. .bash_history .bashrc .config .gnupg .pam_environment .viminfo .xinputrc Documents Music Public Videos
ls -R
:递归显示;wkd@ubuntu-virtual-machine:~$ ls -R .: Desktop Documents Downloads Music Pictures Public Templates Videos ./Desktop: ./Documents: ./Downloads: ./Music: ./Pictures: ./Public: ./Templates: ./Videos:
ls -l
:显示长列表;wkd@ubuntu-virtual-machine:~$ ls -l total 32 drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Desktop drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Documents drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Downloads drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Music drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Pictures drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Public drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Templates drwxr-xr-x 2 lu lu 4096 Jan 10 14:38 Videos
touch 命令用于创建空文件,用法是直接在命令后面加文件名,如:
touch filename
touch 一个已存在的文件,会修改该文件的时间,不会修改内容。
cp 命令最基本的用法需要两个参数,即源对象和目标对象:
cp source destination
。
当参数 source 和 destination 都是文件名时, cp 命令会将源文件复制成一个新的目标文件,并以 destination 命名。
cp 命令的 -R 选项威力强大。可以用它在单个命令中递归地复制整个目录的内容:wkd@ubuntu-virtual-machine:~$ ls -l Documents/ total 0 -rw-r--r-- 1 lu lu 0 Jun 28 12:50 testone wkd@ubuntu-virtual-machine:~$ cp -R Documents/ NewDocuments/ wkd@ubuntu-virtual-machine:~$ ls -l NewDocuments/ total 0 -rw-r--r-- 1 lu lu 0 Jun 28 12:51 testone wkd@ubuntu-virtual-machine:~$
在 Linux 中有两种类型的文件链接。
- 符号链接:(也称为软链接)是一个实实在在的文件,该文件指向存放在虚拟目录结构中某个
地方的另一个文件。
要为一个文件创建符号链接,原始文件必须事先存在。然后可以使用ln -s 原始文件名 符号链接名
来创建符号链接。- 硬链接:创建的是一个独立的虚拟文件,其中包含了原始文件的信息以及位置。但是两者就根本而言是同一个文件。
要想创建硬链接,原始文件也必须事先存在,可以使用ln 原始文件名 硬链接名
在 Linux 中,重命名文件称为移动( moving)。mv 命令可以将文件和目录移动到另一个位置或是重新命名:
wkd@ubuntu-virtual-machine:~$ mv NewDocuments/ OldDocuments/ wkd@ubuntu-virtual-machine:~$ ls Desktop Documents Downloads Music OldDocuments Pictures Public Templates Videos test_one
在 Linux 中,删除( deleting)叫作移除( removing)。 bash shell 中用于删除文件的命令是 rm。
-i 选项会询问你是否真的要删除该文件.
shell 没有回收站或者垃圾箱这样的东西,文件一旦被删除,就再也找不回来了。
在 Linux 中创建目录很简单,使用 mkdir 命令,用法:
mkdir 文件夹名
可以根据需要“批量”地创建目录和子目录。为此,要使用 mkdir 命令的-p 选项:
删除目录的基本命令是 rmdir:
在默认情况下, rmdir 命令只删除空目录.
也可以在整个非空目录中使用 rm 命令。 -r 选项使得 rm 命令可以向下进入( descend into)目录,删除其中的文件,然后再删除目录本身;
一口气删除目录树的最终解决方案是使用rm -rf
命令
如果文章有帮助的话,点赞、收藏⭐,支持一波,谢谢