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)
cd
cd~
cd /home/domin1c
cd $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 - 基础指令