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 ..
去到上级目录。
cd
或 cd ~
回到用户的个人目录。
如果需要在两个目录间变动,可以用 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 [进程]
结束进程