ShellBegin
by
Shell 相关
1. 概念
Shell 是命令解析器,它将用户输入的命令解释成内核能够识别的指令。
常用查看命令如下:
# 查看当前系统使用的 shell
echo $SHELL
# 查看当前系统支持的 shell
cat /etc/shells
2. Linux 下常用快捷键
2.1 Tab 键的作用
2.1.1 补齐命令
- 输入
his后按Tab,会补齐为history - 输入
l后按Tab,会列出所有以l开头的命令
2.1.2 补齐文件(包括目录和文件)
- 输入
ls后按Tab,会显示当前目录下的所有文件和目录
2.2 主键盘快捷键
2.2.1 遍历输入的历史命令
- 向上遍历历史命令:
Ctrl + P(上箭头) - 向下遍历历史命令:
Ctrl + N(下箭头)
💡 使用
history命令可以查看完整的历史记录
2.2.2 光标位置移动
- 向左移动光标:
Ctrl + B(← 左箭头) - 向右移动光标:
Ctrl + F(→ 右箭头) - 移动到行首:
Ctrl + A(Home) - 移动到行尾:
Ctrl + E(End)
2.2.3 字符删除
- 删除光标前的字符:
Ctrl + H(Backspace) - 删除光标后的字符:
Ctrl + D(Delete) - 删除光标前所有内容:
Ctrl + U - 删除光标后所有内容:
Ctrl + K
⚠️ 删除光标“后边的字符”即为光标覆盖的字符
3. Linux下的目录结构
3.1 Linux系统目录结构
-
Linux系统的目录结构是一个倒立的树状结构,根目录用/表示,可以对比windows目录的结构进行理解
-
/
- /root
- /root/Desktop
- /root/Maildir
- …
- /bin
- /boot
- /etc
- /home
- /var
- /lib
- /usr
- /usr/bin
- /usr/lib
- /media
- …
- /root
3.2 Linux下主要目录介绍
- /bin:binary,二进制文件,可执行程序,shell命令
- 如:
ls,rm,mv,cp等常用命令
- 如:
- /sbin:s是Super User的意思,这里存放的是系统管理员使用的系统管理程序
- 如:
ifconfig,halt,shutdown,reboot等系统命令
- 如:
- /dev:device,在linux下一切皆为文件
- 硬盘,显卡,显示器
- 字符设备文件、块设备文件
- 如:在input目录下执行:
sudo cat mouse0,移动鼠标会显示有输入
- 如:在input目录下执行:
-
/lib:linux运行的时候需要加载的一些动态库
- 如:
lib.so、libpthread.so等
- 如:
- /mnt:手动的挂载目录,如U盘等
- /media:外设的自动挂载目录,如光驱等
- /root:linux的超级用户root的家目录
- /usr:
unix system resource–类似于WINDOWS的program files目录- include目录里存放头文件,如:
stdio.h、stdlib.h、pthread.h、string.h - games目录下的小游戏
- 如
sl小火车游戏
- 如
- include目录里存放头文件,如:
- /etc: 存放配置文件
- /etc/passwd
man 5 passwd可以查看passwd文件的格式信息
- /etc/group
man 5 group可以查看group文件的格式信息
- /etc/profile
- 系统的配置文件,修改该文件会影响这个系统下面的所有用户
- opt:安装第三方应用程序
- /etc/passwd
- /home:linux操作系用所有用户的家目录
- 用户家目录:(宿主目录或者主目录)
- /home/itcast
- 用户家目录:(宿主目录或者主目录)
- /tmp:存放临时文件
3.3 绝对路径和相对路径
3.3.1 绝对路径
- 从根目录开始表示的路径,也就是从/开始,例如:/home/itcast
3.3.2 相对路径
- 从当前所处的目录开始表示的路径
- .表示当前的目录
- ..表示当前目录的上一级目录
3.3.3 Linux中的命令提示符
domin1c@domin1c-82rc:~/CODE/MD$
- domin1c:当前登录的用户
- @: at-在
- domin1c@domin1c-82rc:主机名
- ~/CODE/MD$:当前工作目录,
~表示宿主目录(家目录或者主目录)
可通过:echo~或者echo $HOME查看当前用户的宿主目录
- ~/CODE/MD$:当前工作目录,
$:表示当前用户为普通用户,#表示当前用户为root用户
domin1c@domin1c-82rc:~$
root@domin1c-82rc:/home#
4. 文件和目录操作相关的命令
4.1 tree 命令
- 以树状形态查看指定目录内容,使用该命令需要安装软件tree
# 更新系统软件包
sudo apt update
# 安装 tree 工具
sudo apt install tree
- 命令使用方法
#树形结构显示**当前目录**下的文件信息
tree --
#树形结构显示**指定目录**下的文件信息
tree 目录 --
4.2 ls 命令
- 查看指定目录下的文件信息
使用方法:
#显示当前目录下文件信息
ls --
#显示指定目录下文件信息
ls 目录或文件名 --
- 相关参数
-a:列出当前目录下的所有文件.当前目录..当前目录的上一级目录- 隐藏文件,以
.开头的文件名,如.bashrc - 普通文件
-R:递归方式列出目录中的内容-l:列出文件的详细信息:
参数间可结合使用:ls-la:列出当前目录下所有文件的相关信息,包括隐藏文件ls-ltr:列出当前目录下的文件,按照时间逆向排序
#文件详细信息(共7部分内容)
drwxrwxr-x 7 domin1c domin1c 4096 7月 7 16:59 CODE
4.2.1 文件/目录的参数详解
- 1.文件类型与权限标志
- 文件类型(第1个字符)
-:普通文件d:目录l:符号链接,相当于windows中的快捷方式s:套接字p:管道b:块设备c:字符设备
- 用户的操作权限(2-10个字符)
- 文件所有者对文件的操作权限(2,3,4个字符)
- 文件所属组用户对文件的操作权限(5,6,7个字符)
- 其他人对文件的操作权限(8,9,10个字符)
- 文件类型(第1个字符)
- 2.硬链接计数
- 对于目录来说链接计数等于该目录下所有的目录总数(含.和..),但不包含该目录的子目录下的目录文件数量,执行
ls-la命令可以进行查看 - 对于文件来说,指的是该文件的所有硬链接数量
- 对于目录来说链接计数等于该目录下所有的目录总数(含.和..),但不包含该目录的子目录下的目录文件数量,执行
- 3.文件所有者:domin1c
- 4.文件所属组:domin1c
- 5.文件大小:4096
- 如果是目录:只表示目录大小,不包含目录中的内容,目录大小为4k
- 如果是文件:表示文件大小
- 6.文件的创建日期或最后修改时间:7月 7 16:59
- 7.文件名:CODE
4.3 cd 命令
切换目录(change directory),命令使用方式 cd + 路径
路径使用相对路径或绝对路径均可
#绝对路径
cd /home/domin1c
#相对路径
cd ./domin1c/CODE
- 切换到家目录(例如:/home/domin1c)
cdcd~cd /home/domin1ccd $HOME
- 邻近两个目录直接切换
cd-
4.4 pwd 命令
查看用户当前所处的工作目录-printf working directory
4.5 which 命令
显示命令所在的目录,如which ls、which cp
4.6 touch 命令
如果文件不存在,创建新文件,如果文件存在,更新文件最后修改时间
命令使用方式:touch 文件名
4.7 mkdir 命令
创建新目录-make directory
创建方式:mkdir 目录名
如若创建多级目录需添加参数-p
4.8 rmdir 命令
删除空目录,只能删除空目录
命令使用方式:rmdir 目录名
4.9 rm 命令
删除文件:rm 文件名
删除目录:rm -r 目录名
相关参数:
-r:递归删除目录,删除目录必须添加此参数-i:提示用户是否删除文件或目录-f:强制删除- 注意:使用
rm命令删除的文件或目录不会放入回收站中,不易恢复
4.10 cp 命令
拷贝:copy
命令使用方式:cp 源目录或文件 目标目录或文件
若有目录的拷贝需要使用-r参数;
4.11 mv 命令
移动:move
命令使用方式:
- 1.移动:
mv file dir #dir必须存在
mv dir1 dir2
- 2.改名:
mv file1 file2 #将file1改名为file2
mv dir1 dir2 #同上
4.12 cat 命令
将文件内容一次性输出到终端
命令使用方式:cat 文件名
注意:如果文件太长无法全部显示
#下面两条命令相互等价
cat file > file2
cp file1 file2
4.13 more 命令
文件内容分页显示到终端,但是只能一直向下浏览,不能回退
命令使用方式:more 文件名
相关操作:
- 显示下一行:回车
- 显示下一页:空格
- 退出:q(Ctrl+C)
4.14 less 命令
文件内容分页显示到终端,可以自由上下浏览
命令使用方式less 文件名
相关操作:
- 显示下一行:回车、
Ctrl+P、下箭头 - 显示上一行:
Ctrl+N、上箭头 - 显示下一页:空格、
PageDown - 显示上一页:
PageUp - 退出:q
4.15 head 命令
从文件头部开始查看前n行的内容
命令使用方式:head -n[行数] 文件名
如果没有指定行数,默认显示前10行内容
5.16 tail 命令
从文件尾部向上查看最后n行的内容
命令使用方式:tail -n[行数] 文件名
如果没有指定行数,默认显示最后10行内容
- 比较重要的应用:显示日志:
tail -f test.txt
5.17 软链接
类似于windows下的快捷方式
如何创建:
ln -s 文件名 快捷方式名字- 目录也可以创建软链接
注意事项:使用绝对路径
5.18 硬链接
本质是不同文件名所在的inode节点是相同的
ln 文件名 硬链接名字
5.19 wc 命令
显示文件行数,字节数,单词数
wc -l file #显示文件总行数
wc -c file #显示文件总字节数
wc -w file #显示文件总单词数
wc file #三项全部显示
5.20 whoami 命令
显示当前登陆的用户名
tags: Linux - 基础指令