【10.20】
虚拟机:一个软件,可以在上面安装不同的系统镜像
【10.28】
【2023.5.1】
配置软件的环境变量
不直接在 /etc/profile中添加
因为原来文件中写了一段for循环读取所有sh文件
因此我们创建一个新的我们的环境配置文件MY_ENV.sh
1.创建打开编辑文件
sudo vim /etc/profile.d/my_env.sh
2.添加环境变量
export JAVA_HOME=安装地址
加载到PATH下
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
3.重下加载profile
source /etc/profile
【2023.6.14】
基本语法
1.更改系统运行级别
init [012356]
如果我的root密码忘了,怎么找回?
开机时按enter然后输入e,到第二个光标kernel上,空格输入1进入单用户模式,然后输入b引导boot。password root 修改密码
2.帮助命令
man +命令
help +命令
3.目录类
ls(英文全拼:list files): 列出目录及文件名
ls -al显示带隐藏的文件
ls -l 显示文件的长信息
ls -lh 以人容易观察的方式显示
cd(英文全拼:change directory):切换目录
绝对路径:从/开始的路径
相对路径:从当前工作目录开始的路径
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
一次性创建两个目录加上参数 -p
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
cp 文件/文件夹 到目标文件夹
cp -r 拷贝整个目录
提示你相同文件是否覆盖,\cp默认全部覆盖
rm(英文全拼:remove): 删除文件或目录
rm -rf +目录
-r 递归册除整个文件夹
-f 强制删除不提示
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
mv oldNameFile newNameFile(功能描述:重命名,把旧的文件移动到当前目录,发现当前目录存在相同文件,改名为新的文件)
mv /temp/movefile /targetFolder (功能描述:移动文件)
touch +文件 创建文件
4.查看文件的内容:
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
cat 文件|(管道命令) more
空格是下一页、enter是下一行、q是退出
less 与 more 类似,但是比 more 更好的是对显示大型文件有较高的效率,他可以往前翻页!
> 输出重定向:会将原来的文件内容覆盖
>>追加:不会覆盖原来文件的内容,而是追加到文件的尾部
ls -l > a.txt,将ls -l的显示内容覆盖写入到a.txt文件,如果文件不存在 ,就创建该文件。
ls -al >> 文件 :列表的内容追加到文件aa.txt的末尾
echo 将输出内容打印在显示屏上
echo $PATH 输出文件的路径
head 只看头几行(默认显示10行)
head -n 指定行数 文件名
tail 只看尾巴几行
tail -f 文件名 试试监控文件的所有更新(常用)
构建软连接
ln -s 文件夹地址 别名地址
进入软连接目录pwd时还在软连接目录
history 查看在系统上执行过的指令
history +数字 显示最近多少条
!+历史指令编号 直接执行
data 命令可以用来显示或设定系统的日期与时间。
date -s # 设置当前时间,只有root权限才能设置,其他只能查看
【6.15】
5.搜索查找类
find
-name pattern:按文件名查找,支持使用通配符 * 和 ?
find /home -name a.txt
-user username:按文件所有者查找。
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k (KB)、M(MB)或 G(GB)。
find / -size +20M
locate
locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。由于1ocate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建1ocate数据库。
grep
grep过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep[选项]查找内容源文件
-n:显示匹配行的行号。
-i:忽略大小写进行匹配。
-c 或 --count : 计算符合样式的列数。
在标准输入中查找字符串 "world",并只打印匹配的行数:echo "hello world" | grep -c world
![在这里插入图片描述](https://img-blog.csdnimg.cn/ee10cd87a2a04c52b2bd269529540072.png)
6.压缩解压类
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。不会保留原来的文件
gunzip +文件名 解压缩
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
unzip
tar 用于打包和解压
tar[选项] XXX.tar.gz 打包的内容
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
tar -zcvf a.tar.gz a1.txt a2.txt #压缩到a.tar.gz
tar -zxvf a.tar.gz -C /home/ #解压到/home
【6.16】
7.组管理和权限管理
7.1在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
(1)所有者
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
通过 ls -ahl #查看文件所有者
通过 chown 用户名 #文件名修改文件所有者
chown tom abc #更改abc的所有者
(2)组
groupadd +组名 #创建组
useradd -g 组名+用户名 #创建组下面的用户
chgrp 组名+ 文件名 #修改文件的组
chgrp -R tom kkk/ #递归更改kkk下所有文件夹和文件的所有者
usermod -g 组名+ 用户名 #修改用户的组
chown -R tom kkk/ #递归更改kkk/文件夹下面的所有文件和文件夹所有者
(3)其它组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
7.2 权限
drwxr-xr-- 2 root root 6 Mar 9 01:37 test
0-9位说明:
1)第0位确定文件类型(d文件夹, -普通文件, l软连接, c字符设备如键盘, b块文件如硬盘)
2)第1-3位确定所有者(该文件的所有者)拥有该文件的权限(r读、w写、x执行权限)。---User
3)第4-6位确定所属组(同用户组的)拥有该文件的权限,---Group
4)第7-9位确定其他用户拥有该文件的权限---Other
后面几位的说明:
5)‘2’ 如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录个数
6)"6"代表文件大小;如果是目录则为4096
7) Mar 9 01:37 代表最后修改时间
7.3权限详解
rwx作用到文件
1)[r]代表可读(read):可以读取,查看
2)[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x]代表可执行(execute):可以被执行
rwx作用到且录
1)[r]代表可读(read): 可以读取,ls查看目录内容
2)[w]代表可写(write):可以修改,目录内创建+册除+重命名目录
3)[x]代表可执行(execute):可以进入该目录
可用数字表示为:r=4,w=2,x=1因此rwx=4+2+1=7
7.4更改权限
chmod [ugoa][+-=][rwxX]
chmod u=rwx,g=rx,o=rx abc #给abc文件的所有者修改rwx,所在组修改为rx,其他组修改为rx
chmod u+r,g-w abc #给abc文件的所有者增加读的权限,给所在组减掉写的权限
chmod a+r abc #给abc 的所有用户增加读的权限
chmod 751 abc #给abc的权限修改成rwxr-x--x
8.任务调度
#在每分钟都执行ls-l /etc 追加到abc.txt的命令
① cron -e
② */1*****ls-l/etc>>/temp/abc.txt
③保存退出
五个占位符的含义:
9.进程管理
ps 查看系统中执行情况
-a 显示当前终端所有进程信息
-u 以用户的格式显示
-x 显示后台信息
-ef 显示父进程
pstree 查看进程树
kill -9 +进程号 终止进程
killall 终止所有进程
top 动态监控
P 以CPU的使用资源排序显示
M 以内存的使用资源排序显示
N 以pid排序显示
T 由进程使用的时间累计排序显示
k 给某一个pid一个信号,可以用来杀死进程(9)
netstat 监控网络指令
-a:--all,显示所有链接和监听端口
-n:进制使用域名解析功能。链接以数字形式展示(IP地址),而不是通过主机名或域名形式展示
-p:--programs,与链接相关程序名和进程的PID
10.服务管理
systenctl 服务名
start
stop
restart
reload
status
dos下测试远程服务器端口 telnet ip地址+端口号
makefile
https://zhuanlan.zhihu.com/p/56489231
gcc编译
在 windows操作系统下,编译工具用集成开发环境vc6.0
在Linux操作系统下没有很好的集成环境让我们用,用的编译器是gcs
程序的编译分为四个阶段:由.c到可执行程序
1、预编译
2、编译
3、汇编
4、链接
编译程序:
1、一步到位
gcc hello.c -o hello
运行程序:./hello
2.分布进行
gcc -E hello.c -o hello.i 1、预处理
gcc -S hello.i -o hello.s 2、编译
gcc -c hello.s -o hello.o 3、汇编
gcc hello.o -o hello 4、链接