小伤口 发表于 2022-10-21 12:57:01

Linux笔记(未更新完)

本帖最后由 小伤口 于 2022-11-15 22:48 编辑


Linux内核最初只是由芬兰人林纳斯·托瓦兹1991年在赫尔辛基大学
上学时出于个人爱好而编写的。

虚拟机采用 VMWare
Linux版本:CentOS

编译Linux网卡文件:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

#修改为静态ip地址
#BOOTPROTO=none
BOOTPROTO=static
#修改为开机自启动网卡
#ONBOOT=NO
ONBOOT=yes

#配置ip
IPADDR=192.168.xxx.xxx#你要设置的ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.xxx#网关
DNS1=223.5.5.5
DNS2=223.6.6.6

GATEWAY 网关第三位需要与IPADDR的第三位相同
# 保存退出   :wq
# 重启网卡 service network restar

Linux系统重要的目录结构

/etc
所有系统管理所需要的配置文件和子目录
/media
Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别
后,Linux 会把识别的设备挂载到这个目录下。
/opt
这是给主机额外安装软件所摆放的目录。如安装 ORACLE数据
库就可放到该目录下,各种安装包。默认为空。
/root
该目录为系统管理员,超级权限者的用户目录
/tmp
存放临时文件

将一台Linux的文件传入到另一台
eg:将jdk文件传入到另一台linux虚拟机中
-r表示递归传(因为包含文件夹)
jdk/ 要传的文件
192.168.66.102 另一台虚拟机的ip地址
$PWD 传到另一台Linux虚拟机的位置位于 本机当前的目录位置

scp -r jdk/ 192.168.66.102:$PWD


/usr
用户的很多应用程序和文件都放在这个目录下。

将普通用户设置为超级用户

语法

#切换为 root 后
visudo

编辑配置文件命令: visudo 来配置用户权限。

按照下 面的格式将第 99 行(大约)填写上指定的信息:

谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表

注意:

编辑sudo的配置文件/etc/sudoers是一般不要直接使用vi(vi /etc/sudoers)去编辑,因为sudoers配置有一定的语法,直接用vi编辑保存系统不会检查语法,如有错也保存了可能导致无法使用sudo工具,最好使用visudo命令去配置。虽然visudo也是调用vi去编辑,但是保存时会进行语法检查,有错会有提示。

eg:配置baizhan拥有root的权限

visudo
baizhan ALL=(ALL) ALL

不需要输入密码的配置

visudo
baizhan ALL=NOPASSWD:ALL


要使用超级用户的功能在命令前面加 sudo


~ 表示当前登录 Linux 用户的主目录eg :

#代表的 root 目录

Linux文件类型

普通文件(-):存放数据,程序等信息的文件,一般为文本文件和二进制文件。
目录文件(d):文件系统中一个目录所包含的目录文件,包括文件名和子目录名。
链接文件(l):可以在不同的文件系统之间建立链接关系来实现对文件的访问。
设备文件(c):把IO设备映射为一个设备文件。
管道文件(p):主要用于在进程间传递数据。







Linux 路径

Linux系统中是从" / "开始的。

绝对路径
绝对路径是指从“根”开始的路径。例如/usr/local,/etc/hosts,如果一个路径是从“/”开始它一定是绝对路径。

注意:

绝对路径必须以 “/” 开头,它表示根目录。

相对路径

相对路径是以 “ . ” 或者 " .. "开始的。. 表示用户操作所处的位置.. 表示上级目录。

注意:

相对路径不能以 “ / ” 开头。
每个目录中都有 “ ..” 目录文件。

在路径一些特殊符号的说明



- :上一次目录
. : 当前用户所在目录

.. :表示上一级目录

~ : 表示当前用户自己家目录

~ USER:表示用户名为USER的家目录。这里的USER是在/etc/passwd中存在的用户。

Linux管道符、重定向与环境变量
系统级环境变量配置文件在
/etc/profile
待更新


Linux命令


添加用户 useradd   

语法:

useradd (选项)(参数)

选项

-d 指定用户的家目录(默认为/home/username)

-e 账户的到期时间,格式为 YYYY-MM-DD.

-u 指定该用户的默认 UID

-g 指定一个初始的用户基本组(必须已存在)

-G 指定一个或多个扩展用户组

-N 不创建与用户同名的基本用户组

-s 指定该用户的默认 Shell 解释器

修改用户 usermod

语法:
usermod (选项) (参数)

选项

-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s:修改用户登入后所使用的shell;
-u:修改用户ID;
-U:解除密码锁定。


