Linux入门第二节-Bash Shell
一.开始字段
xzw@fuck:~$
# xzw是用户名,@是分隔符,fuck是计算机名
# :当前所在目录,~是用户目录,$等待用户输入
$ 表示普通用户, # 表示是管理员,如果是普通用户那么有些命令需要用到sudo(暂时获得管理员身份),下面的内容都是普通用户身份;
二.Linux根目录(一切皆文件)
在Linux或Unix操作系统中,所以的文件和目录都被组织成以一个根节点开始的倒置的树状图结构,文件系统的最顶部是由根目录开始的,系统使用/来表示根目录。在根目录之下的即可以是目录,也可以是文件,如此反复就可以构成一个庞大的文件系统。
xzw@fuck:~$ cd /
xzw@fuck:/$ ls
bin cdrom etc lib lib64 lost+found mnt proc run snap swapfile tmp var
boot dev home lib32 libx32 media opt root sbin srv sys usr
-
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 -
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
-
/etc:
系统配置文件目录。 -
/cdrom:
光盘目录,以淘汰。 -
/lib:
库目录。 -
/lost+found:
紧急状况目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/mnt:
挂载目录,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/media:
媒体目录,linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 -
/run:
运行目录。 -
/snap
包管理,软件包安装管理方式。 -
/tmp:
临时目录是用来存放一些临时文件的。、 -
/var:
可变目录,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/opt:
可选目录,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/boot:
启动目录,这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
设备目录, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/srv:
服务目录,该目录存放一些服务启动之后需要提取的数据。 -
/usr/src:
内核源代码默认的放置目录。 -
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
三.常见命令
在Linux文件系统中有两个特殊的目录,当前目录、用.表示,父目录、用..表示
1.一些快捷方式
ctrl
+c强制退出
+c+Shift粘贴
+左右键跳跃单词
+a跳到开头
+e跳到结尾
+w删除光标前一个单词
+u删除一行光标之前内容
+k删除一行光标后面内容
2.绝对路径与相对路径
(1).绝对路径:如win 盘符:\文件夹\…\文件.文件后缀;
(2).相对路径:我在哪?相对对于谁?
3.pwd
# pwd输出当前绝对路径,如下
xzw@fuck:~/桌面$ pwd
/home/xzw/桌面
# man疑难解答,可以查看你使用的这个命令的说明
xzw@fuck:~/桌面$ man pwd
4.ls
# ls用于显示当前文件夹之下的内容,如下
xzw@fuck:~$ ls
公共的 模板 视频 图片 文档 下载 音乐 桌面 snap
# ls -a显示位置的所有文件(隐藏文件)
xzw@fuck:~$ ls -a
. 公共的 视频 文档 音乐 .bash_history .bashrc .config .lesshst .profile .sudo_as_admin_successful .viminfo
.. 模板 图片 下载 桌面 .bash_logout .cache .gnupg .local snap .vim .vimrc
# ls -l显示文件权限,作者,大小,创建时间
,可以使用缩写ll
xzw@fuck:~$ ll
总计 120
drwxr-xr-x 16 xzw xzw 4096 8月 9 17:35 ./
drwxr-xr-x 3 root root 4096 7月 2 19:08 ../
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 公共的/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 模板/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 视频/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 图片/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 文档/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 下载/
drwxr-xr-x 2 xzw xzw 4096 7月 2 19:19 音乐/
drwxr-xr-x 3 xzw xzw 4096 8月 9 17:28 桌面/
-rw------- 1 xzw xzw 15212 8月 3 09:41 .bash_history
-rw-r--r-- 1 xzw xzw 220 7月 2 19:08 .bash_logout
-rw-r--r-- 1 xzw xzw 3811 7月 9 19:02 .bashrc
5.cd
# cd切换目录,如下
xzw@fuck:~$ ls
公共的 模板 视频 图片 文档 下载 音乐 桌面 snap
xzw@fuck:~$ cd snap
xzw@fuck:~/snap$
# cd ..返回上一个目录
xzw@fuck:~/snap$ cd ..
xzw@fuck:~$
# cd -返回上一个操作目录
xzw@fuck:~$ cd -
/home/xzw/snap
xzw@fuck:~/snap$
6.touch与mkdir
# touch创建文件
xzw@fuck:~/桌面$ ls
练习
xzw@fuck:~/桌面$ touch 烦烦烦
xzw@fuck:~/桌面$ ls
烦烦烦 练习
# touch更新文件写入时间
xzw@fuck:~/桌面$ ll
总计 12
drwxr-xr-x 3 xzw xzw 4096 8月 9 17:50 ./
drwxr-xr-x 16 xzw xzw 4096 8月 9 17:35 ../
-rw-rw-r-- 1 xzw xzw 0 8月 9 17:50 烦烦烦
drwxrwxr-x 4 xzw xzw 4096 8月 3 09:41 练习/
xzw@fuck:~/桌面$ touch 烦烦烦
xzw@fuck:~/桌面$ ll
总计 12
drwxr-xr-x 3 xzw xzw 4096 8月 9 17:50 ./
drwxr-xr-x 16 xzw xzw 4096 8月 9 17:35 ../
-rw-rw-r-- 1 xzw xzw 0 8月 9 17:51 烦烦烦
drwxrwxr-x 4 xzw xzw 4096 8月 3 09:41 练习/
# mkdir 创建文件夹
xzw@fuck:~/桌面$ ls
烦烦烦 练习
xzw@fuck:~/桌面$ mkdir a
xzw@fuck:~/桌面$ ls
烦烦烦 练习 a
7.cp
# cp复制文件或目录,复制谁,复制到那里
xzw@fuck:~/桌面$ ls
烦烦烦 练习 a
xzw@fuck:~/桌面$ cp 烦烦烦 a
xzw@fuck:~/桌面$ cd a
xzw@fuck:~/桌面/a$ ls
烦烦烦
# cp -i需要确认是否覆盖
xzw@fuck:~/桌面/a$ cd ..
xzw@fuck:~/桌面$ cp -i 烦烦烦 a
cp: 是否覆盖 'a/烦烦烦'? y
# /*复制目录下面的文件与目录
xzw@fuck:~/桌面$ mkdir b
xzw@fuck:~/桌面$ ls
烦烦烦 练习 a b
xzw@fuck:~/桌面$ cp a/* b
xzw@fuck:~/桌面$ cd b
xzw@fuck:~/桌面/b$ ls
烦烦烦
# cp -r将指定目录下的所以文件与子目录一并处理
xzw@fuck:~/桌面$ ls
烦烦烦 练习 a b
xzw@fuck:~/桌面$ cp -r a b
xzw@fuck:~/桌面$ cd b
xzw@fuck:~/桌面/b$ ls
烦烦烦 a
8.mv
# mv移动(谁,到哪)
xzw@fuck:~/桌面/b$ ls
烦烦烦 a
xzw@fuck:~/桌面/b$ mv 烦烦烦 a
xzw@fuck:~/桌面/b$ ls
a
xzw@fuck:~/桌面/b$ cd a
xzw@fuck:~/桌面/b/a$ ls
烦烦烦
# -b覆盖前备份
#重命名(谁,啥)
xzw@fuck:~/桌面/b/a$ ls
烦烦烦
xzw@fuck:~/桌面/b/a$ mv 烦烦烦 a
xzw@fuck:~/桌面/b/a$ ls
a
9.rm
# rm删除(可怕)
xzw@fuck:~/桌面/b/a$ ls
a
xzw@fuck:~/桌面/b/a$ rm a
xzw@fuck:~/桌面/b/a$ ls
# rm -rf强制删除整个文件夹无需确认
xzw@fuck:~/桌面/b$ ls
a
xzw@fuck:~/桌面/b$ rm -rf a
xzw@fuck:~/桌面/b$ ls
# rm -i确认是否删除
xzw@fuck:~/桌面$ ls
烦烦烦 练习 a b
xzw@fuck:~/桌面$ rm -i 烦烦烦
rm: 是否删除普通空文件 '烦烦烦'? y
xzw@fuck:~/桌面$ ls
练习 a b
10.查看文件
# cat(用于查看比较短的文件)
xzw@fuck:~/桌面/a$ ls
烦烦烦
xzw@fuck:~/桌面/a$ cat 烦烦烦
3
33
44
555
5555
2223
33
44
555
5555
222
# less (分屏浏览), UP Dn q退出
# more(按页数查看文件),B上 空格下 q退出
11.查看文件开头与结尾
# tail(查看未尾行,最多十行),可以在后面加-数字表示查看几行
xzw@fuck:~/桌面/a$ ls
烦烦烦
xzw@fuck:~/桌面/a$ tail -4 烦烦烦
44
555
5555
222
# head(查看开头,最多十行),可以在后面加-数字表示查看几行
xzw@fuck:~/桌面/a$ ls
烦烦烦
xzw@fuck:~/桌面/a$ head -3 烦烦烦
3
33
44
12.匹配过滤符号
# 文件扩展匹配符
# 表示多个占位符号:*
# 表示一个占位符号:?
xzw@fuck:~/桌面/a$ ls
aa.c aa.java ab.java a.java b.java
xzw@fuck:~/桌面/a$ ls *.java
aa.java ab.java a.java b.java
xzw@fuck:~/桌面/a$ ls
aa.c aa.java ab.java a.java b.java
xzw@fuck:~/桌面/a$ ls a?.java
aa.java ab.java
# 元字行通配符[],里面加!表示非,里面可以加字母或数字表示搜索范围
xzw@fuck:~/桌面/fuck$ ls
ab bb cb db
xzw@fuck:~/桌面/fuck$ ls [a-c]b
ab bb cb
xzw@fuck:~/桌面/fuck$ ls [!a-c]b
db
13.链接文件
# 符号链接(软链接)一快捷方式,也是一个文件;
# 如果原始文件被移除,软连接就会因为指向不存在的文件而失效,这被称为“挂起链接”
# 使用ln -s
xzw@fuck:~/桌面$
xzw@fuck:~/桌面$ ls
练习
xzw@fuck:~/桌面$ ln -s 练习 f
xzw@fuck:~/桌面$ ll
总计 12
drwxr-xr-x 3 xzw xzw 4096 8月 9 18:47 ./
drwxr-xr-x 16 xzw xzw 4096 8月 9 18:19 ../
drwxrwxr-x 4 xzw xzw 4096 8月 3 09:41 练习/
lrwxrwxrwx 1 xzw xzw 6 8月 9 18:47 f -> 练习/
# (硬链接)一只能放在一个媒体中副本,原文件必须存在;
#当你需要将一个文件保存在不同位置,而且还要保持持续更新的时候,硬链接的重要性就体现出来了;
# 使用ln
xzw@fuck:~/桌面$ ls
练习 a
xzw@fuck:~/桌面$ ln a b
xzw@fuck:~/桌面$ ll
总计 12
drwxr-xr-x 3 xzw xzw 4096 8月 9 18:49 ./
drwxr-xr-x 16 xzw xzw 4096 8月 9 18:19 ../
drwxrwxr-x 4 xzw xzw 4096 8月 3 09:41 练习/
-rw-rw-r-- 2 xzw xzw 0 8月 9 18:49 a
-rw-rw-r-- 2 xzw xzw 0 8月 9 18:49 b