Linux操作系统知识
一、Linux基础知识
1、目录结构
(1)根目录(/)
(2)/bin
(3)/boot
(4)/dev
(5)/etc
(6)/home
(7)/lib和/lib64
(8)/media
(9)/mnt
(10)/opt
(11)/proc
(12)/root
(13)/sbin
(14)/srv
(15)/tmp
(16)/usr
(17)/var
(18)/run
(19)/run/user
(20)/sys
(21)/srv
2、常用命令
(1)关闭防火墙
(2)关闭SELINUX
(3)32OR64位系统
(4)查看系统名称及版本
(5)命令后台运行
(6)使用NTP服务校正时间
(7)查看架构命令
(8)生成随机字符串
(9)用户管理
(10)查看CPU个数
(11)查看内存大小
(12)查看IP和MAC地址
(13)安装字体文件
(14)网络相关命令
(15)磁盘操作
二、UOS相关命令
1、在线安装软件包
2、下载软件包
3、安装离线deb包
4、移除软件包
5、修改软件源
6、下载所有依赖包
7、挂载NFS存储时
8、查找软件包如nginx
9、需要哪些依赖包
10、被哪些包依赖
11、检查是否有损坏的依赖关系
12、查看软件包信息
13、安装C++编译环境:
14、修改默认java版本
15、uos安装vncserver
三、更换YUM源
1、CentOS7配置在线YUM源
(1)机器正常可上网时
(2)机器不能上网时
2、配置光盘镜像YUM源
(1)CentOS
(2)UOS挂载本地源
四、配置VSFTPD服务
1、CentOS7配置
(1)单用户配置
(2)多用户限制不同目录配置
(3)用户只登FTP不登ssh
2、UOS配置
(1)拷贝配置文件
(2)创建配置文件链接
(3)增加用户并配置
3、VSFTPD服务常见问题
(1)vsftpd登录时间长
(2)密码过期无法登录
五、SSH服务相关
1、SSH开始连接时间长问题
2、ssh一定时间自动断开连接问题
六、文件操作相关命令
1.dd命令
2.truncate命令
3、fallocate 命令
4、tar命令
(1)压缩文件
(2)解压缩文件
5、查找文件
(1)locate
(2)find
6、统计文件或目录
(1)统计文件夹下文件的个数
(2)统计文件夹下目录的个数
(3)统计文件夹下文件个数
(4)统计文件夹下目录个数
(5)wc命令
(6)计算目录大小
7、scp命令
8、编辑文件
七、系统时间相关
1、查看系统最后一次启动时间
2、计算系统运行时间
3、查看当前系统运行时间
4、查看开机时间
5、设置系统时间
八、CetnOS7搭建DNS服务
1、关闭防火墙和selinux
2、安装 bind 软件包
3、修改 /etc/named.conf 文件
4、配置域名
5、配置正、反向解析文件
6、重启服务
7、测试
九、定时任务
一、Linux基础知识
核心原则:一切皆文件。
1、目录结构
(1)根目录(/)
根目录是整个文件系统的顶级目录,所有其他目录和文件都是从根目录开始的。在Linux中,根目录用斜
杠(/)表示。
(2)/bin
/bin目录包含一些基本的可执行文件,这些文件是系统启动和运行所必需的。例如,/bin目录包含常用
的命令如ls、cp、rm等。
(3)/boot
/boot目录包含启动加载程序(bootloader)的相关文件,包括内核映像文件和引导配置文件。在启动
过程中,系统会使用/boot目录下的文件来引导操作系统。
(4)/dev
/dev目录包含设备文件,这些文件用于与系统中的设备进行交互。在Linux中,一切都被视为文件,设备
文件用于访问硬件设备,如磁盘、键盘、鼠标等。
(5)/etc
/etc目录包含系统的配置文件。这些配置文件用于设置系统的各种参数和选项,例如网络配置、用户账
户配置、服务配置等。/etc目录中的文件对系统的正常运行至关重要。
(6)/home
/home目录是用户的主目录,每个用户都有一个与其用户名相对应的子目录。用户可以在自己的主目录
中存储个人文件和配置。
(7)/lib和/lib64
/lib目录和/lib64目录包含共享库文件,这些库文件是应用程序和系统工具所需的共享组件。/lib目录用于
32位系统,而/lib64目录用于64位系统。
(8)/media
/media目录用于挂载可移动设备,如光盘、USB驱动器等。当插入可移动设备时,系统会自动将其挂载
到/media目录下的子目录中。
(9)/mnt
/mnt目录用于临时挂载其他文件系统或网络共享。管理员可以将其他设备或远程共享挂载到/mnt目录
中,以便访问其内容。
(10)/opt
/opt目录用于安装第三方软件包。一些应用程序将其安装在/opt目录下,以便与系统的其他部分分离。
(11)/proc
/proc目录是一个虚拟文件系统,提供有关系统和进程的信息。系统管理员和开发人员可以通过读
取/proc目录下的文件来获取关于系统状态、进程信息、硬件配置等的实时数据。
(12)/root
/root目录是超级用户(root用户)的主目录。与普通用户的主目录(/home)不同,超级用户的主目录
位于/root。只有root用户可以访问和操作/root目录。
(13)/sbin
/sbin目录包含系统管理员使用的一些系统命令和工具。这些命令和工具通常用于系统管理和维护任务,
例如启动和停止服务、网络配置等。
(14)/srv
/srv目录用于存储系统服务提供的数据。例如,Web服务器可以将网站数据存储在/srv目录下。
(15)/tmp
/tmp目录用于存储临时文件。该目录中的文件通常在系统重新启动后被删除。应注意定期清理/tmp目
录,以确保不会占用过多的磁盘空间。
(16)/usr
/usr目录包含用户的应用程序和文件。这是Linux系统中最大的目录之一,它通常包含共享的可执行文
件、库文件、文档、图标等。
(17)/var
/var目录用于存储可变数据,例如日志文件、缓存文件和临时文件。/var目录中的数据通常在系统运行
时会频繁变化。
(18)/run
/run目录是一个临时文件系统,用于存储在系统引导过程中需要保存的运行时数据。例如,PID文件、锁
文件等。
(19)/run/user
/run/user目录包含与用户相关的运行时数据。每个用户都有一个与其用户ID相对应的子目录,用于存储
用户特定的运行时数据。
(20)/sys
/sys目录是一个虚拟文件系统,用于提供关于系统硬件和设备的信息。它是与/sys目录下的文件进行交
互的一种方法。
(21)/srv
/srv目录用于存储系统服务提供的数据。例如,Web服务器可以将网站数据存储在/srv目录下。
2、常用命令
(1)关闭防火墙
(2)关闭SELINUX
临时关闭 selinux :
永久关闭selinux:
修改内容如下:
修改配置文件需要重启系统后生效。
(3)32OR64位系统
(4)查看系统名称及版本
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
getconf LONG_BIT
uname -a
cat /proc/version
lsb_release -a
(5)命令后台运行
(6)使用NTP服务校正时间
UOS系统下crontab中ntpdate命令必须使用全路径,如
(7)查看架构命令
aarch64是ARM架构
x86_32是32位x86架构
x86_64是64位x86架构
mips64是64位MIPS架构(龙芯)
(8)生成随机字符串
(9)用户管理
增加用户
useradd -m 新用户名
-c 添加备注信息
-d 指定有效家目录
-g 指定用户组
-G 指定附加组
-n 取消以用户为名的组
-s 指定登录shell
-u 指定用户ID
删除用户
nohup java -Xms1024m -Xmx1024m -jar ./suggest.jar 2>&1 1>&/dev/null
ntpdate 142.1.255.36
ntpdate ntp2.aliyun.com
/usr/sbin/ntpdate 142.1.255.30
arch
cat /dev/urandom | tr -cd [:alnum:] | head -c 16
useradd -d /home/haha zhangsan
修改密码过期时间
(10)查看CPU个数
(11)查看内存大小
(12)查看IP和MAC地址
(13)安装字体文件
使用命令 fc-list 查看系统中已安装的字体,如果没有此命令,则安装字体相关软件包
拷贝字体文件到 /usr/share/fonts/chinese
进入 chinese 目录,执行以下命令
查看安装后的中文字体
userdel -r zhangsan
chage -M 99999 ftpuser
cat /proc/cpuinfo | grep “processor” | wc -l
lscpu
nproc
free
free -g
cat /proc/meminfo
ifconfig
ifconfig -a
yum install -y fontconfig mkfontscale
fc-list :lang=zh
mkdir -p /usr/share/fonts/Chinese
cp *.ttf /usr/share/fonts/Chinese
cd /usr/share/fonts/Chinese
mkfontscale
mkfontdir
fc-cache -fv
fc-list :lang=zh
(14)网络相关命令
1)查找TIME_WAIT状态连接数量命令
centos7需要安装 net-tools 软件包
2)查看网络请求各种时间
3)防火墙不关闭的情况下开放端口或服务
netstat -ano | grep TIME_WAIT | wc -l
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%
{time_starttransfer}::%{time_total}::%{speed_download}"\n"
“https://www.baidu.com”
#开放指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#删除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 删除
#重启防火墙
firewall-cmd --reload
#查看指定端口
firewall-cmd --zone= public --query-port=80/tcp #查看
#查看所有开放端口
firewall-cmd --zone=public --list-ports
#开放指定IP
firewall-cmd --permanent --add-source=192.168.1.1
firewall-cmd --permanent --add-source=192.168.1.0/24
firewall-cmd --permanent --remove-source=192.168.1.1
#系统服务的开放
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --remove-service=http
#自定义复杂规则(注意是否与已有规则冲突)
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.1” port protocol=“tcp” port=“8080” accept’
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.0/24” port protocol=“tcp” port=“8080-8090” accept’
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.1” port protocol=“tcp” port=“8080” reject’
(15)磁盘操作
1)查看当前已挂载磁盘情况
2)查看未挂载磁盘情况
3)格式化磁盘
4)挂载磁盘
在 fstab 文件中增加一行记录,如
验证 fstab 文件是否添加正确
5)SFS磁盘挂载命令:
查看挂载情况:
二、UOS相关命令
1、在线安装软件包
2、下载软件包
3、安装离线deb包
df -h
lsblk
mkfs -t ext4 /dev/nvmeOn1 #备注 nvmeOn1 都是存在在/dev 下面的
/dev/sda /media/movie ext4 defaults 0 0
mount -a
mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径
mount -t nfs -o vers=3,timeo=600,noresvport,nolock 142.2.150.210:/ /storage
mount -l
apt-get install openjdk-8-jdk
apt-get install openssh-server
aptitude download libsnmp30
dpkg -i ./libsnmp30.deb
4、移除软件包
5、修改软件源
修改软件源后立即生效命令:
6、下载所有依赖包
7、挂载NFS存储时
客户端需要安装 nfs-common 包
安装nfs服务端时需要安装 nfs-core-server 包
8、查找软件包如nginx
9、需要哪些依赖包
10、被哪些包依赖
11、检查是否有损坏的依赖关系
dpkg -r keepalived #不移除配置文件
dpkg -P keepalived #移除配置文件
vim /etc/apt/sources.list
sudo apt-get update
sudo apt-get download $(apt-cache depends --recurse --no-recommends --nosuggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends
keepalived |grep -v "^ ")
sudo dpkg -i *.deb
apt-get install nfs-common
apt-get install nfs-core-server
apt-cache search nginx
apt-cache search jdk
apt-cache depends nginx
apt-cache rdepends nginx
apt-get check
12、查看软件包信息
13、安装C++编译环境:
14、修改默认java版本
15、uos安装vncserver
步骤1 :更新系统
步骤2 :安装x11vnc
步骤3 :设置VNC连接密码
根据提示,输入并确认VNC连接的密码,密码保存在 /etc/x11vnc.pass 文件中。
步骤4 :编写服务脚本
文件内容如下:
编辑完成后,保存退出,修改文件权限
apt-cache show nginx
apt-get install build-essentail
update-alternatives --config java
sudo apt-get update
sudo apt-get install x11vnc -y
sudo x11vnc -storepasswd /etc/x11vnc.pass
sudo vim /lib/systemd/system/x11vnc.servicex11vnc.service
[Unit]
Description=Start x11vnc at startup
After=multi-user.target
[Service]Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth
/etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
修改用户和组:
步骤5 :配置启动服务
步骤6 :重启生效
三、更换YUM源
1、CentOS7配置在线YUM源
(1)机器正常可上网时
(2)机器不能上网时
公司环境由于上网限制,Linux服务器无法上网,通过50.194代理YUM源的方式进行配置,将阿里yum
源文件中的地址和端口替换为代理后的地址和端口,如 129.1.50.194:7000 ,文件内容如下:
CentOS-Base.repo
sudo chmod 755 /lib/systemd/system/x11vnc.service
sudo chown root:root /lib/systemd/system/x11vnc.service
sudo systemctl enable x11vnc.servicesudo systemctl daemon-reload
sudo reboot
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo_back
#下载阿里源http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
yum clean all
yum makecache
#The mirror system uses the connecting IP address of the client and theupdate
status of each mirror to pick mirrors that are updated to and geographically
close to the client. You should use this for CentOS updates unless you are
manually picking other mirrors.
#If the mirrorlist= does not work for you, as a fall back you can try the
remarked out baseurl= line instead.
[base]
name=CentOS-KaTeX parse error: Expected 'EOF', got '#' at position 29: …Base - 163.com #̲mirrorlist=http…releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲repo=os baseurl…releasever/os/KaTeX parse error: Expected 'EOF', got '#' at position 164: …G-KEY-CentOS-7 #̲released update…releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?
release=KaTeX parse error: Expected 'EOF', got '&' at position 11: releasever&̲arch=basearch&repo=updates
baseurl=http://129.1.50.194:7000/centos/ r e l e a s e v e r / u p d a t e s / releasever/updates/ releasever/updates/basearch/
gpgcheck=1
gpgkey=http://129.1.50.194:7000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-KaTeX parse error: Expected 'EOF', got '#' at position 31: …tras - 163.com #̲mirrorlist=http…releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲repo=extras bas…releasever/extras/KaTeX parse error: Expected 'EOF', got '#' at position 82: …G-KEY-CentOS-7 #̲additional pack…releasever - Plus - 163.com
baseurl=http://129.1.50.194:7000/centos/ r e l e a s e v e r / c e n t o s p l u s / releasever/centosplus/ releasever/centosplus/basearch/
gpgcheck=1
enabled=0
gpgkey=http://129.1.50.194:7000/centos/RPM-GPG-KEY-CentOS-7
mkdir /mnt/cdrom
df /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
df -hT /mnt/cdrom
cd /etc/yum.repo.d/
mv ./Centos-Base.repo ./Centos-Base.repo.bak
mv ./Centos-Debuginfo.repo ./Centos-Debuginfo.repo.bak
vim ./Centos-Media.repo
按如下进行修改:
清空yum缓存
测试
显示“已安装的软件包”字样时说明配置成功,可以使用yum安装软件包了。
(2)UOS挂载本地源
上传ISO文件到本地 /opt ;
创建挂载文件夹路径, mkdir -pv /mnt/cdrom
挂载镜像源 mount .iso /mnt/cdrom
创建repo文件
编辑 UnionTechOS-local.repo 文件
内容如下
配置完成后执行以下命令进行软件源重建
四、配置VSFTPD服务
[Local]
name=Local Yum
baseurl=file:///mnt/cdrom
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-UnionTech
enabled=1
yum clean all
yum makecache
yum list
cd /etc/yum.repo.d
mv .rapo /etc/yum.repo.d/.bak #备份
vim UnionTechOS-local.repo
[Local]
name=Local Yum
baseurl=file:///mnt/cdrom
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-UnionTech
enabled=1
yum clean all #清除
yum makecache #重建
yum list #测试本地源
1、CentOS7配置
(1)单用户配置
安装命令
修改配置文件 /etc/vsftpd/vsftpd.conf
ftp根目录不能有写权限,如 /media/movie
(2)多用户限制不同目录配置
添加用户
修改vsftpd配置文件 /etc/vsftpd/vsftpd.conf
创建各用户的配置文件
yum install vsftpd
anonymous_enable=NO
local_enable=YES
local_root=/media/movie
chroot_local_user=YES
chroot_list_enable=YES
chmod a-w /media/movie
useradd user1
passwd user1
useradd user2
passwd user2
chroot_local_user=YES
user_config_dir=/etc/vsftpd/userconfig
allow_writeable_chroot=YES
mkdir /etc/vsftpd/userconfig & cd /etc/vsftpd/userconfig
vim ./user1
local_root=/data/ftproot/user1
write_enable=YES
vim ./user2
local_root=/data/ftproot/user2
write_enable=YES
(3)用户只登FTP不登ssh
1) /etc/shells 中增加 /bin/false 文件,用于不能登录的用户
2)增加或配置用户
增加用户时配置登录模式
或修改已经增加的用户登录模式
3)修改密码
4) /etc/vsftpd/userconfig 目录下增加kjda配置
内容如下:
5)增加kjda对应ftp目录
2、UOS配置
(1)拷贝配置文件
(2)创建配置文件链接
systemctl restart vsftpd
useradd -d /home/kjda -s /bin/false kjda
usermod -s /bin/false kjda
passwd kjda
vim /etc/vsftpd/userconfig/kjda
local_root=/data/ftproot/kjda
write_enable=YES
mkdir /data/ftproot/kjda
apt-get install -y vsftpd
ln -s /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
ln -s /etc/vsftpd/user_list /etc/vsftpd.user_list
(3)增加用户并配置
增加用户及用户家目录、ftproot下目录,并修改属主
(4)启动
(5)测试
使用FTP用户登录创建目录、上传、下载文件进行测试。
3、VSFTPD服务常见问题
(1)vsftpd登录时间长
原因可能为反向查找DNS导致,以下参数关闭反向查找DNS,加快登录速度
(2)密码过期无法登录
修改用户有效期为永久
五、SSH服务相关
1、SSH开始连接时间长问题
useradd bgxtpasswd bgxt
useradd baxtpasswd baxt
useradd ftpuserpasswd ftpuser
useradd kjdapasswd kjda
mkdir /home/bgxt
chown bgxt:bgxt /home/bgxt
mkdir -p /data/ftproot/bgxt
chown bgxt:bgxt /data/ftproot/bgxt
mkdir /home/baxt
chown baxt:baxt /home/baxt
mkdir -p /data/ftproot/baxt
chown baxt:baxt /data/ftproot/baxt
mkdir /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser
mkdir -p /data/ftproot/esszdas
chown ftpuser:ftpuser /data/ftproot/esszdas
mkdir /home/kjda
chown kjda:kjda /home/kjda
mkdir -p /data/ftproot/kjda
chown kjda:kjda /data/ftproot/kjda
systemctl start vsftpd
systemctl enable vsftpd
reverse_lookup_enable=NO
chage username -M 99999
修改 /etc/ssh/sshd_config
将以下三个参数修改为 no
2、ssh一定时间自动断开连接问题
修改 /etc/ssh/sshd_config
六、文件操作相关命令
1.dd命令
生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)。但是这样为
实际写入硬盘,文件产生速度取决于硬盘读写速度,如果想要产生超大文件,速度很慢
在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘。则可以使用
seek
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存
速度相当
if (input file)代表输入文件/目录,如果不指定 if,默认就会从 stdin 中读取输入
of (output file)代表输出文件/目录,如果不指定 of,默认就会将 stdout 作为默认输出
bs 代表每次读入的block大小
count:读取的block个数
bscount=文件大小
/dev/zero 是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二
进制0
seek:跳过输出文件中指定大小的部分,并不实际写入
2.truncate命令
将文件缩减或扩展至指定大小。
选项 -s,即 size(大小)
1)指定文件不存在则创建。
2)指定文件超出指定大小则超出的数据将丢失。
3)指定文件小于指定大小则用0 补足。
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UseDNS no
ClientAliveInterval 60
ClientAliveCountMax 86400
dd if=/dev/zero of=test1 bs=1M count=1000
dd if=/dev/zero of=test3 bs=1M count=50 seek=100000
注意点:
这种文件被称为“空洞文件”,文件的部分内容并没有实际存在于硬盘上
du (disk use):默认显示的是真正的磁盘占用。
3、fallocate 命令
fallocate 命令可以为文件预分配物理空间。
-l 后接空间大小,默认单位为字节。也可后跟k、m、g、t、p、e来指定单位,分别代表KB、MB、GB、
TB、PB、EB
4、tar命令
(1)压缩文件
排除目录或文件:
(2)解压缩文件
5、查找文件
(1)locate
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式
条件的文档或目录。
locate基于数据库的查询,速度很快,但不是实时的查询。
locate是模糊查询
需要对文件的目录有rx的权限
语法:
-b, --basename – 仅匹配路径名的基本名称
-c, --count – 只输出找到的数量
-d, --database DBPATH – 使用 DBPATH 指定的数据库,而不是默认数据库
/var/lib/mlocate/mlocate.db
-e, --existing – 仅打印当前现有文件的条目
-1 – 如果是1,则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减
慢,因为locate必须至实际的档案系统中取得档案的权限资料。
-0, --null – 在输出上带有NUL的单独条目
truncate -s 10G test4
fallocate -l 10G test4
tar -czvf /data/nginx.20230728.tar.gz --exclude=/data/nginx/html –
exclude=/data/nginx/logs /data/nginx
tar -xzvf ./nginx.20230728.tar.gz
-S, --statistics – 不搜索条目,打印有关每个数据库的统计信息
-q – 安静模式,不会显示任何错误讯息。
-P, --nofollow,
-H – 检查文件存在时不要遵循尾随的符号链接
-l, --limit,
-n LIMIT – 将输出(或计数)限制为LIMIT个条目
-m, --mmap – 被忽略,为了向后兼容
-r, --regexp REGEXP – 使用基本正则表达式–regex – 使用扩展正则表达式
-s, --stdio – 被忽略,为了向后兼容
-o – 指定资料库存的名称。
-h, --help – 显示帮助
-i, --ignore-case – 忽略大小写
-V, --version – 显示版本信息
例:
(2)find
find命令是一种通过条件匹配在指定目录下查找对应文件或者目录的工具。匹配的条件可以是文件名
称、类型、大小、权限属性、时间戳等。find命令还可以配合相关命令对匹配到的文件作出后续处理。
find在工作时会遍历指定的目录,通过匹配指定的条件搜寻我们需要的文件或者目录。因此,find命令
具有以下特点:
查找速度略慢
精确查找
实时查找
可能只搜索用户具备读取和执行权限的目录(这点同locate)
find命令语法格式为:find [path…] [expression]
[path…]为需要查找文件所指定的路径。如果不指定,则默认为当前目录及其子目录。
[expression]为匹配条件/表达式。如果未设置匹配条件,则默认查找指定目录及子目录下所有文件
#查询前5个passwd文件
locate passwd -n 5
#忽略大小写
locate -i CONF -n 5
#更新本地数据库,默认数据库文件为/var/lib/mlocate/mlocate.db
updatedb
#打印系统数据库信息
locate -S
#根据文件名查找
find / -name ‘a.pdf’
#去掉不查找的目录
find / -name ‘a.pdf’ !-path ‘/dev’
6、统计文件或目录
(1)统计文件夹下文件的个数
(2)统计文件夹下目录的个数
(3)统计文件夹下文件个数
(4)统计文件夹下目录个数
(5)wc命令
(Word Count)功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-c 统计字节数
-l 统计行数
-m 统计字符数,此标志不能与-c标志一起使用
-w 统计字数。一个字定义为由空白、跳格或换行字符分隔的字符串
#指定搜索目录层级/深度
find / -maxdepth 2 -name “.conf"
#根据文件类型查找,f 普通文件,d 目录文件,l 符号链接文件,s 套接字文件,b 块设备文件,c
字符设备文件,p 管道文件
find /dev -type b
#根据文件大小查找,find [path] -size [+|-]N,其中N为文件大小,单位为c/k/M/G,[+|-]N的具体
含义如下:
#50k: 搜索49k~50k大小的文件 N-1~N
#+50k: 搜索大于50k的文件 N~······
#-50k: 搜索小于49k的文件 0~N-1
find /app -size 2M
#反选
find ./ ! -name ".log”
#查找2022-08-17 0时0分0秒后修改的文件
find ./ -type f -newermt ‘2022-08-17 00:00:00’
ls -l | grep “^-” | wc -l
ls -l | grep “^d” | wc -l
ls -lR | grep “^-” | wc -l
ls -lR | grep “^d” | wc -l
wc [-lcw]
(6)计算目录大小
7、scp命令
scp 可以在 2个Linux主机间复制文件, scp [可选参数] file_source file_target
(1)从 本地 复制到 远程
(2)从 远程 复制到 本地
scp命令常用参数:
-C - 这会在复制过程中压缩文件或目录。
-P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。
-r - 此选项递归复制目录及其内容。
-p - 保留文件的访问和修改时间。
8、编辑文件
vim是从 vi 发展出来的一个文本编辑器,有三种模式——命令模式(一般模式)、末行模式和编辑模式
(输入模式)。
命令模式(一般模式):控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
i/o/a 切换到输入模式,以输入字符,x 删除当前光标所在处的字符,: 切换到底线命令模式,以在
最底一行输入命令
输入模式(编辑模式):正常的文本录入;ENTER回车键换行;BACK SPACE退格键,删除光标前
一个字符;DEL, 删除键,删除光标后一个字符;方向键, 在文本中移动光标;HOME/END, 移
动光标到行首/行尾;Page Up/Page Down,上/下翻页;Insert, 切换光标为输入/替换模式,光
标将变成竖线/下划线;ESC, 退出输入模式,切换到命令模式。
末行模式(底线命令模式):保存或退出文档,以及设置编辑环境
:q 退出程序,:w 保存文件,:wq 保存并退出,:q! 不保存之间退出,:x 保存并退出,:w filename
文件另存为,按ESC键可随时退出底线命令模式。
七、系统时间相关
1、查看系统最后一次启动时间
du -h --max-depth=1
du -h --max-depth=1 --exclude=“dev” --exclude=“boot” --exclude=“home” –
exclude=“data” --exclude=“media”
scp -P 6222 local_file remote_username@remote_ip:remote_folder
#例:
scp /home/space/music/1.pdf [email protected]:/data
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
vim 文件名 #打开或者创建一个文件,光标至于第一行行首
vim +n filename #打开存在的文件,并将光标置于第n行行首
2、计算系统运行时间
3、查看当前系统运行时间
4、查看开机时间
5、设置系统时间
八、CetnOS7搭建DNS服务
1、关闭防火墙和selinux
临时关闭 selinux :
永久关闭 selinux :
修改内容如下:
2、安装bind软件包
3、修改/etc/named.conf文件
who -b
date -d “$(awk -F. ‘{print $1}’ /proc/uptime) second ago” +"%Y-%m-%d %H:%M:%S"
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 %
86400)/3600;run_minute=($1 % 3600)/60;run_second= 1 时 w h o − r d a t e − d " 1 % 60;printf("系统已运行:%d天%d 时%d分%d秒",run_days,run_hour,run_minute,run_second)}' who -r date -d " 1时who−rdate−d"(awk -F. ‘{print $1}’ /proc/uptime) second ago"
date -s “20220224 13:57:50”
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
yum -y install bind
4、配置域名
增加域名配置和对应的配置文件
5、配置正、反向解析文件
在 /var/named 目录下将 named.localhost 文件复制为两个文件: rhhy.meet.zheng 、
rhhy.meet.fan ,并进行修改:
正向解析(域名—>IP)配置文件: rhhy.meet.zheng
反向解析配置文件: rhhy.meet.fan
vim /etc/named.conf
listen-on port 53 {any;}; #设置为本地的IP地址即可。
allow-query {any;} #设置为所有人都可以访问。
vim /etc/named.rfc1912.zones
zone “sdcourt.gov.cn” IN {
type master;
file “rhhy.meet.zheng”;
allow-update { none; };
};
zone “41.168.192.in-addr.arpa” IN {
type master;
file “rhhy.meet.fan”;
allow-update { none; };
};
$TTL 1D
@ IN SOA @ dns.sdcourt.gov.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.sdcourt.gov.cn.
cbjg A 192.168.41.17
dns A 192.168.41.41
6、重启服务
7、测试
九、定时任务
1、编辑定时任务
注:
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd:要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量(脚本要
有可执行权限)
ntpdateshell.sh用作定时校时,内容如下:
2、查看定时任务
$TTL 1D
@ IN SOA @ dns.sdcourt.gov.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.sdcourt.gov.cn.
17 PTR cbjg.sdcourt.gov.cn.
41 PTR dns.sdcourt.gov.cn.
systemctl restart named
nslookup cbjg.sdcourt.gov.cn
nslookup 192.168.41.17
crontab -u root -e
#M H D m d cmd
9 14 * * * /opt/eastsoft/ntpdateshell.sh
#!/bin/bash
/usr/bin/ntpdate 142.1.255.36
crontab -u root -lLinux操作系统知识
一、Linux基础知识
1、目录结构
(1)根目录(/)
(2)/bin
(3)/boot
(4)/dev
(5)/etc
(6)/home
(7)/lib和/lib64
(8)/media
(9)/mnt
(10)/opt
(11)/proc
(12)/root
(13)/sbin
(14)/srv
(15)/tmp
(16)/usr
(17)/var
(18)/run
(19)/run/user
(20)/sys
(21)/srv
2、常用命令
(1)关闭防火墙
(2)关闭SELINUX
(3)32OR64位系统
(4)查看系统名称及版本
(5)命令后台运行
(6)使用NTP服务校正时间
(7)查看架构命令
(8)生成随机字符串
(9)用户管理
(10)查看CPU个数
(11)查看内存大小
(12)查看IP和MAC地址
(13)安装字体文件
(14)网络相关命令
(15)磁盘操作
二、UOS相关命令
1、在线安装软件包
2、下载软件包
3、安装离线deb包
4、移除软件包
5、修改软件源
6、下载所有依赖包
7、挂载NFS存储时
8、查找软件包如nginx
9、需要哪些依赖包
10、被哪些包依赖
11、检查是否有损坏的依赖关系
12、查看软件包信息
13、安装C++编译环境:
14、修改默认java版本
15、uos安装vncserver
三、更换YUM源
1、CentOS7配置在线YUM源
(1)机器正常可上网时
(2)机器不能上网时
2、配置光盘镜像YUM源
(1)CentOS
(2)UOS挂载本地源
四、配置VSFTPD服务
1、CentOS7配置
(1)单用户配置
(2)多用户限制不同目录配置
(3)用户只登FTP不登ssh
2、UOS配置
(1)拷贝配置文件
(2)创建配置文件链接
(3)增加用户并配置
3、VSFTPD服务常见问题
(1)vsftpd登录时间长
(2)密码过期无法登录
五、SSH服务相关
1、SSH开始连接时间长问题
2、ssh一定时间自动断开连接问题
六、文件操作相关命令
1.dd命令
2.truncate命令
3、fallocate 命令
4、tar命令
(1)压缩文件
(2)解压缩文件
5、查找文件
(1)locate
(2)find
6、统计文件或目录
(1)统计文件夹下文件的个数
(2)统计文件夹下目录的个数
(3)统计文件夹下文件个数
(4)统计文件夹下目录个数
(5)wc命令
(6)计算目录大小
7、scp命令
8、编辑文件
七、系统时间相关
1、查看系统最后一次启动时间
2、计算系统运行时间
3、查看当前系统运行时间
4、查看开机时间
5、设置系统时间
八、CetnOS7搭建DNS服务
1、关闭防火墙和selinux
2、安装 bind 软件包
3、修改 /etc/named.conf 文件
4、配置域名
5、配置正、反向解析文件
6、重启服务
7、测试
九、定时任务
一、Linux基础知识
核心原则:一切皆文件。
1、目录结构
(1)根目录(/)
根目录是整个文件系统的顶级目录,所有其他目录和文件都是从根目录开始的。在Linux中,根目录用斜
杠(/)表示。
(2)/bin
/bin目录包含一些基本的可执行文件,这些文件是系统启动和运行所必需的。例如,/bin目录包含常用
的命令如ls、cp、rm等。
(3)/boot
/boot目录包含启动加载程序(bootloader)的相关文件,包括内核映像文件和引导配置文件。在启动
过程中,系统会使用/boot目录下的文件来引导操作系统。
(4)/dev
/dev目录包含设备文件,这些文件用于与系统中的设备进行交互。在Linux中,一切都被视为文件,设备
文件用于访问硬件设备,如磁盘、键盘、鼠标等。
(5)/etc
/etc目录包含系统的配置文件。这些配置文件用于设置系统的各种参数和选项,例如网络配置、用户账
户配置、服务配置等。/etc目录中的文件对系统的正常运行至关重要。
(6)/home
/home目录是用户的主目录,每个用户都有一个与其用户名相对应的子目录。用户可以在自己的主目录
中存储个人文件和配置。
(7)/lib和/lib64
/lib目录和/lib64目录包含共享库文件,这些库文件是应用程序和系统工具所需的共享组件。/lib目录用于
32位系统,而/lib64目录用于64位系统。
(8)/media
/media目录用于挂载可移动设备,如光盘、USB驱动器等。当插入可移动设备时,系统会自动将其挂载
到/media目录下的子目录中。
(9)/mnt
/mnt目录用于临时挂载其他文件系统或网络共享。管理员可以将其他设备或远程共享挂载到/mnt目录
中,以便访问其内容。
(10)/opt
/opt目录用于安装第三方软件包。一些应用程序将其安装在/opt目录下,以便与系统的其他部分分离。
(11)/proc
/proc目录是一个虚拟文件系统,提供有关系统和进程的信息。系统管理员和开发人员可以通过读
取/proc目录下的文件来获取关于系统状态、进程信息、硬件配置等的实时数据。
(12)/root
/root目录是超级用户(root用户)的主目录。与普通用户的主目录(/home)不同,超级用户的主目录
位于/root。只有root用户可以访问和操作/root目录。
(13)/sbin
/sbin目录包含系统管理员使用的一些系统命令和工具。这些命令和工具通常用于系统管理和维护任务,
例如启动和停止服务、网络配置等。
(14)/srv
/srv目录用于存储系统服务提供的数据。例如,Web服务器可以将网站数据存储在/srv目录下。
(15)/tmp
/tmp目录用于存储临时文件。该目录中的文件通常在系统重新启动后被删除。应注意定期清理/tmp目
录,以确保不会占用过多的磁盘空间。
(16)/usr
/usr目录包含用户的应用程序和文件。这是Linux系统中最大的目录之一,它通常包含共享的可执行文
件、库文件、文档、图标等。
(17)/var
/var目录用于存储可变数据,例如日志文件、缓存文件和临时文件。/var目录中的数据通常在系统运行
时会频繁变化。
(18)/run
/run目录是一个临时文件系统,用于存储在系统引导过程中需要保存的运行时数据。例如,PID文件、锁
文件等。
(19)/run/user
/run/user目录包含与用户相关的运行时数据。每个用户都有一个与其用户ID相对应的子目录,用于存储
用户特定的运行时数据。
(20)/sys
/sys目录是一个虚拟文件系统,用于提供关于系统硬件和设备的信息。它是与/sys目录下的文件进行交
互的一种方法。
(21)/srv
/srv目录用于存储系统服务提供的数据。例如,Web服务器可以将网站数据存储在/srv目录下。
2、常用命令
(1)关闭防火墙
(2)关闭SELINUX
临时关闭 selinux :
永久关闭selinux:
修改内容如下:
修改配置文件需要重启系统后生效。
(3)32OR64位系统
(4)查看系统名称及版本
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
getconf LONG_BIT
uname -a
cat /proc/version
lsb_release -a
(5)命令后台运行
(6)使用NTP服务校正时间
UOS系统下crontab中ntpdate命令必须使用全路径,如
(7)查看架构命令
aarch64是ARM架构
x86_32是32位x86架构
x86_64是64位x86架构
mips64是64位MIPS架构(龙芯)
(8)生成随机字符串
(9)用户管理
增加用户
useradd -m 新用户名
-c 添加备注信息
-d 指定有效家目录
-g 指定用户组
-G 指定附加组
-n 取消以用户为名的组
-s 指定登录shell
-u 指定用户ID
删除用户
nohup java -Xms1024m -Xmx1024m -jar ./suggest.jar 2>&1 1>&/dev/null
ntpdate 142.1.255.36
ntpdate ntp2.aliyun.com
/usr/sbin/ntpdate 142.1.255.30
arch
cat /dev/urandom | tr -cd [:alnum:] | head -c 16
useradd -d /home/haha zhangsan
修改密码过期时间
(10)查看CPU个数
(11)查看内存大小
(12)查看IP和MAC地址
(13)安装字体文件
使用命令 fc-list 查看系统中已安装的字体,如果没有此命令,则安装字体相关软件包
拷贝字体文件到 /usr/share/fonts/chinese
进入 chinese 目录,执行以下命令
查看安装后的中文字体
userdel -r zhangsan
chage -M 99999 ftpuser
cat /proc/cpuinfo | grep “processor” | wc -l
lscpu
nproc
free
free -g
cat /proc/meminfo
ifconfig
ifconfig -a
yum install -y fontconfig mkfontscale
fc-list :lang=zh
mkdir -p /usr/share/fonts/Chinese
cp *.ttf /usr/share/fonts/Chinese
cd /usr/share/fonts/Chinese
mkfontscale
mkfontdir
fc-cache -fv
fc-list :lang=zh
(14)网络相关命令
1)查找TIME_WAIT状态连接数量命令
centos7需要安装 net-tools 软件包
2)查看网络请求各种时间
3)防火墙不关闭的情况下开放端口或服务
netstat -ano | grep TIME_WAIT | wc -l
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%
{time_starttransfer}::%{time_total}::%{speed_download}"\n"
“https://www.baidu.com”
#开放指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#删除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 删除
#重启防火墙
firewall-cmd --reload
#查看指定端口
firewall-cmd --zone= public --query-port=80/tcp #查看
#查看所有开放端口
firewall-cmd --zone=public --list-ports
#开放指定IP
firewall-cmd --permanent --add-source=192.168.1.1
firewall-cmd --permanent --add-source=192.168.1.0/24
firewall-cmd --permanent --remove-source=192.168.1.1
#系统服务的开放
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --remove-service=http
#自定义复杂规则(注意是否与已有规则冲突)
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.1” port protocol=“tcp” port=“8080” accept’
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.0/24” port protocol=“tcp” port=“8080-8090” accept’
firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source
address=“192.168.1.1” port protocol=“tcp” port=“8080” reject’
(15)磁盘操作
1)查看当前已挂载磁盘情况
2)查看未挂载磁盘情况
3)格式化磁盘
4)挂载磁盘
在 fstab 文件中增加一行记录,如
验证 fstab 文件是否添加正确
5)SFS磁盘挂载命令:
查看挂载情况:
二、UOS相关命令
1、在线安装软件包
2、下载软件包
3、安装离线deb包
df -h
lsblk
mkfs -t ext4 /dev/nvmeOn1 #备注 nvmeOn1 都是存在在/dev 下面的
/dev/sda /media/movie ext4 defaults 0 0
mount -a
mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径
mount -t nfs -o vers=3,timeo=600,noresvport,nolock 142.2.150.210:/ /storage
mount -l
apt-get install openjdk-8-jdk
apt-get install openssh-server
aptitude download libsnmp30
dpkg -i ./libsnmp30.deb
4、移除软件包
5、修改软件源
修改软件源后立即生效命令:
6、下载所有依赖包
7、挂载NFS存储时
客户端需要安装 nfs-common 包
安装nfs服务端时需要安装 nfs-core-server 包
8、查找软件包如nginx
9、需要哪些依赖包
10、被哪些包依赖
11、检查是否有损坏的依赖关系
dpkg -r keepalived #不移除配置文件
dpkg -P keepalived #移除配置文件
vim /etc/apt/sources.list
sudo apt-get update
sudo apt-get download $(apt-cache depends --recurse --no-recommends --nosuggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends
keepalived |grep -v "^ ")
sudo dpkg -i *.deb
apt-get install nfs-common
apt-get install nfs-core-server
apt-cache search nginx
apt-cache search jdk
apt-cache depends nginx
apt-cache rdepends nginx
apt-get check
12、查看软件包信息
13、安装C++编译环境:
14、修改默认java版本
15、uos安装vncserver
步骤1 :更新系统
步骤2 :安装x11vnc
步骤3 :设置VNC连接密码
根据提示,输入并确认VNC连接的密码,密码保存在 /etc/x11vnc.pass 文件中。
步骤4 :编写服务脚本
文件内容如下:
编辑完成后,保存退出,修改文件权限
apt-cache show nginx
apt-get install build-essentail
update-alternatives --config java
sudo apt-get update
sudo apt-get install x11vnc -y
sudo x11vnc -storepasswd /etc/x11vnc.pass
sudo vim /lib/systemd/system/x11vnc.servicex11vnc.service
[Unit]
Description=Start x11vnc at startup
After=multi-user.target
[Service]Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth
/etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
修改用户和组:
步骤5 :配置启动服务
步骤6 :重启生效
三、更换YUM源
1、CentOS7配置在线YUM源
(1)机器正常可上网时
(2)机器不能上网时
公司环境由于上网限制,Linux服务器无法上网,通过50.194代理YUM源的方式进行配置,将阿里yum
源文件中的地址和端口替换为代理后的地址和端口,如 129.1.50.194:7000 ,文件内容如下:
CentOS-Base.repo
sudo chmod 755 /lib/systemd/system/x11vnc.service
sudo chown root:root /lib/systemd/system/x11vnc.service
sudo systemctl enable x11vnc.servicesudo systemctl daemon-reload
sudo reboot
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo_back
#下载阿里源http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
yum clean all
yum makecache
#The mirror system uses the connecting IP address of the client and theupdate
status of each mirror to pick mirrors that are updated to and geographically
close to the client. You should use this for CentOS updates unless you are
manually picking other mirrors.
#If the mirrorlist= does not work for you, as a fall back you can try the
remarked out baseurl= line instead.
[base]
name=CentOS-KaTeX parse error: Expected 'EOF', got '#' at position 29: …Base - 163.com #̲mirrorlist=http…releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲repo=os baseurl…releasever/os/KaTeX parse error: Expected 'EOF', got '#' at position 164: …G-KEY-CentOS-7 #̲released update…releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?
release=KaTeX parse error: Expected 'EOF', got '&' at position 11: releasever&̲arch=basearch&repo=updates
baseurl=http://129.1.50.194:7000/centos/ r e l e a s e v e r / u p d a t e s / releasever/updates/ releasever/updates/basearch/
gpgcheck=1
gpgkey=http://129.1.50.194:7000/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-KaTeX parse error: Expected 'EOF', got '#' at position 31: …tras - 163.com #̲mirrorlist=http…releasever&arch=KaTeX parse error: Expected 'EOF', got '&' at position 9: basearch&̲repo=extras bas…releasever/extras/KaTeX parse error: Expected 'EOF', got '#' at position 82: …G-KEY-CentOS-7 #̲additional pack…releasever - Plus - 163.com
baseurl=http://129.1.50.194:7000/centos/ r e l e a s e v e r / c e n t o s p l u s / releasever/centosplus/ releasever/centosplus/basearch/
gpgcheck=1
enabled=0
gpgkey=http://129.1.50.194:7000/centos/RPM-GPG-KEY-CentOS-7
mkdir /mnt/cdrom
df /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
df -hT /mnt/cdrom
cd /etc/yum.repo.d/
mv ./Centos-Base.repo ./Centos-Base.repo.bak
mv ./Centos-Debuginfo.repo ./Centos-Debuginfo.repo.bak
vim ./Centos-Media.repo
按如下进行修改:
清空yum缓存
测试
显示“已安装的软件包”字样时说明配置成功,可以使用yum安装软件包了。
(2)UOS挂载本地源
上传ISO文件到本地 /opt ;
创建挂载文件夹路径, mkdir -pv /mnt/cdrom
挂载镜像源 mount .iso /mnt/cdrom
创建repo文件
编辑 UnionTechOS-local.repo 文件
内容如下
配置完成后执行以下命令进行软件源重建
四、配置VSFTPD服务
[Local]
name=Local Yum
baseurl=file:///mnt/cdrom
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-UnionTech
enabled=1
yum clean all
yum makecache
yum list
cd /etc/yum.repo.d
mv .rapo /etc/yum.repo.d/.bak #备份
vim UnionTechOS-local.repo
[Local]
name=Local Yum
baseurl=file:///mnt/cdrom
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-UnionTech
enabled=1
yum clean all #清除
yum makecache #重建
yum list #测试本地源
1、CentOS7配置
(1)单用户配置
安装命令
修改配置文件 /etc/vsftpd/vsftpd.conf
ftp根目录不能有写权限,如 /media/movie
(2)多用户限制不同目录配置
添加用户
修改vsftpd配置文件 /etc/vsftpd/vsftpd.conf
创建各用户的配置文件
yum install vsftpd
anonymous_enable=NO
local_enable=YES
local_root=/media/movie
chroot_local_user=YES
chroot_list_enable=YES
chmod a-w /media/movie
useradd user1
passwd user1
useradd user2
passwd user2
chroot_local_user=YES
user_config_dir=/etc/vsftpd/userconfig
allow_writeable_chroot=YES
mkdir /etc/vsftpd/userconfig & cd /etc/vsftpd/userconfig
vim ./user1
local_root=/data/ftproot/user1
write_enable=YES
vim ./user2
local_root=/data/ftproot/user2
write_enable=YES
(3)用户只登FTP不登ssh
1) /etc/shells 中增加 /bin/false 文件,用于不能登录的用户
2)增加或配置用户
增加用户时配置登录模式
或修改已经增加的用户登录模式
3)修改密码
4) /etc/vsftpd/userconfig 目录下增加kjda配置
内容如下:
5)增加kjda对应ftp目录
2、UOS配置
(1)拷贝配置文件
(2)创建配置文件链接
systemctl restart vsftpd
useradd -d /home/kjda -s /bin/false kjda
usermod -s /bin/false kjda
passwd kjda
vim /etc/vsftpd/userconfig/kjda
local_root=/data/ftproot/kjda
write_enable=YES
mkdir /data/ftproot/kjda
apt-get install -y vsftpd
ln -s /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
ln -s /etc/vsftpd/user_list /etc/vsftpd.user_list
(3)增加用户并配置
增加用户及用户家目录、ftproot下目录,并修改属主
(4)启动
(5)测试
使用FTP用户登录创建目录、上传、下载文件进行测试。
3、VSFTPD服务常见问题
(1)vsftpd登录时间长
原因可能为反向查找DNS导致,以下参数关闭反向查找DNS,加快登录速度
(2)密码过期无法登录
修改用户有效期为永久
五、SSH服务相关
1、SSH开始连接时间长问题
useradd bgxtpasswd bgxt
useradd baxtpasswd baxt
useradd ftpuserpasswd ftpuser
useradd kjdapasswd kjda
mkdir /home/bgxt
chown bgxt:bgxt /home/bgxt
mkdir -p /data/ftproot/bgxt
chown bgxt:bgxt /data/ftproot/bgxt
mkdir /home/baxt
chown baxt:baxt /home/baxt
mkdir -p /data/ftproot/baxt
chown baxt:baxt /data/ftproot/baxt
mkdir /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser
mkdir -p /data/ftproot/esszdas
chown ftpuser:ftpuser /data/ftproot/esszdas
mkdir /home/kjda
chown kjda:kjda /home/kjda
mkdir -p /data/ftproot/kjda
chown kjda:kjda /data/ftproot/kjda
systemctl start vsftpd
systemctl enable vsftpd
reverse_lookup_enable=NO
chage username -M 99999
修改 /etc/ssh/sshd_config
将以下三个参数修改为 no
2、ssh一定时间自动断开连接问题
修改 /etc/ssh/sshd_config
六、文件操作相关命令
1.dd命令
生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)。但是这样为
实际写入硬盘,文件产生速度取决于硬盘读写速度,如果想要产生超大文件,速度很慢
在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘。则可以使用
seek
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存
速度相当
if (input file)代表输入文件/目录,如果不指定 if,默认就会从 stdin 中读取输入
of (output file)代表输出文件/目录,如果不指定 of,默认就会将 stdout 作为默认输出
bs 代表每次读入的block大小
count:读取的block个数
bscount=文件大小
/dev/zero 是Linux提供的一个特殊的字符设备,它的特点是可以永远读该文件,每次读取的结果都是二
进制0
seek:跳过输出文件中指定大小的部分,并不实际写入
2.truncate命令
将文件缩减或扩展至指定大小。
选项 -s,即 size(大小)
1)指定文件不存在则创建。
2)指定文件超出指定大小则超出的数据将丢失。
3)指定文件小于指定大小则用0 补足。
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UseDNS no
ClientAliveInterval 60
ClientAliveCountMax 86400
dd if=/dev/zero of=test1 bs=1M count=1000
dd if=/dev/zero of=test3 bs=1M count=50 seek=100000
注意点:
这种文件被称为“空洞文件”,文件的部分内容并没有实际存在于硬盘上
du (disk use):默认显示的是真正的磁盘占用。
3、fallocate 命令
fallocate 命令可以为文件预分配物理空间。
-l 后接空间大小,默认单位为字节。也可后跟k、m、g、t、p、e来指定单位,分别代表KB、MB、GB、
TB、PB、EB
4、tar命令
(1)压缩文件
排除目录或文件:
(2)解压缩文件
5、查找文件
(1)locate
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式
条件的文档或目录。
locate基于数据库的查询,速度很快,但不是实时的查询。
locate是模糊查询
需要对文件的目录有rx的权限
语法:
-b, --basename – 仅匹配路径名的基本名称
-c, --count – 只输出找到的数量
-d, --database DBPATH – 使用 DBPATH 指定的数据库,而不是默认数据库
/var/lib/mlocate/mlocate.db
-e, --existing – 仅打印当前现有文件的条目
-1 – 如果是1,则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减
慢,因为locate必须至实际的档案系统中取得档案的权限资料。
-0, --null – 在输出上带有NUL的单独条目
truncate -s 10G test4
fallocate -l 10G test4
tar -czvf /data/nginx.20230728.tar.gz --exclude=/data/nginx/html –
exclude=/data/nginx/logs /data/nginx
tar -xzvf ./nginx.20230728.tar.gz
-S, --statistics – 不搜索条目,打印有关每个数据库的统计信息
-q – 安静模式,不会显示任何错误讯息。
-P, --nofollow,
-H – 检查文件存在时不要遵循尾随的符号链接
-l, --limit,
-n LIMIT – 将输出(或计数)限制为LIMIT个条目
-m, --mmap – 被忽略,为了向后兼容
-r, --regexp REGEXP – 使用基本正则表达式–regex – 使用扩展正则表达式
-s, --stdio – 被忽略,为了向后兼容
-o – 指定资料库存的名称。
-h, --help – 显示帮助
-i, --ignore-case – 忽略大小写
-V, --version – 显示版本信息
例:
(2)find
find命令是一种通过条件匹配在指定目录下查找对应文件或者目录的工具。匹配的条件可以是文件名
称、类型、大小、权限属性、时间戳等。find命令还可以配合相关命令对匹配到的文件作出后续处理。
find在工作时会遍历指定的目录,通过匹配指定的条件搜寻我们需要的文件或者目录。因此,find命令
具有以下特点:
查找速度略慢
精确查找
实时查找
可能只搜索用户具备读取和执行权限的目录(这点同locate)
find命令语法格式为:find [path…] [expression]
[path…]为需要查找文件所指定的路径。如果不指定,则默认为当前目录及其子目录。
[expression]为匹配条件/表达式。如果未设置匹配条件,则默认查找指定目录及子目录下所有文件
#查询前5个passwd文件
locate passwd -n 5
#忽略大小写
locate -i CONF -n 5
#更新本地数据库,默认数据库文件为/var/lib/mlocate/mlocate.db
updatedb
#打印系统数据库信息
locate -S
#根据文件名查找
find / -name ‘a.pdf’
#去掉不查找的目录
find / -name ‘a.pdf’ !-path ‘/dev’
6、统计文件或目录
(1)统计文件夹下文件的个数
(2)统计文件夹下目录的个数
(3)统计文件夹下文件个数
(4)统计文件夹下目录个数
(5)wc命令
(Word Count)功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
-c 统计字节数
-l 统计行数
-m 统计字符数,此标志不能与-c标志一起使用
-w 统计字数。一个字定义为由空白、跳格或换行字符分隔的字符串
#指定搜索目录层级/深度
find / -maxdepth 2 -name “.conf"
#根据文件类型查找,f 普通文件,d 目录文件,l 符号链接文件,s 套接字文件,b 块设备文件,c
字符设备文件,p 管道文件
find /dev -type b
#根据文件大小查找,find [path] -size [+|-]N,其中N为文件大小,单位为c/k/M/G,[+|-]N的具体
含义如下:
#50k: 搜索49k~50k大小的文件 N-1~N
#+50k: 搜索大于50k的文件 N~······
#-50k: 搜索小于49k的文件 0~N-1
find /app -size 2M
#反选
find ./ ! -name ".log”
#查找2022-08-17 0时0分0秒后修改的文件
find ./ -type f -newermt ‘2022-08-17 00:00:00’
ls -l | grep “^-” | wc -l
ls -l | grep “^d” | wc -l
ls -lR | grep “^-” | wc -l
ls -lR | grep “^d” | wc -l
wc [-lcw]
(6)计算目录大小
7、scp命令
scp 可以在 2个Linux主机间复制文件, scp [可选参数] file_source file_target
(1)从 本地 复制到 远程
(2)从 远程 复制到 本地
scp命令常用参数:
-C - 这会在复制过程中压缩文件或目录。
-P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。
-r - 此选项递归复制目录及其内容。
-p - 保留文件的访问和修改时间。
8、编辑文件
vim是从 vi 发展出来的一个文本编辑器,有三种模式——命令模式(一般模式)、末行模式和编辑模式
(输入模式)。
命令模式(一般模式):控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
i/o/a 切换到输入模式,以输入字符,x 删除当前光标所在处的字符,: 切换到底线命令模式,以在
最底一行输入命令
输入模式(编辑模式):正常的文本录入;ENTER回车键换行;BACK SPACE退格键,删除光标前
一个字符;DEL, 删除键,删除光标后一个字符;方向键, 在文本中移动光标;HOME/END, 移
动光标到行首/行尾;Page Up/Page Down,上/下翻页;Insert, 切换光标为输入/替换模式,光
标将变成竖线/下划线;ESC, 退出输入模式,切换到命令模式。
末行模式(底线命令模式):保存或退出文档,以及设置编辑环境
:q 退出程序,:w 保存文件,:wq 保存并退出,:q! 不保存之间退出,:x 保存并退出,:w filename
文件另存为,按ESC键可随时退出底线命令模式。
七、系统时间相关
1、查看系统最后一次启动时间
du -h --max-depth=1
du -h --max-depth=1 --exclude=“dev” --exclude=“boot” --exclude=“home” –
exclude=“data” --exclude=“media”
scp -P 6222 local_file remote_username@remote_ip:remote_folder
#例:
scp /home/space/music/1.pdf [email protected]:/data
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
vim 文件名 #打开或者创建一个文件,光标至于第一行行首
vim +n filename #打开存在的文件,并将光标置于第n行行首
2、计算系统运行时间
3、查看当前系统运行时间
4、查看开机时间
5、设置系统时间
八、CetnOS7搭建DNS服务
1、关闭防火墙和selinux
临时关闭 selinux :
永久关闭 selinux :
修改内容如下:
2、安装bind软件包
3、修改/etc/named.conf文件
who -b
date -d “$(awk -F. ‘{print $1}’ /proc/uptime) second ago” +"%Y-%m-%d %H:%M:%S"
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 %
86400)/3600;run_minute=($1 % 3600)/60;run_second= 1 时 w h o − r d a t e − d " 1 % 60;printf("系统已运行:%d天%d 时%d分%d秒",run_days,run_hour,run_minute,run_second)}' who -r date -d " 1时who−rdate−d"(awk -F. ‘{print $1}’ /proc/uptime) second ago"
date -s “20220224 13:57:50”
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
yum -y install bind
4、配置域名
增加域名配置和对应的配置文件
5、配置正、反向解析文件
在 /var/named 目录下将 named.localhost 文件复制为两个文件: rhhy.meet.zheng 、
rhhy.meet.fan ,并进行修改:
正向解析(域名—>IP)配置文件: rhhy.meet.zheng
反向解析配置文件: rhhy.meet.fan
vim /etc/named.conf
listen-on port 53 {any;}; #设置为本地的IP地址即可。
allow-query {any;} #设置为所有人都可以访问。
vim /etc/named.rfc1912.zones
zone “sdcourt.gov.cn” IN {
type master;
file “rhhy.meet.zheng”;
allow-update { none; };
};
zone “41.168.192.in-addr.arpa” IN {
type master;
file “rhhy.meet.fan”;
allow-update { none; };
};
$TTL 1D
@ IN SOA @ dns.sdcourt.gov.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.sdcourt.gov.cn.
cbjg A 192.168.41.17
dns A 192.168.41.41
6、重启服务
7、测试
九、定时任务
1、编辑定时任务
注:
M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd:要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量(脚本要
有可执行权限)
ntpdateshell.sh用作定时校时,内容如下:
2、查看定时任务
$TTL 1D
@ IN SOA @ dns.sdcourt.gov.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.sdcourt.gov.cn.
17 PTR cbjg.sdcourt.gov.cn.
41 PTR dns.sdcourt.gov.cn.
systemctl restart named
nslookup cbjg.sdcourt.gov.cn
nslookup 192.168.41.17
crontab -u root -e
#M H D m d cmd
9 14 * * * /opt/eastsoft/ntpdateshell.sh
#!/bin/bash
/usr/bin/ntpdate 142.1.255.36
crontab -u root -l