🔥 创作专栏:《算法分析》 | 《无味生》 |《C语言》 | 《C练习解析》|《C++讲解》|《软件测试》|《Linux》|《数据结构》|《计组》
🏆我的格言:一切只是时间问题。
目录
前言:
建议学习路径:
Linux系统与系统编程 ⇒ Linux网络和网络编程 ⇒ MySQL
一、初识shell命令
1.1、关于 Linux 桌面
很多同学的 Linux 启动进⼊图形化的桌⾯. 这个东西⼤家以后就可以忘记了。以后的工作中没有机会使用图形界面。
思考: 为什么不使用图形界面?
总结:图形界面的定位是 “用户友好”,而非 “工作效率”
1.2、下载安装XShell
下载官网:https://www.netsarang.com/products/xsh_overview.html
下载安装的时候选择 home/school 则为免费版本.
1.3、查看 Linux 主机 ip
在终端下敲 ifconfig 指令,查看到 ip 地址.
1.4、使用 XShell登陆主机
在 XShell 终端下敲 ssh [ip] ,ip 为刚才看到的 ifconfig 结果。
如果网络畅通, 将会提示输入用户名密码。输入即可正确登陆。
1.5、XShell 下的复制粘贴
复制:ctrl + insert(可以使用 insert + fn)
1.6、shell命令以及运行原理
实习生:shell 王婆:bash(内核与用户的中介) 张三:用户 如花:内核
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
• 将使用者(张三)的命令翻译给核心(kernel)处理。
• 同时,将核心的处理结果翻译给使用者。
对比 windows GUI,我们操作windows 不是直接操作windows内核,⽽是通过图形接口,点击,从⽽完成我们的操作(比如进⼊D盘的操作,我们通常是双击D盘盘符.或者运⾏起来⼀个应用序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
二、初步使用常用Linux命令
0、基础知识
a.常识
Linux中以 . 开头的为隐藏文件;
Alt + enter:屏幕放大;
文件 = 文件内容(数据) + 文件属性(数据),即使文件没有数据也会有文件属性占据磁盘空间;
b.
c.
d. 属性表示
dXXX表示目录
一个 . 特殊目录 : 当前目录
二个 .. 特殊目录 : 上级目录
e.目录
D:\课堂代码和板书\112\课堂板书 表示 : windows路径 ,\ 是windows路径分隔符;
/root/112/lesson2 表示: Linux路径,/ 是linux下的路径分隔符,最左侧的 / 表示根目录。
f. 多叉树的命令
1.未安装tree命令
2. 安装tree命令
3.使用 tree 命令
总目录的展开:
当前目录的展开:
j. 理解树形结构
当前路径名称命令提示:
理解树形结构:
1. 这个多叉树的叶子节点,一定是空目录or普通文件
2.任何一个父节点,可能存在多个子节点;任何一个子节点,一定只有一个父节点
3. 我们从/开始定位一个文件:/home/bit/test.c(绝对路径),为什么路径可以定位一个文件呢?
路径具有唯一性!!!
相对路径是相对于当前路径而言为相对路径。
4. 绝对路径 vs 相对路径:
a. 一般命令行操作的时候,比较喜欢用相对路径
b. 绝对路径,在任何路径下,都能找到指定的文件 --- 配置文件中使用
5. Linux下,任何一个目录,都有. 和 .. 新建的空目录也是如此。
.. 指代上级目录;. 指代当前目录 ,所以 cd .. 可以返回上级目录
h. 常用指令
whoami
指令
whoami
是 Linux、macOS、Windows 等操作系统中用于显示当前用户名称的命令行工具。
nano(编辑)cat(查看)运行 指令
安装指令:yum install -y man-pages
运行指令
i. 通配符表示任意内容
可查找相同文件
可直接删除指代所有文件
j. 热键
tab 快速摁两次可以进行路径补齐、指令补齐、展示指令;
ctrl + c:可以直接终止进程;
ctrl + r :搜索历史指令;
ctrl + d:退出账号,再按就关掉shell;
1、ls 指令(查看信息)
ls 对应的选项:
-a :列出目录下的所有文件 ;
-l :列出文件的详细信息(等同于 l l 指令 );
-文件名:找到类似相同文件;
注意:
1、命令的选项可以一次传递多个。
2、选项可以拼接一起,且顺序随意。
3、选项可以接目录,进行目录展开。
4、ll 可展开当前目录
2、pwd 指令(显示当前路径)
3、cd 指令(换路径)
切换有两种方式:1、直接从头确定路径;二、某一确定路径(注意:斜杠的区别)
cd 对应的选项:
cd .. : 表示回退;
cd - :表示切换家目录
4、touch 指令 (创建文件)
功能:touch命令参数可更改⽂档或目录的日期时间,包括存取时间和更改时间,或者创建⼀个不存在的文件。
5、mkdir 指令(创建目录)
连续创建:mkdir 不能连续创建;而mkdir -p . 可以在当前路径连续创建目录。
6、rmdir 指令 && rm 指令 (创建与删除)
功能:rmdir 是⼀个与 mkdir 相对应的命令,mkdir是建立目录,而rmdir是删除命令但是只能删除一个空目录
rm 命令可以同时删除文件或目录:
rm + 文件名 = 删除文件
rm 对应选项:
-rf 直接删除 :注意:rm -rf/ 不能删除!!!
-r 删除⽬录及其下所有⽂件 :递归删除
7、man 指令(指令手册)
Linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助
Q 可以退出
8、cp 指令 (拷贝)
功能: 复制文件或目录
常用选项
• -f 或 -- force 强行复制文件或目录,不论目的文件或目录已经存在;
• -i 或 -- interactive 覆盖文件之前询问用户
• -r 递归处理,将指定目录下的文件与子目录⼀并处理。若源文件或目录的形态,不属于目录或符
号链接,则⼀律视为普通文件处理。
9、mv 指令 (剪切与重命名)
10、cat 指令 (短文件打印)
more 指令 (长文件打印) less 取代
• -b 对非空输出行编号,空行不做编号
• -n 对输出的所有行编号
• -s 不输出多行空行
tac 指令 :逆序打印
11、less 指令 (长文件打印)
12、head 指令 (看开头)
• -n <行数> 显示的行数
13、tail 指令 (看结尾)
• -n <行数> 显示的行数
可结合看:
14、date 指令 (看时间)
时间戳:
15、cal 指令 (看阳历)
16、find 指令(找文件)
17、which 指令(搜索指令)
18、whereis 指令 (找手册)
19、alias 指令 (别名)
20、grep 指令 (搜索字符串)
# ⽂件内容
[whb@bite-alicloud test]$ cat temp.txt
abcd
ABCD
hello
bite
1234
#基本查找
[whb@bite-alicloud test]$ grep "abcd" temp.txt
abcd
# 忽略⼤⼩写的不同,所以⼤⼩写视为相同
[whb@bite-alicloud test]$ grep -i "abcd" temp.txt
abcd
ABCD
# 顺便输出⾏号
[whb@bite-alicloud test]$ grep -n "abcd" temp.txt
1:abcd
[whb@bite-alicloud test]$ grep -ni "abcd" temp.txt
1:abcd
2:ABCD
# 反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏
[whb@bite-alicloud test]$ grep -v "abcd" temp.txt
ABCD
hello
bite
1234
[whb@bite-alicloud test]$ grep -vn "abcd" temp.txt
2:ABCD
3:hello
4:bite
5:1234
[whb@bite-alicloud test]$ grep -vni "abcd" temp.txt
3:hello
4:bite
5:1234
21、zip/unzip 指令 (压缩、解压)
-r:递归处理,将指定目录下的所有文件和子目录⼀并处理
//指定目录解压
unzip test2.zip -d ./tmp
22、tar 指令 (压缩、解压)
创立压缩包 压缩文件
root@instance-lad5a5bs ~]# tar czf 1.tgz 112
解压到指定文件夹
[root@instance-lad5a5bs ~]# tar xvzf 112.tgz -C 113
23、bc 指令 (计算器)
24、uname ‒r 指令(版本信息)
三、Linux权限概念
3.1、Linux权限管理
Linux下有两种用户:超级用户(root)、普通用户。
• 超级用户:可以再linux系统下做任何事情,不受限制
• 普通用户:在linux下做有限的事情。
//创建普通用户并且修改用户密码
sudo adduser 用户
sudo passwd 用户
//查询用户
1、cat /etc/passwd | cut -d: -f1
2、ll /home
//删除用户
userdel -r 用户名
//切换用户
su - 用户名
//普通用户获得权限
sudo command
注意:超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
3.1.1 文件访问者的分类(人)
• 文件和文件目录的所有者:u---User
• 文件和文件目录的所有者所在的组的用户:g---Group
• 其它用户:o---Others
3.1.2 文件类型和访问权限(事物属性)
• 文件类型:
◦ d:文件夹
◦ - :普通文件
◦ l:软链接(类似Windows的快捷方式)
◦ b:块设备文件(例如硬盘、光驱等)
◦ p:管道文件
◦ c:字符设备文件(例如屏幕等串⼝设备)
◦ s:套接口文件
3.2、文件权限值的表示方法
字符表示方法
• 8进制数值表示方法
3.3、文件访问权限的相关设置方法
chmod:设置文件的访问权限
chown:修改文件的拥有者
chgrp:修改文件或目录的所属组
umask:查看或修改文件掩码
chmod u+w /home/abc.txt
chown user1 f1
chgrp users /abc/f2
umask //查看
umask 044//设置
3.4、目录的权限
可执行权限: 如果目录没有可执行权限,则无法cd到目录中.
可读权限: 如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件.
只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限.
3.5、关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入,即使目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
3.7、粘滞位[选学]
当⼀个目录被设置为"粘滞位"(用chmod +t ),则该目录下的文件只能由
1. 超级管理员删除
2. 该目录的所有者删除
3. 该文件的所有者删除