Bash入门

Bash是 linux 默认的 Shell,这个文章会大致过一次 Bash的常用命令,满足日常 Linux 的使用。

ls

ls 会展示当前目录的内容(文件和文件夹)。一般进入Bash后,所在的目录为当前用户的个人目录。(注:目录其实就是文件夹)

可以通过命令前面的字符知道当前是什么用户,比如在我的树莓派上,前面的字符为 pi@raspberry:~\$ ,pi为用户名,raspberry 为电脑名,~代表用户的个人目录,$表示当前用户为标准用户。

Linux 的目录结构与 windows 不同,它并不区分CDE盘,只用文件夹来区分。

ls 后面可以接选项:

  • ls [目录] 能显示指定目录的内容。
  • ls -a 显示隐藏文件(以 . 开头的文件)
  • ls -l 显示详细信息
  • ls -la 显示全部文件的全部信息

pwd

pwd 会展示当前在哪个目录(即显示当前目录的路径)

路径分为绝对路径与相对路径。绝对路径是完整的路径,从根开始;相对路径是省略的路径。它们的写法不同:

  • 绝对路径

    形如 /home/pi ,以斜杠 / 开头。

  • 相对路径

    有两种,如果直接以文件名开头(即无 / ),则前面省略的是当前目录。比如 当前在 /home/pi 目录,那么 相对路径 download 就相当于 /home/pi/download

    如果是以 ~ 开头,则前面省略的是用户的个人目录。比如 当前是pi用户,相对路径 ~/download 就相当于 /home/pi/download

cd

cd [目录] 可以改变当前目录,去到目标目录。

有个小技巧,输入目录或命令的前几个字母,然后按 Tab 就可以自动补全。如果有多个匹配,双击 Tab 可以查看匹配项。

注意,如果目录名中有空格,需要在空格前加反斜杠\

cd .. 去到上级目录。

cdcd ~ 回到用户的个人目录。

如果需要在两个目录间变动,可以用 pushd [目录]popd ,好处是不会忘记上一个目录。

file

file [文件] 会展示目标文件的类型。当然,也可以用 file [目录] ,这会告诉你这是目录。一般 Bash 会用颜色区分文件与目录,没有的话就用这个命令区分。

locate

locate [关键字] 查找含有关键字的文件与目录,但这只会在索引中查找,如果索引没更新,可能找不到,这时只需用 sudo updatedb 更新索引即可。

which

which [命令] 查找命令,并显示命令安装的目录

history

history 显示已输入的命令,最多显示1000条。当然,也可以用上下方向键来翻看之前的命令

whatis

whatis [命令] 查看命令的功能

apropos

apropos [关键字] 查找名字中有关键字或功能介绍中有关键字的命令

man

man [命令] 查看命令的用法,内容比 whatis 详细


mkdir

mkdir [目录名] 创建目录,目录名可以不止一个,多个目录名之间用空格隔开

touch

touch [目录名] 功能和 mkdir 差不多,但如果目录存在,则不会创建。

cp

cp [目录/文件] [重命名] 将目录/文件复制到当前目录,并将之重命名

mv

mv [目录/文件] [重命名] 将目录/文件移动到当前目录,并将之重命名。这个可以用来重命名。

rm

  • rm [文件] 删除文件
  • rm * 删除当前目录的所有文件
  • rm [关键字]* 删除以关键字开头的所有文件
  • rm -r [目录] 删除目录和里面的文件
  • rmdir [目录] 删除空目录,如果目录内有文件,则不会删除。可以用 rmdir * 删除当前目录内的所有空目录

cat

cat [文本文件] 将文本文件的内容输出

cat >> [文件] 向文件中写入文本,用 Ctrl+D 来终止写入

more

more [文本文件] 将文件中文本展示出来,用空格向下滚动,用 Q 退出

less

和more差不多,但比more强大一点,因为 Less is More

nano

nano [文件] Linux内置的文本编辑器,用 Ctrl+X 退出。

重定向

在命令后面加 ` » [文件],将命令的输出追加到文件;加 > [文件]`,将命令的输出覆盖到文件

管道

[命令] | [命令] 将前一个命令的输出输入到后一个目录


sudo

在命令前面加 sudo,以超级用户的身份运行命令。不建议用root用户的身份直接运行命令,可以用 sudo -s 临时进入root,用 exit 退出。

su

su - [用户名] 转换用户,并进入用户的个人目录。如果不加 -,则不会进入用户的个人目录。

su - 转换为root用户

users

users 展示当前已登陆的用户

id

id 展示已登陆的用户和id

文件权限

文件权限有三类:r读权限,w写权限,x执行权限。一般每个文件的权限由一个7bit的byte控制,即-011000000,解释如下:

  • 1~3 所有用户,即任意用户,rwx
  • 4~6 用户组,即创建者所属的用户组,rwx
  • 7~9 用户,即创建者,rwx

觉得我讲的晕,可以上网找张图看看。

chmod

chmod +X [文件] 使所有用户都能执行该文件

chmod [数字] [文件] 编辑文件的权限byte,常见的数字有:

  • 700 只有创建者能弄文件,其他人什么都不能做
  • 744 只有创建者能执行文件,其他人只能看读写
  • 755 只有创建者能修改文件

killall

killall [进程] 结束进程