eg:修改uid
usermod -u 1001 baizhan

查看用户
id 用户名


用户账号口令管理

passwd 命令用于修改用户密码、过期时间、认证信息等。

语法

passwd (选项) (参数)

选项


-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-S:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。

eg:添加密码

passwd baizhan

eg:锁住密码

passwd -l baizhan

eg:解开密码

passwd -u baizhan



删除用户 userdel


语法

userdel [选项] 用户名


选项

-f 强制删除用户
-r 同时删除用户及用户家目录
这个命令的目的删除用户,与它相关的文件有:
1 /etc/passwd
2 /etc/shadow
3 /home/username

eg:删除用户baizhan

userdel -rf baizhan




添加新组groupadd

语法

groupadd (选项) (参数)

选项


-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。


eg:添加 id 为344 名称为 web 的用户组

groupadd -g 344 web


修改群组groupmod

语法


groupmod(选项)(参数)


选项


-g<群组识别码>:设置欲使用的群组识别码;
-o:重复使用群组识别码;
-n<新群组名称>:设置欲使用的群组名称。

eg:将用户组 web 的名称改为 web2 id 改为 355

groupmod -g 355 -n web2 web


删除群组groupdel

语法

groupdel groupname

eg:删除用户组 web2

groupdel web2




用户身份切换 su

由于超级权限在系统管理中的不可缺少的重要作用,为了完成系统管理任务,必须用到超级权限。
su命令就是切换用户的工具




语法


su 用户名


eg:切换为baizhan用户
su baizhan

阅读文件

cat 文件名


ls命令


Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法:

ls [参数]
参数


-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

ll就是ls -l

改变所属群组chgrp

改变一个文件的群组很简单,直接用chgrp命令,这个命令是change group的缩写。

语法:

chgrp [-R] 属组名 文件名

参数选项

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,
那么该目录下的所有文件的属组都会更改。

eg:改变a.info 文件所属群组为 java

chgrp -R java a.info


改变文件属性chmod


语法

chmod [who] [+ | – | =] [mode]


文字设定法

那么我们就可以使用 u, g, o 来代表三种身份的权限。

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,

eg:将 a.info 文件用户组权限可读改为可读+可写

chmod g+w a.info

eg:将 a.info 文件用户组权限可读可写改为可读-可写(也就是只有可读)

chmod g-w a.info


改变文件拥有者chown

语法

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

eg:将 a.info 文件创建者 baizhan 改为 baizhan2

chown -R baizhan2 a.info


查看当前目录

pwd


mkdir (创建新目录)

如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

语法:

mkdir [-mp] 目录名称


选项与参数:


-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

eg:创建 baizhan 文件夹

mkdir baizhan

递归创建多个文件夹

# cd /tmp
# mkdir test   <==创建一名为 test 的新目录
# mkdir -p test1/test2/test3/test4


rmdir (删除空的目录)

语法:

rmdir [-p] 目录名称

选项与参数:

-p :从该目录起,一次删除多级空目录
删除 runoob 目录


cp (复制文件或目录)

cp 即拷贝文件和目录。copy的意思。

语法:


cp [-adfilprsu] 来源档 目标档
选项与参数:

-r:递归持续复制,用於目录的复制行为

eg:将 a.info 复制到 test1/test2/test3 文件夹中
cp a.info test1/test2/test3


rm (删除文件或者目录)
语法:

rm [-fir] 文件或目录
选项与参数:

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

eg:删除 test1 文件
rm -rf test1

mv (移动文件与目录,或修改名称)
语法:

# mv [-fiu] source destination
# mv source1 source2 source3 .... directory
选项与参数:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

eg:将 a.info 文件移动到 test 文件夹中
mv a.info test/

eg:将 a.info 重命名为 b.info

mv a.info b.info

more(一页一页的显示文件内容)
一页一页翻动

在 more 这个程序的运行过程中,你有几个按键可以按的:

空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 -b :代表往回翻页,不过这动作只对文件有用,对管线无用。


eg:
more a.info


tar 命令
语法:

tar[选项] [文件]

选项:

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩 Gzip

-x 解包.tar文件

.tar.gz 是 Linux 打包文件扩展名

示例1

压缩多个文件

tar -zcvf XXX.tar.gz n1.txt n2.txt
示例2

压缩目录

tar -zcvf test.java.tar.gztest1
示例3

解压:tar -zxvf XXX.tar.gz

解压到当前目录
# tar -zxvf test.tar.gz
解压到/opt目录
# tar -zxvf test.tar.gz –C /opt


gzip/gunzip压缩
语法:

