1.系统文件与文件系统
1.1简介
系统文件 : 操作系统的代码文件 . ( 操作系统也是一款软件 )
文件系统 : 系统中文件的排列方式
windows 硬盘分盘 有多个分区 有多个以盘符开始的路径
Linux 有分区 但是只有一个目录,最大的目录称为根目录,用 '/' 标识 .
/ ---
| -- /
| -- /
[root@localhost ~]
[root@localhost /]
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
1.2 排列方式
windows : D : \ \ file1 \ file2 \ a . txt
linux : / home / file1 / file2 / a . txt
1.3绝对路径与相对路径
绝对路径:从根目录开始,依次将各级子目录的名字组合的路径。
相对路径:不以根目录开始 , 以当前所在位置为参照物分路径。
2.shell 交互式环境
2.1shell
shell : Linux的解释器 , 解释输入命令的含义交由内核进行处理 .
shell解释器有很多版本 , 最常用的为bash解释器 .
2.2basd解释器
在启动Linux系统后登入 , 默认直接进入bash解释器的交互式环境 .
Last login : Fri Dec 10 08 : 39 : 09 2021 from 192.168 .15 .1
[ root@localhost ~ ] #
1.命令提示符的组成
命令提示符的组成有四部分 :
[ root@localhost ~ ] #
1 2 3 4
第一部分 root 为用户名称
@ 分割符号
第二部分 localhost 当前登入系统主机名称 之后会合理修改名称
第三部分 ~ 当前进入的目录路径
第四部分 # 此时登入系统用户权限
root管理员权限 #
非管理员权限$
2.修改命令提示
echo 命令在终端打印信息
[ root@localhost ~ ] # echo 'hello word!'
hello word !
PS1 变量存储着 命令提示符的信息
$PS1 取这个变量内的值
[ root@localhost ~ ] # echo $PS1
[ \u@\h \W ] \ $
\ u用户名
\ h主机名
\ W路径
\ $身份提示符
临时修改自定的信息 , 现在只是保存到变量中 , 写入文件才是永久修改 .
PS1 = [ \u@kid \W ] \ $
[ root@localhost ~ ] # PS1 = '[\u@kid \W]\$'
[ root@kid ~ ] # # 重启就没了
3.特殊表示符
. 代表当前路径
. . 代表上级路径
. . / . . 上上级目录
~ 当前登入用户的home目录
. - 上次所在目录
/ 代表根目录
隐藏文件以 . 开头例: . file1
4.bash快捷键
tab # 自动补齐 命令名称
ctrl + a # 光标移动到命令行的起始位
ctrl + e # 光标移动到命令行的末尾
ctrl + c # 或 + z 终止当前运行的程序
ctrl + l # 清屏
命令 ! $ 命令作用于上一个命令的最后一个操作对象
Esc + . : 上一条命令的最后一个元素
ctrl + u # 将光标到行首信息剪切
ctrl + y # 将剪切的内容进行粘贴
ctrl + k # 将光标到行尾信息剪切
ctrl + s # 锁定系统窗口信息状态 输入的信息被堆积 , 解锁执行 .
ctrl + q # 解锁系统窗口信息状态
ctrl + 方向键 < > # 命令行中快速移动光标
ctrl + u
ctrl + y
ctrl + k ctrl + a 移动到开头
ctrl + y
ctrl + 方向键 < > # 命令行中快速移动光标
2.3shell语法
命令 + 参数 + 操作对象
参数分 :
长格式 --xxx
短格式 -x
某些操作支持缩写
2.4历史记录
history # 查看历史执行过的命令 , 默认记录着 1000 条 ( 可调 )
在home目录下有一个 . bash_history文件记录这些命令
history -c # 清除记录
↑↓ # 上下按键,可翻找最近执行命令
! 10 # 执行历史命令中的第 10 条
2.5起别名
alias # 查看当前使用别名的命令
alias 别名 = ls / xxxx / xx # 建立别名
unalias 别名 # 取消别名
[root@localhost ~]
alias cp ='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l. ='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls ='ls --color=auto'
alias mv ='mv -i'
alias rm ='rm -i'
2.6bash手册
man 查询手册
使用方法 man 命令 # 命令的详细描述和操作介绍
man man # 查看man命令的使用
格式:
man [ 需要查看帮助的命令 ]
命令解释说明信息:NAME
命令语法说明信息:SYNOPSIS 总览
命令描述详细说明:DESCRIPTION 描述
命令参数详细说明:OPTIONS 选择权
q : 退出
/ [ 搜索内容 ] : 搜索内容
命令详细文档:https : / / www . linuxcool . com /
命令 --help 命令的帮助信息 , 实例 .
简写 -h
help 命令 只能查看内置命令
2.7命令分类
系统命令分为两种 :
内置命令 : 系统安装已经存在的
外置命令 : 需要安装第三方软件包
which 命令 查看命令存放路径:
( man help 中查看 )
内置命令 :
bash , : , . , [ , alias , bg , bind , break , builtin , caller , cd , command , compgen , complete ,
compopt , continue , declare , dirs , disown , echo , enable , eval , exec , exit , export ,
false , fc , fg , getopts , hash , help , history , jobs , kill , let , local , logout , mapfile ,
popd , printf , pushd , pwd , read , readonly , return , set , shift , shopt , source , suspend ,
test , times , trap , true , type , typeset , ulimit , umask , unalias , unset , wait
[root@localhost ~]
/ usr/ bin/ cd
3.关机&重启
3.1关机
系统关机命令 :
shutdown -h --- 延迟关机 ( 默认延迟一分钟 )
shutdown -h 10 延迟 10 分钟后关机
shutdown -h now / 0 立刻关机
shutdown -c --- 取消关机 / 重启
poweroff / init0 关机
Linux是支持多用户同时操作 , 在一个人输入关机或重启的命令时 ,
会向其他用户发广播 , 通知关机的情况 . 只会延迟操作能被取消 .
Shutdown scheduled for Thu 2021- 12- 09 21:43:36 CST, use 'shutdown -c' to cancel.
关机计划 2021- 12- 09 21:42:36 将进行可以使用 shutdown - c 命令 取消计划
shutdown - c
Broadcast message from root@localhost. localdomain ( Thu 2021- 12- 09 21:42:39 CST) :
The system shutdown has been cancelled at Thu 2021- 12- 09 21:43:39 CST!
广播消息来自root@localhost. localdomain
系统关机已于2021- 12- 09星期四21:43:39 shutdown - c 取消!
3.2重启
系统重启命令 :
shutdown -r --- 延迟重启 ( 默认延迟一分钟 )
shutdown -r 10 延迟 10 分钟后重启
shutdown -r now / 0 立刻重启
reboot / init 6
4.启动级别
4.1init介绍
init是Linux系统操作中不可缺少的程序之一。
所谓的init进程,它是一个由内核启动的用户级进程。
内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以 , init始终是第一个进程(其进程编号始终为 1 )。
内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是 / sbin / init。如果内核找不到init,它就会试着运行 / bin / sh,如果运行失败,系统的启动也会失败。
4.2级别
init一共分为 7 个级别,这 7 个级别的所代表的含义如下
0 :停机或者关机(千万不能将initdefault设置为 0 )
1 :单用户模式,只root用户进行维护
2 :多用户模式,不能使用NFS ( Net File System )
3 :完全多用户模式(标准的运行级别)
4 :安全模式
5 :图形化(即图形界面)
6 :重启(千万不要把initdefault设置为 6 )
5.系统服务
systemctl --- 管理系统服务程序
systemctl start 服务程序名称 --- 启动服务
systemctl restart 服务程序名称 --- 重启服务
systemctl stop 服务程序名称 --- 停止服务
systemctl status 服务程序名称 --- 查看服务状态
6.路径相关
pwd # 查看当前路径
ls # 查看当前路径的文件和文件夹
参数 :
-a 显示隐藏文件
-l 详细信息 -- > 可简写为 ll
-F 区分文件和目录 名字带 / 为目录 带 @ 链接文件 没有带东西为文件
Linux中的链接相当于快捷方式。
-R 选项列出单前目录下包含的子目录文件
cd # 切换路径
cd 回车 = = cd ~
[root@localhost ~]
/ root
[root@localhost ~]
[root@localhost /]
[root@localhost /]
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost /]
. bin dev home lib64 mnt proc run srv tmp var
. . boot etc lib media opt root sbin sys usr
[root@localhost /]
ls : cannot access bb: No such file or directory
[root@localhost /]
total 16 <-- - 总数
lrwxrwxrwx. 1 root root 7 Dec 9 15:30 bin - > usr/ bin
dr- xr- xr- x. 5 root root 4096 Dec 9 15:37 boot
drwxr- xr- x. 19 root root 3080 Dec 9 18:29 dev
. . . . . . .
ll命令结果说明
dr-xr-xr-x . 5 root root 4096 Dec 9 15 : 37 boot
第一个栏位,表示文件的属性。
Linux的文件基本上分为三个属性:
可读(r),可写(w),可执行(x)。
这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。
第一个字母表示文件类型 ,
”-” , 普通文件 .
”d”目录 , 字母”d” , 是dirtectory ( 目录 ) 的缩写 .
“l”符号链接。请注意 , 一个目录或者说一个文件夹是一个特殊文件 , 这个特殊文件存放的是其他文件和文件夹的相关信息 .
“b”块设备文件。
“c”字符设备文件。
[root@localhost /]
bin@ dev/ home/ lib64@ mnt/ proc/ run/ srv/ tmp/ var /
boot/ etc/ lib@ media/ opt/ root/ sbin@ sys/ usr/
7.创建目录和删除目录
7.1创建目录
madir # 创建目录
makir 文件名称 创建指定目录
-p 递归创建目录 ( 创建多级目录 )
makir 文件名称 / 文件名称 / . . .
-v 显示文件夹创建过程
[root@localhost /]
[root@localhost ~]
anaconda- ks. cfg
[root@localhost ~]
[root@localhost ~]
aaa anaconda- ks. cfg
[root@localhost ~]
[root@localhost ~]
mkdir: created directory ‘notes’
[root@localhost ~]
anaconda- ks. cfg notes
[root@localhost ~] yum - y install tree
[root@localhost ~]
.
├── aaa
├── anaconda- ks. cfg
└── b
└── c
└── d
4 directories, 1 file
案例:在c目录下操作上级目录创建文件夹.
mkdir ../xxx
[root@localhost ~]
[root@localhost c]
/ root/ b/ c
[root@localhost c]
[root@localhost c]
[root@localhost ~]
.
├── aaa
├── anaconda- ks. cfg
└── b
├── c
│ └── d
└── notes
5 directories, 1 file
7.2删除文件
删除文件有两种方式 :
* 删除数据属于危险操作 一般不会删除文件
* 把文件移动到一个指定的垃圾文件夹中
1. 物理删除 : 直接删除文件
2. 逻辑删除 : 将文件隐藏 , 没有直接删除
rmdir 删除空目录
rmdir 目录名称 删除指定目录
rm 物理删除的命令
格式:
rm [ 参数 ] [ 需要删除文件的路径 ]
参数:
-f : 不提示直接删除
-r : 递归删除目录及其内容
-i : 每次移除前提示
[root@localhost ~]
aaa b anaconda- ks. cfg
[root@localhost ~]
[root@localhost ~]
rmdir : failed to remove ‘b’: Directory not empty
删除 "b" 失败: 目录非空
[root@localhost ~]
[root@localhost ~]
.
└── anaconda- ks. cfg
0 directories, 1 file
补充:
在linux系统中,不能够直接删除文件夹。
linux系统中禁止使用:rm -rf / *
解决rm命令误操作
将rm命令改一个名称。
8.文件相关
8.1创建文件
touch 文件名 # 创建文件
* Linux 文件可以没有后缀 .
[root@localhost ~]
[root@localhost ~]
anaconda- ks. cfg a. txt
8.2文件查看
cat 一次性查看文件
less 逐行逐页查看 ( 推荐 )
more 逐行逐页查看 ( 显示进度条 )
head -n 只看文件的前n行 , 默认 10 行
tail -n 只看文件的后n行 , 默认 10 行
cat > > 文件名字 < < EOF
编辑文件
输入文本 输入EFO 结尾按选回车结束编辑
[ root@localhost ~ ] # cat > > a . txt < < EOF
> 你好
> 你好 2
> EOF
[ root@localhost ~ ] # cat a . txt
xxx
你好
你好 2
[ root@localhost ~ ] #
8.3复写文件
echo 打印echo后面的字符串
echo 字符串 > 文件 先将文件内容情况再将字符串追加到文件中
[root@localhost ~]
[root@localhost ~]
xxx
[root@localhost ~]
[root@localhost ~]
xxx
8.4追加文本
echo 字符串 > > 文件 在文件内容末尾换行再追加字符串
[root@localhost ~]
[root@localhost ~]
xxx
aaa
9.移动文件
移动的命令想当剪切
格式 :
mv [ 文件原路径 ] [ 文件新路径 ]
[root@localhost ~]
aaa anaconda- ks. cfg a. txt b
[root@localhost ~]
[root@localhost ~]
anaconda- ks. cfg a. txt b
[root@localhost ~]
[root@localhost b]
aaa c notes
[root@localhost b]
[root@localhost b]
c notes
[root@localhost b]
/ root
[root@localhost ~]
aaa anaconda- ks. cfg a. txt b
10.复制文件
* 在Linux中,文件夹是不可以直接复制。
cp 命令 复制文件 cp的缩写copy
格式 :
cd [ 参数 ] [ 被复制文件的路径 ] [ 复制到某个位置 ]
参数 :
-r : 递归复制。
-a : 保证某些属性不变。
stat 命令 : 查看文件详细属性。
[root@localhost ~]
aaa anaconda- ks. cfg a. txt bbb
[root@localhost ~]
cp : omitting directory ‘aaa’
[root@localhost ~]
[ root@localhost ~]
.. .
Access: 2021 -12-11 12 :08:13.849890186 +0800
Modify: 2021 -12-11 12 :07:30.725699450 +0800
Change: 2021 -12-11 12 :07:30.725699450 +0800
[ root@localhost ~]
.. .
Access: 2021 -12-11 12 :08:13.849890186 +0800
Modify: 2021 -12-11 12 :08:13.849890186 +0800
Change: 2021 -12-11 12 :08:13.849890186 +0800
[ root@localhost ~]
[ root@localhost ~]
[ root@localhost ~]
.. .
Access: 2021 -12-11 12 :08:13.849890186 +0800
Modify: 2021 -12-11 12 :07:30.725699450 +0800
Change: 2021 -12-11 12 :17:22.032332929 +0800
11.修改用户密码
1. passwd [ 用户名 ]
2. echo '密码' | passwd --stdin [ 用户名 ]
12、查看登录用户
whoami 查看当前终端登入的用户
[ root@localhost ~]
root
who 显示当前登录系统的用户
[ root@localhost ~]
root pts/0 2021 -12-16 15 :29 ( 192.168 .15.1)
13.用户切换
su 用户名 切换用户
su - 用户名 重新登入用户
[ root@localhost ~]
[ root@localhost ~]
Last login: Thu Dec 16 19 :00:21 CST 2021 on pts/0
14.查看系统信息
uname 打印系统名称
-r 打印内核版本
-a 打印所有信息
[ root@localhost ~]
Linux
[ root@localhost ~]
3.10 .0-1160.el7.x86_64
[ root@localhost ~]
Linux localhost.localdomain 3.10 .0-1160.el7.x86_64