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
我也要跟着学了{:10_257:} yayc_zcyd 发表于 2023-1-12 18:25
我也要跟着学了
可以可以,我也只会点基础而已,共同学习{:5_91:}{:5_91:}
页:
[1]