gzip+文件   (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip+文件.gz    (功能描述:解压缩文件命令)
示例1

gzip压缩

# ls
test.java
# gzip test.java
# ls
示例2

gunzip解压缩文件

# gunzip test.java.gz
# ls
test.java


grep 命令
grep 命令用于在文本中执行关键词搜索,并显示匹配的结果。

语法:

grep [参数 查找内容源文件]
选项:

-b 将可执行文件(binary)当作文本文件(text)来搜索

-c 仅显示找到的行数

-i 忽略大小写

-n 显示行号

-v 反向选择—仅列出没有“关键词”的行

-E :开启扩展(Extend)的正则表达式

示例1查找 a.info 是否有 zhouyuqing 字符串

grep "zhouyuqing" a.info



find命令
find 命令用于按照指定条件来查找文件。

语法:

find [查找路径] 寻找条件 操作
选项:

-name 匹配名称

-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)

-user 匹配所有者

-group 匹配所有组

-mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)

-atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)

-ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)

-nouser 匹配无所有者的文件

-nogroup 匹配无所有组的文件

-newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件

--type b/d/c/p/l/f 匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、 链接文件、文本文件)

-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)

-prune 忽略某个目录 -exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)

示例1

按文件名:根据名称查找/目录下的filename.txt文件。

find /opt/ -name *.txt
示例2


按拥有者:查找/opt目录下,用户名称为-user的文件

find /opt/ -user atguigu


Linux常用系统工作命令

reboot 命令
reboot 命令用于重启系统,其格式为 reboot。

由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用 root 管理员来 重启,其命令如下:

# reboot


lsblk命令
lsblk命令来自于英文词组”list block“的缩写,其功能是用于查看系统的磁盘使用情况。

参数:

-a        显示所有设备
-b        以字节单位显示设备大小
-d        不显示 slaves 或 holders
-e        排除设备
-f        显示文件系统信息
-h        显示帮助信息
-i        仅使用字符
-m        显示权限信息
-l        使用列表格式显示
-n        不显示标题
-o        输出列
-P        使用key=”value”格式显示
-r        使用原始格式显示
-t        显示拓扑结构信息


df命令
用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

语法:

df [选项] [目录或文件名]
选项:

-a        显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
-m        以 MB 为单位显示容量;
-k        以 KB 为单位显示容量,默认以 KB 为单位;
-h        使用人们习惯的 KB、MB 或 GB 等单位自行显示容量;
-T        显示该分区的文件系统名称;
-i        不用硬盘容量显示,而是以含有 inode 的数量来显示。



各列信息的含义:

Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
Used:表示用掉的硬盘空间大小;
Available:表示剩余的硬盘空间大小;
Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。

free 命令
free 用于显示当前系统中内存的使用量信息。

free -h
image-20211025175926053

注意:

为了保证 Linux 系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。

last 命令
last 命令用于查看所有系统的登录记录。

语法:

last [参数]
注意:

使用 last 命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保 存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而 判断系统有无被恶意入侵!

# last
history 命令
history 命令用于显示历史执行过的命令。

语法:

history [-c]
注意:

history 命令应该是老师最喜欢的命令。执行 history 命令能显示出当前用户在本地计算机 中执行过的最近 1000 条命令记录。如果觉得 1000 不够用,还可以自定义/etc/profile 文件中的 HISTSIZE 变量值。在使用 history 命令时,如果使用-c 参数则会清空所有的命令历史记录。

uptime 命令
uptime 用于查看系统的负载信息,格式为 uptime。

# uptime
17:56:03 up7:14,2 users,load average: 0.02, 0.02, 0.05
注意:

uptime 命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以 及平均负载值等信息。平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情 况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要 超过 5。

检查防火墙是否运行
firewall-cmd --state

查看进程
ps -aux|egrep '(cron|syslog)'

top
查看系统健康状态 ,windows 加强版 任务管理器

语法:

top [-d] | top [-bnp]
选项
-d:屏幕刷新间隔时间;
-p<进程号>:指定进程;

防火墙相关的命令
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态:
systemctl status firewalld
firewall-cmd --state
开机禁用: systemctl disable firewalld
开机启用: systemctl enable firewalld

yayc_zcyd 发表于 2023-1-12 18:25:31

我也要跟着学了{:10_257:}

小伤口 发表于 2023-1-17 00:17:17

yayc_zcyd 发表于 2023-1-12 18:25
我也要跟着学了

可以可以,我也只会点基础而已,共同学习{:5_91:}{:5_91:}
页: [1]
查看完整版本: Linux笔记(未更新完)