2024-9-9:
CentOS的两种shell
Linux拥有两个交互接口:
- GUI(图形用户接口)
- CLI(命令行接口)
CentOS7默认有两个目标:
- 多用户目标=>CLI
- 图形目标=>GUI
进入GUI / CLI的命令
云主机需要进入图形界面,先进入维护
systemctl isolate graphical.target(登陆后输入此进入GUI,可以不输入.target)
pwd:student123
GUI进入命令行:鼠标右键终端
systemctl isolate multi-user.target(GUI终端返回CLI,可以不输入.target)
su -(普通用户切换到root,密码是自己更改的密码)
以上的isolate指令只是临时切换,重启系统之后还是进入CLI
使用systemctl get-default可以查看默认启动的目标
使用systemctl set-default graphical.target可以设置默认启动的目标
Linux常用指令
- 重启指令:reboot / shutdown -r now
- 注销指令:exit、logout
- 关机指令:shutdown -h now / shutdown +10(10mins 后关机,输入shutdown -c可以取消关机)
- 中断指令:ctrl+c
- 显示ip:ip addr | grep global
- 查看内核版本:uname-r(Unix name)
- 查看。。版本:
- 显示/输出:echo
命令提示符
[root@localhost ~]#
[(用户名)@(xx-xx主机名) ~(文件系统的目录)](用户级别:#root、$普通用户)
切换需要在维护模式 / 控制台
PuTTY输入ip可以远程操作电脑(同一网络下)
2024-9-10:
Linux命令行与Shell操作:
Shell:意为外壳,是用户和操作系统交互的接口(Linux Shell的主要功能:解释命令)
Windows的Shell:explorer
Linux的Shell:CentOS默认为bash---Bourne Again Shell
Shell中的特殊字符:
引号:
- 单引号:不识别其中的任何特殊符号,相当于形成了一个字符串
- 双引号:识别特殊符号如$...
- 反撇号:用于包括命令,优先级高于上述符号
Shell中的环境变量:
1、查看系统的环境变量:
- env
2、全局变量:
- 创建全局变量:export 变量名=数值
- 大写的一般是全局变量
- USER:当前登录用户的用户名
- HOSTNAME:当前主机的名称
- HOME:当前用户的主目录
- SHELL:当前用户默认的shell
- PWD:当前工作目录的完整路径
- LANG:系统的语言和地区设置
- LOGNAME:当前用户的登录名
3、局部变量:
- 创建局部变量:变量名=数值
- 将局部变量转化为全局变量:export 变量名
模拟命令提示符:
[root@localhost ~]#
echo "[$USER@$HOSTNAME $PWD]"
显示日期:
date
echo "Current date:'date'"
echo "Current date:'date +"$Y-$m-$d $H:$M:$S"'"
Linux命令行使用:
自动补全:
tab补全,如果未补全,说明输入的内容不足以系统识别是哪一条命令
双tab,可以查看提示
一行多条命令:
使用$$符号连接:命令1$$命令2
命令行续行:
使用反斜杠:\
强制中断命令运行:
ctrl+c
vim编辑器:
1、三种操作模式:
- 命令模式:进入vi后默认的模式,或者在插入模式下键入esc
- 插入模式:在命令模式下键入i可以进入
- 末行模式:在命令模式下,键入:可以进入
2、打开vim编辑器:
在CLI中直接进入vim:vi
新建文件并进入vim:vi text.txt
3、退出vim编辑器:
前提:进入末行模式
- :w filename将文件存入指定的文件名filename
- :wq将文件以当前文件名保存并退出
- :w保存文件不退出
- :q退出vim编辑器
- :q!不保存强行退出vim
- :qw保存文件并退出vim
4、显示行号:
输入:set nu
跳转行:输入数字再回车
5、vim操作-编辑文件:
- dd:删除当前行
- yy:复制当前行
- p:粘贴(在光标后粘贴)
- P:在光标前粘贴
- x:删除当前字符
- u:撤销上一步操作
- Ctrl + r:重做操作
- o:当前行的下方插入新行
- O:当前行的上方插入新行
6、使用vim运行C程序:
在CLI中下载gcc:yum install gcc
编辑C代码:vi helloworld.c
编译C代码:gcc helloworld.c -o helloworld
运行C程序:./helloworld
2024-9-23:
文件与目录管理:
Linux:根目录下(/)
bin、sbin目录存放的是二进制程序,bin存放的是普通用户,sbin存放的是管理员的
boot存放的是引导和启动有关的东西,如Linux内核
dev存放硬件资源,cpu、键盘
etc存放配置文件
home存放每个用户的数据
root存放超级用户的数据
media、mnt用于响应移动设备
opt、srv、usr用于装入应用程序
Windows:C盘
windows存放系统文件
Program Files(x86):存放软件的数据,x86用于存放32位
Linux目录操作
注意:目录只用来存储文件的信息,可以保存文件或目录的信息
ls:查看当前目录下的内容
ls -l:查看当前目录下的内容,详细,每行的第一列l代表超链接说明该文件是个文件夹
ls -lh:人性化查看,可以将文件大小自动转换
ls -all:查看所有文件,主要是用于查看隐藏文件
ls -Rl:查看当前目录下的所有文件
d表示目录,-表示普通文件,c表示字符设备,b表示块设备即硬盘,中间root表示文件的所有者,第二个是组
pwd:查看当前所在的目录位置
cd:跳转目录,cd后面接路径
./:当前目录
../:上一级目录
whoami:查看用户
su - test:切换到test用户
mkdir 目录名:创建目录
mkdir -p aa/bb:aa不存在,使用-p可以在没有aa的情况下创建bb,创建结束后有aa和bb两个目录
mkdir -p b{1,3}:使用扩展符{}建立b1和b3
mkdir -p a{1..20}:建立a1到a20
用户权限:普通用户只能在home里面建目录,root的权限不受限
通配符:
*:代表0个或者多个字符
?:代表一个任意字符
2024-9-24:
mv 路径和目录名 目录和修改后的目录名(mv ./c1 ./c23)若第二个目录不存在则表示重命名
mv 路径和目录名 目录和修改后的目录名(mv ./c1 ./c2)若第二个目录存在则表示移动
rmdir 路径和目录名(rmdir ./aa)删除目录,要求目录为空才能删除
rm -rf aa:使用递归强制删除目录aa
rm sos.conf:删除文件sos
创建文件:touch test1/aa.txt(在test1目录下创建一个aa文本文件)
复制文件:cp SOURSE DESTINATION(cp test1/aa.txt test9):将aa复制到目录test9下
查看.txt文件:cat [-n] aa.txt(只显示20多行信息,一般用来查看小文件,-n可以显示行号)
查看.txt文件:more aa.txt(按空格显示下一屏,按回车下查看下一行,q退出)
查看.txt文件的前/后n行:head -n 3 aa.txt / tail -n 3 aa.text
在文件中查找含有"en"的行
egrep -e "en" study.txt
2024-9-29:
find:find / -name .conf(语法:find 目录 选项 名字:一般结合通配符来查询)查询文件
wc:wc -l aa.txt(语法:wc 选项(-l:行数、-w:单词数、-c:字符数)文件名)查询文件中得信息
ln:ln -s /etc/ifup-eth /root/ifup-eth(语法:ln 选项(-s:软链接、不加选项:硬链接,同时不允许和原文件同名) 原目录 目标目录)符号链接
软链接:删除软链接不会同时删除原目录下的文件,删除原目录文件后软链接的文件失效,打不开
硬链接:建立硬链接之后,该文件引用次数增加,只有删除了最后一个,使引用次数变了0才会完全删除该文件
tar -cvzf conf.tar.gz conf(c:创建一个压缩文件、v:显示压缩过程、f:同时压缩子目录、z:压缩,语法:tar 选项 压缩文件名 源文件)
tar -xvzf
sort -t' ' -k3 aa.txt -n对文件中内容(有序文件)排序
2024-9-30:
用户与组管理...
用户配置文件:
/etc/passwd
基本格式:账户名:密码:UID:GID:注释:主目录:Shell
密码用x表示,因为passwd文件不保存密码信息
特殊的Linux账户:
wheel组是一个类似于管理员的组
添加组:gpasswd -a 待加入的用户 想要添加进入的组
例:gpasswd -a test xcctest(此时查看test用户的id,发现test用户的组为:test、xcctest)
2024-10-14:
文件权限管理:
Linux中的资源:文件
权限离不开用户和资源
文件访问者身份:1、所有者;2、所属组;3、其他用户
文件访问权限:1、读;2、写;3、执行
查看文件权限信息:ls -l
查看用户的权限、组别:id
root用户不受文件权限的限制
变更所有者:chown [选项] [新所有者] 文件列表
--chown test:test test01可以同是改变test01的所有者和所属组
可以使用-R递归地修改文件的权限
变更所属组:chgrp [选项] [新所属组] 文件列表
设置文件访问权限
chmod 741 test01:修改test01的权限为rwx、r、x(分别对应所有者、所属组、其他用户)
rwx对应:4、2、1,是根据权重来确定的,x就是2^0,w就是2^1,r就是2^2
2024/10/15:
ls -l 文件名 -d:切森权限
新建文件分两类:
1、data(文件):最大权限是rw_
2、program director(目录):最大权限是rwx
3、切森在创建新文件时,为所有者和所属组分配最大权限,为其他用户不分配w权限
umask:计算切森权限,umask+权限的值就等于最大权限
umask 026:设置umask的值为026,此后创建新文件时,文件的权限就是640
练习:
题目:
创建2个用户,xcctest和test,在xcctest中创建一个文件aa.txt,一个文件夹bb,
在bb中创建一个文件bb.txt。要求:在test用户能够中读取aa.txt,能够读写bb.txt
步骤:
useradd xcctest
useradd test
//创建用户xcctest和test
su - xcctest
cd
touch aa.txt
mkdir bb
touch ./bb/bb.txt
exit
//切换到用户xcctest为后续操作创建好需要的文件和目录
chmod 759 /home/xcctest
chmod 640 /home/xcctest/aa.txt
chmod 660 /home/xcctest/bb/bb.txt
//修改文件和目录的权限,使得test用户拥有一定权限对其进行管理
gpasswd -a test xcctest
//使用组的概念将test用户需要的权限设置好,最后将test用户加入组xcctest