Linux学习笔记二(常用的命令)
程序员文章站
2022-03-03 22:31:37
...
Linux的一些常用命令汇总。
【1】ls
ls -l == ll # 查看文件信息
ls -ahdi
# a:隐藏文件 h:显示单位 d:文件夹 i:文本id
【2】cd
cd
cd / # 返回根目录
cd - # 返回上一次目录
cd .. # 返回上一级目录
【3】pwd
pwd # 显示当前工作路径
【4】cp
# v:显示信息 r:递归 f:覆盖 p:保留文件属性、时间戳 a:保留所有属性
cp -rfpa 需要复制的文件 目标路径(可命名) -v
### 高级用法
cp -rfpa file[1-3] /root/ -v #将file1, file2, file3文件,复制到根目录下
【5】mv
mv 需要剪切的文件 目标路径(可命名)
## 高级用法
mv 文件1 文件2 目标 # 剪切多个文件
mv mydir_{1,2,3} # 剪切文件mydir_1, mydir_2, mydir_3.
【6】rm & unlink
rm -rf 文件 -v # v:显示信息 r:删除目录 f:强制删除
## 高级用法
rm -rf 文件1 文件2 # 删除多个文件
rmdir mydir_{1,2,3} # 删除文件mydir_1, mydir_2, mydir_3.
unlink 文件 # 删除文件 (不能使用表达式)
【7】rmdir
rmdir 目录 -v
## 高级用法
rmdir 目录1 目录2 -v # 删除多个目录
rmdir mydir_{1,2,3} -v # 删除目录mydir_1, mydir_2, mydir_3.
【8】chmod
chmod -R 755 文件名 # 修改文件的访问权限 R:递归
【9】chown & chgrp & umask
chown -R 用户 : 组名 文件 -v # 修改文件的用户名和组名 R:递归 v:信息
chown -R 用户 文件 -v # 修改文件的用户名
chown -R :组名 文件 -v # 修改文件的组名
chgrp -R 组名 文件 -v # 修改文件的组名
## 高级用法
umask # 查看当前目录缺省权限 缺省权限:777-真实权限
umask -S # 查看当前目录权限
【10】ln
ln 需要创建连接的文件 硬链接文件 -v # 创建硬链接 ----只能文件
ln -s 需要创建连接的文件 硬链接文件 -v # 创建软连接 s:软连接
【11】mkdir
mkdir -p 目录 -v # 创建目录 p:递归创建,可以创建多层目录,不加参数p只能创建一层目录
## 高级用法
mkdir -m 755 目录 -v # 创建目录,给定权限
mkdir 目录1 目录2 # 创建多个目录
mkdir mydir_{1,2,3} -v # 创建多个文件 mydir_1, mydir_2, mydir_3
【12】whereis & which
whereis rm # 显示指令的相关文件路径
which rm # 显示命令的绝对路径
【13】touch
touch 文件 # 创建文件
## 高级用法
touch 文件1 文件2 # 创建多个文件
touch myfile_{1,2,3} # 创建 myfile_1, myfile_2,myfile_3 文件
stat 文件 # 查看文件的时间属性
【14】locate
yum -y install mlocate # 若无,则安装mlocate
updatedb # 更新slocate文件库
locate -i 文件 # 查看指定文件的路径 i:忽略大小写
## 高级用法
locate -c 文件 # 查看文件的次数 c:统计文件的次数 ()
【15】dd
dd if=/root/file1 of=/root/file2 # 将文件file1,复制
## 高级用法
dd if=file conv=lcase of=newfile2 # 复制同时将文件的字母--->小写 lcase:-->大 ucase:-->小
【16】dirname & basename
dirname /root/file/mysql.sh # 获取文件的路径,-----> 结果:/root/file
basename /root/file/mysql.sh # 获取文件名,-----> 结果:mysql.sh
【17】vim
[[email protected] yan] # vi mysql.sh # 进入vi编辑器
o、a、i # 输入模式 o: 下一行 a:上一行 i、a:当前行
Xyy # 赋值5:5yy
Xdd # 删除5行:5dd
u # 返回
/ # 查找:/关键字 ----> 下一个:n
set nu # 设置行号::set nu ----> 取消行号:set nonu
G # 文尾:G ----> 文首:gg
wq! # 保存退出:wq! ----> 快捷键:ZZ
【18】ed
[[email protected] yan] # yum -y install ed # 安装ed编辑器
[[email protected] yan] # ed mysql.sh # 进入ed编辑器
456 # 文件字节数
10 # 进入指定行号的行
n # 显示最后一行行号
d # 删除最后一行
a # 输入模式 -----> a:文档最后输入 i:当前行输入 c:替换最后一行文本内容
xxxxxxxxx # 内容
. # 切换命令模式
,s/oldText/newText/g # 替换字符
wq # 保存退出 w: 保存 q:退出
【19】ex
[[email protected] yan] # ex mysql.sh # 进入ex编辑器
a # 最后一行编辑
i # 转换成vi编辑器
. # 转换成命令行模式
wq # 保存退出 w: 保存 q:退出
【20】cat
cat -bn 文件 文件2 # 显示内容 和 行号 b:忽略空行 n:行号
【21】more & less
more -15 文件 文件2 # 每屏15行显示文件内容 -----> 只能向后阅读
less -N 文件 文件2 # 显示文件内容和行号 -----> N:显示行号
# b:前页 空格:后页 k:前行 Emter:后行 /:查找
【22】head
head 文件1 文件2 .... # 显示头10行的文件内容 ---> 默认10行
head -n 2 文件1 文件2 .... # 显示头2行的文件内容
【23】tail
tail 文件1 文件2 .... # 显示尾10行的文件内容 ---> 默认10行
tail -n 2 文件1 文件2 .... # 显示尾2行的文件内容
## 高级用法
tail -f 文件1 > 文件2 # 动态监听文件 ----> 一般用于日志文件 Ctr+C 结束
【24】uniq
uniq 文件 # 显示所有的文件内容 ----> 重复的连续行,只显示一行
## 高级用法
uniq -dc 文件 # d:显示重复的内 c:重复的次数
【25】sort
sort 文件 # 普通显示所
sort -bdfr 文件 # b:忽略空白 d:按字和空白母排序 f:忽略大小写 r:反序排序
【26】tac
tac 文件 # 反序查询
【27】tr
tr oldeText newText < 文件 # 修改文件中的"oldeText"改为"newText" <:重定向 (注:源文件不发生改变)
## 高级用法
tr a-z A-Z < 文件 # 将小写---->大写
tr [0-9] [0123456789] < 文件 # 转换成数字
tr -d linux < 文件 # 删除指定的字符串
【28】paste
paste 文件1 文件2 # 将文件1和文件2合并
【29】rec
rev 文件 # 反序输出行
【30】wc
wc 文件1 文件2 # 计算文件的行数、单词数、字节数
## 高级用法
wc -l 文件1 文件2 # 统计文件的行数
wc -c 文件1 文件2 # 统计文件的字节数
【31】split
split -b 20 -a 4 文件 # 将文件分割成多个文件 b: 每个分割文件的字节数 a:文件名保留位数(默认2,Xxx)
文件名格式: Xaa Xab Xac .... Xba Xbb ....
【32】csplit
# -b %0Xd:文件名的保留位数 100:每个文件100行,最后一个无限制 ---默认:分割2个文件
csplit -b %05d 文件 100
## 高级
csplit -b %03d 文件 10 {100} # 10:限制*件的行数 {100}:分割文件数量
【33】tee
cat /root/mysql.sh | tee -a /root/text.xt # 向text.xt文件中追加内容 a:追加
【34】expand
expand -t 15 文件 # 将一个制表符转成15个空白符 ----> 一个制表符 = 8个空白字符
【35】tar
tar -cf mysql.tar /root/mysql -v # 压缩为 tar 格式 c:压缩 f:指定压缩名
tar -czf mysql.tar.gz /root/mysql -v # 压缩为 gzip 格式 z:自动转为 gzip 格式
tar -cjf myslq.tar.gz /root/mysql -v # 压缩为 bzip2 格式 j:自动转为 bzip2 格式
【36】tar
tar -xf mysql.tar.gz -v # 解压 tar 格式文件
tar -xzf mysql.tar.gz -v # 解压 gzip 格式文件
tar -xjf mysql.tar.gz -v # 解压 bzip2 格式文件
【37】gzip
gzip mysql -v # 压缩 #### 结果:mysql.gz
## 高级用法
gzip -S .gzip mysql -v # 压缩 -S:指定压缩文件的后缀 .gzip ### 结果:mysql.gzip
【38】gunzip
gunzip myssql.gz -v # 解压 .gz 格式文件
gunzip -S .gzip msyql.gzip # 解压 .gzip 格式文件 -S:指定解压文件的后缀 .gzip
【39】bzip2
yum -y install bzip2 # 安装 bzip2
bzip2 -k mysql -v # 压缩 k:保留源文件 #### 结果:mysql.bz2
【40】bunzip2
bunzip2 -k mysql.bz2 -v # 解压 .bz2 格式文件
【41】zip
yum -y install zip # 安装zip
zip mysql /root/mysql.sh # 压缩 #### 结果:mysql.zip
【42】unzip
unzip mysql.zip # 解压 .zip 格式文件
【43】bzip2recover
bzip2recover mysql.bz2 # 修复 .bz2 格式文件
【44】cpio
find mysql.sh | cpio -o > mysql2.sh # 备份文件 mysql2.h:自自动会创建
【45】dump
yum -y install dump # 安装
## 高级用法
dump -f /root/mysql.bak /root/mysql/ # 备份mysql目录 f:设置设备名
dump -0u -f /bak/sdc1.bak /dev/sdcl# 备份/dev/dcl文件 0:增量备份 u:更新备份数据库(/etc/dumpdates)
【46】resore
restore -tf /root/mysql.bak # 还原 mysql目录 t:显示备份列表
## 高级用法
restore -if /root/mysql.bak # 进入备份的mysql.bak 交互式 i:进入交互式
restore> ls # 查看备份中的文件列表
restore> add xxxxxx # 标记需要的还原文件
restore> ls # 查看指定的还原文件 -----> 文件前有 "*"标志
restore> extracrt # 还原标记文件
restore> quit # 退出restore交互式
######################################## shell 内部命令 #########################################
【47】kill
kill -s 9 PID # 关闭指定进程ID的进程 s:指定向经常发送的信号 ----> 默认15,9:可以强制
## 高级用法
jobs # 查看进程任务表
[6] stopped vim abc
[7]- stopped man dump
kill %6 # 关闭6号进程
[6] stopped vim abc
[7]- Terminated man dump
【48】jobs
jobs -l # 显示任务列表 l:显示进程ID
【49】bg
jobs # 查看进程任务表
[6] stopped vim abc
[7]- stopped man dump
bg 6 # 将6号进程放到后台执行
【50】fg
jobs # 查看进程任务表
[6] stopped vim abc
[7]- stopped man dump
fg 6 # 将6号进程放到前台执行
【51】alias
alias ll='ls -l' # 设置命令ls -l 别名为ll
alias -p # 查看命令别名
【52】unalias
unalias ll # 删除ll别名
【53】set & env & declare & unset & export
set # 查看 shell变量 和 系统环境变量
export # 查看所有系统环境变量
env # 查看系统环境变量
name="lisi"
declare subject='linux' # 设置 shell变量
declare -x age='100' # 设置 系统环境变量
export name
set -a var1 # 将shell变量 转换为 系统环境变量
unset var1 # 删除var1 环境变量
【54】logout & exit
logout # 退出登录shell
exit # 退出登录
【55】login
login # 重新登录
【56】history
history 100 # 显示最近100条命令
!1202 # 执行第1202 条命令
【57】read
read "描述文字" var1 # var1:变量值
###############################################################################################
【58】halt & shutdown
halt -p # 关闭操作系统,并且切断系统电源
shutdown -h now # 立刻关闭
shutdown -h +10 # 10分钟后关闭
reboot -i # 重启 i: 重启之前,关闭所有的网络接口
shutdown -r now # 立刻重启
【59】cksum & sum
[[email protected] yan]# cksum /root/mysql # 查看文件的校验和
2283487018 512 mysql # 参数1:校验和 参数2:文件字节数
[[email protected] yan]# sum /root/mysql # 查看文件的校验和
2283487018 1 # 参数1:校验和 参数2:文件所占的磁盘块数
【60】bc
yum -y install bc # 安装bc
bc # 进入计算交互模式
..... # 计算
quit # 退出
## 高级用法
vim test
15 + 10
10*12
bc test # 计算文件的内容
【61】cal
cal -3 # 显示上个月、当月、下个月
cal -y # 显示当年的月
## 高级用法
cal -y 2021 # 显示2021年的月
cal 3 2021 # 显示2021年的3月
【62】hostid
hostid # 主机十六机制唯一标识
【63】date
date # 本地时间和日期
date -s "2020-05-3 15:23:45"
【64】sleep
sleep 10s # 10秒后运行 s:秒 m:分 h:时 d:天
【65】who & whoami & logname
who -H # 打印登录用户信息
whoami # 打印当前用户
logname # 打印当前用户
【66】useradd
useradd 用户名 -s /bin/bash -d /home/XXX # 创建用户名 s:指定shell的程序 d:家目录
### 高级用法
useradd 用户名 -s /sbin/nologin # 创建用户 s:禁止登录
【67】userdel
userdel -r 用户名 # 删除用户 r:与用户相关的文件
【68】usermod
useradd 用户名 -d 家目录路径 # 修改用户家目录
【69】groupadd
groupadd -g 400 组名 # 创建工作组 g:指定组ID ----> 小于500,称"系统工作组"
【70】groupdel
groupdel 组名 # 删除工作组
【71】groupmod
groupmod -g 1000 组名 # 修改工作组ID
【72】passwd
passwd 用户名 # 添加用户密码
## 高级用法
passwd -d 用户名 # 删除密码 d:删除密码
echo "新密码" | passwd --stdin 用户名 # 修改密码
### 高级用法
chpasswd -e # 批量设置用户名和密码 e:密文(一般不建议加上)
用户名1 :密码
用户名2 :密码
....
Ctrl+D结束输入
【73】chsh
chsh -s /sbin/nologin 用户名 # s:禁止用户登录系统
【74】df
df # 查看磁盘分区使用情况
df xxx # 查看指定文件的磁盘使用情况
df -Th # 查看磁盘分区使用情况 T:文件系统类型 h:简单阅读模式
【75】fdisk
fdisk -l # 显示有磁盘的分区列表
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
### 高级部分
fdisk /dev/sda2 # 对 /dev/sda2 分区
Command (m for help): m # 列出命令说明
a toggle a bootable flag
b edit bsd disklabel
........
n add a new partition
........
p print the partition table
x extra functionality (experts only)
Command (m for help): n # 创建新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p # 创建主分区
Partition number (1-4): 1 # 创建主分区编号
First cylinder (2048-39843839, default 2048):2048 # 指定起始柱面
Last cylinder or +size or +sizeM or +sizeK (2048-39843839,default 39843839): +300 M #设置分区大小
Command (m for help): n # 显示分区列表
Command (m for help): w # 保存分区,并退出
【76】parted
fdisk -l # 显示有磁盘的分区列表
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
parted /dev/sda2 # 进入分区交互模式
(parted) print # 显示硬盘分区表
Number Start End Size Type File system 标志
1 1049kB 316MB 315MB primary linux-swap(v1)
(parted) mkpart primary ext3 100M 200M # 创建分区100M
(parted) quit # 退出
【77】mount
mount -l # 显示所有已挂载的文件
【78】umount
umount 文件 # 卸载文件挂载
【79】sync
sysnc
【80】at & batch 一样 & atq & atrm
yum -y install at # 安装at
systemctl start atd.service # 启动atd
at 15:30 # 进入at交互模式
at> ls /etc/
at> ......
at> Ctrl+D # 退出
#( 注:执行的结果存放于:/var/spool/mail/roo ----> 内容只会追加)
### 高级用法
vim atfile.txt # 编辑执行任务的文件
cd /home
ls
at -f atfile 15: 10 # 设置执行任务的时间
echo "zhangsan" >> /etc/at.deny # 设置禁止shangsan用户登录at
atq # 显示所有用户的任务表
1 Wed Apr 8 23:30:00 2020 a root
2 Wed Apr 8 00:40:00 2020 b root
atq -q b # 查询b队列的执行任务表
atrm 1 2 3 # 删除 1 ,2 ,3号任务
【81】crontab
vim /root/atfile.txt # 编辑执行任务的文件
cd /home
ls
crontab -e # 进入任务定时器
*/1 * * * * /bin/bash /root/atfile.txt # 每隔一分钟执行atfile任务文件
### 高级用法
1、* 分 0-59 */1、*/10 .... ----> # 每隔1分钟、每隔10分钟
2、* 时 0-23 8,12,16 .... ----> # 8点,12点,16点
3、* 天 1-31
4、* 月 1-12
5、* 周 0-7(0和7都代表星期日) 1-6 ----> # 周一到周六
*/1 * * * * /bin/echo /root/atfile.txt >> /root/show.txt # 每隔一分钟执行atfile任务文件,且写入指定文件
crontab -l # 显示当前用户的任务
【82】init
init 1 # 切换单用户模式, 仅允许"root" 用书操作系统
init 0 # 关机
init 6 # 重启
【83】killall & pkill
killall -l # 列出已知信号
killall ssh(进程名) # 杀死指定进程
pkill httpd(进程名) # 杀死指定进程
### 高级用法
killall -u 用户 # 杀死指定用户的所有进程
【84】ps
ps -aux | head # 显示进程的前10行 a:所有进程 u:所有用户的所有进程 x:没有终端的进程
【85】watch
w # 显示登录用户正在做什么
watch w # 动态监控用户对Linux操作的行为
【86】pgrep & pidof
pgrep -o httpd # 查询httpd进程号 o:显示最小进程号
pgrep -n mysqld # 查询httpd进程号 n:显示最大进程号
pidof httpd # 查询httpd进程所有ID
【87】top & uptime
top # 显示系统运行信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
【选项】
-d xxxx秒 #几秒刷新一次-----------------常用
-b -n xxxx行 #b:一批一批显示 n:显示行数
【快捷键】
P:CPU百分比排序
M:使用内存大小排序
k:停止某进程
q:退出
uptime # 显示系统运行多长时间
09:37:45 up 3 days, 11:57, 3 users, load average: 0.00, 0.01, 0.05
【88】free
free -m # 显示以兆单位使用情况
free -b # 显示以字节单位使用情况
total used free shared buff/cache available
Mem: 997956 230856 110016 15276 657084 511948
Swap: 2097148 5120 2092028
# total:内存总 used:已使用的内存(包括buffers,cached) free:未使用的内存
# Mem:物理内存使用情况
# Swap:交换空间的使用情况
### 高级用法
# 物理总内存(total):used + free / buffers + availabel
# 真正可用内存:buffers + cache + free
【89】time
time 命令操作 # 统计命令的操作时间
【90】rpm
# 二进制包:【 软件包名-------版本号-------发布次数-------适合的平台和位数-------rpm包扩展名 】
# 例如:httpd-2.2.15-53.el6.centos.x86_64.rpm
# /etc/ ####配置文件
# /usr/bin/ ####命令
# /usr/lib/ ####函数库
# /usr/share/doc/ ####使用手册
# /usr/share/man/ ####帮助信息
rpm -ih 软件包全名 -v # 安装 .rpm 格式软件 i: 安装 h:执行进度
rpm -q 软件包名 -v # 查看rpm包是否安装 q: 查询
rpm -ql 软件包名 -v # 查看软件安装的位置 l: 列表显示
rpm -e 软件包名 -v # 卸载 .rpm 软件包
【91】yum
yum -y install 软件包名 # 安装 .rpm 软件包 y:所有会话默认回答 yes
yum -y update 软件包名 # 更新 .rpm 软件包
yum -y remove 软件包名 # 卸载 .rpm 软件包
【92】chkconfig
chkconfig --list 服务名 # 查看软件的开机启动状态
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
### 3:自动启动
### 高级用法
chkconfig --level 3 服务名 on # 设置xxx服务,设置为开机自动启动
chkconfig --add 服务名 on # 将xxx服务,添加开机自动启动项中
【93】last
last # 显示所有用户的登录列表
last 用户名 # 显示指定用户的登录信息
【94】lastlog
lastlog -u 用户名 # 显示最近一次xxx用户登录信息 u:指定用户名
【95】logwatch
logwatch --service 服务名 --print --range today
【96】expr
expr 5 + 5 # 简单算术运算 ( 注: 运算左右需要 "空格" )
### 高级用法
expr \( 9 + 10 \) \* 2 - 4
expr length "Hello World" # 计算字符串长度
expr index "xxxxxx" "demo" # 计算demo出现的位置
【97】ifconfig
ifconfig # 查看所有网卡的配置信息
ifconfig 网卡名 IP地址 netmask 255.255.255.0 # 设置IP和子网掩码
【98】route
route add default gw 192.168.152.2 # 添加默认网关 gw:设置默认网关
route -n # 查看本机的路由表
【99】ifcfg
ifcfg 网卡名 stop # 停用xxx网卡的IP地址
ifcfg 网卡名 add 192.168.152.2/24 # 设置IP地址
【100】ifdown & ifup
ifdown 网卡名 # 禁用xxx网卡
ifup 网卡名 # **xxx网卡
【101】hostname
hostname # 显示主机名
hostname -a # 显示住居别名
hostname 主机名 # 设置主机名
【】domainname & nisdomainname & ypdomainname
domainname www.yfw123.net # 设置NIS域名 ( 重启失效 )
nisdomainname -y # 显示NIS域名
ypdomainname -y # 显示NIS域名
【102】ping
ping -c 4 IP地址 # 检查报文 c:发送次数
【103】netstat
netstat -r # 显示Linux系统的核心路由表
netstat -an # 数字显示路由表
netstat -p # 显示进程信息
【104】nslookup & dig & host
nslookup www.baidu.com # 查看域名IP
host www.baidu.com -v # 查看域名IP
yum -y install bind-utils # 安装 bind-utils
dig www.baidu.com # 查看域名IP
### 高级用法
dig -x 192.168.152.152 # 反向域名解析 x:反向域名查询
nslookup # 进入交互模式
> www.baidu.com # 查看域名IP
> set type=ANY # 查看域名相关信息
> 192.168.152.152 # 查看IP域名
vim test.dns # 创建多个域名文件
www.baudi.com
www.aiqiyi.com
....
dig -f test.dns # 批量解析域名IP f:文件名
【105】traceroute
traceroute www.baidu.com # 测试是否超时 -----> "*":超时
【106】arp
arp -n # 数字显示arp缓冲区
【107】nc
nc -l 端口号 > outfile.txt # 动态监听xxx端口,将结果写入指定文件中 l:指定端口
nc 域名/IP 端口 # 监听xxx域名,上的xxx端口
【108】ftp & sftp
yum -y install ftp # 安装ftp
## 高级用法
ftp # 进入ftp交互模式
ftp> help # 获取命令列表
ftp> help xxx # 获取xxx命令帮助
ftp> ftp 域名/IP # 连接ftpxxxx服务器
Name (域名/IP:root):anonymous # 使用匿名账号登录
......
ftp> ls # 查看ftp服务器文件列表
ftp> get ftp服务器
ftp> put 本地服务器 ftp服务器 # 上传
ftp> quit # 退出
【109】lftp
yum -y install ftp # 安装ftp
## 高级用法
lftp 域名/IP # 进入 匿名连接xxxxftp服务器
lftp 域名/IP > ls # 查看ftp服务器文件列表
lftp 域名/IP > get ftp服务器
lftp 域名/IP > put 本地服务器 ftp服务器 # 上传
lftp 域名/IP > quit # 退出
【110】lftpget & wget
lftpget 网络地址 # 下载网络上的文件
wget 网络地址 # 下载网络上的文件
【111】ftpcount
ftpcount # 显示当前用户数
【112】ftpshut & ftptop
ftpshut now # 立即停止proftpd 服务器
ftptop # 显示proftpd状态
【113】mysqldump & mysqladmin & mysqlimport & mysql
mysqldump --host localhost --user root --password --all-databases > test.bak # 备份所有库
mysqldump --host localhost --user root --password --databases Student > test.bak # 备份指定库
### 高级用法
mysqladmin -h localhost -u root -p create Teacher # 创建Theacher数据库 p:密码
mysqlimport -h localhost -u root -p Teacher # 导入Theacher数据库
mysql -h localhsot -u root -p # 登录mysql
【114】scp
scp 本地文件 用户名 @ 域名/IP :/ 远程主机文件 # 上传
scp 用户名 @ 域名/IP :/ 远程主机文件 本地文件 # 下载
### 高级用法
scp 用户名 @ 域名/IP :/ 远程主机文件 用户名 @ 域名/IP :/ 远程主机文件 # 上传 / 下载
【115】ssh
#####################################################################################################
配置文件:/etc/ssh/ssh_config
1、 #PermitRootLogin yes //root登录
2、 #MaxSessions 10 //最大连接数
3、 #GSSAPIAuthentication no // 是否开启GSSAPI身份认证机制,默认为yes,推荐关闭
4、 #LoginGraceTime 2m //超时
5、 #PubkeyAuthentication yes //公钥认证
6、 #PasswordAuthentication yes //密码验证
7、 #PermitEmptyPasswords yes //允许空密码
systemctl start sshd # 启动SShd
#####################################################################################################
ssh 用户名 @ IP地址
ssh -l 用户名 IP地址 # SSH远程登录
# 上传 ------------------> scp -rcv /root/soft [email protected]:/temp
scp -rc 本地文件 用户名 @ IP地址 -v
# 下载 ------------------> scp -rvc [email protected]:/temp /root/soft
scp -rc 用户名 @ IP地址 本地 -v
#上传 / 下载 ------------------> scp -rvc [email protected]:/temp [email protected]:/temp
scp -rc 用户名 @ IP地址 用户名 @ IP地址 -v
####### r:递归 v:信息 c:压缩
exit / logout #退出
【116】samba
#####################################################################################################
配置文件 vim /etc/samba/smb.conf
[global]
hosts allow=172.17.2.0/255.255.0.0 # 指定哪些主机能访问samba服务器---可以是网段
[common] # 共享目录名
comment= This file # 描述
path=/opt/samba # 存储路径------一定要注重权限
guest ok=yes # 允许任何人访问(权限取决于samba权和系统权限-用户权限:root、nobody)
browseable=yes # 共享目录是否对所有人可见
read only=yes/writeable=yes** # 两者选其一,只读/可写(包含可读)权限
public=no #是否公开
directory mask=0755 # 创建目录的默认权限0755
create mask=0750 # 上传的文件默认权限0750
#####################################################################################################
#samba(主服务包) samba-client(客户端) samba4-libs(库包) samba-winbind(windows域映射包)
#samba-common(通用工具包) samba-winbind-clinets(域映射客户端)
yum -y install samba samba-client samba-common samba4-libs samba-winbind samba-winbind-clients
systemctl start nmb # 提供基于NetBIOS主机名称解析 端口:137 138
systemctl start smb # 提供对服务器中文件、打印资源的共享访问 端口:139 445-----修改完配置文件重smb即可
testparm # 检测配置文件是否正确
##############
文件存储的系统权限----要与配置文件权限-----相对相应
ls -ls /opt/samba
drwxr-xr-x. 2 root root 6 Mar 14 15:47 samba
chown -Rf 虚拟用户:虚拟用户组 /opt/samba
chmod -R 755 /opt/samba
#############
useradd 虚拟用户 -d /home/samba -s /sbin/nologin # 创建一个虚拟用户,且静止登录Linux
chown -Rf 虚拟用户:虚拟用户组 /家目录 # 设置家目录权限为
pdbedit -a -u 虚拟用户 # 添加Samba虚拟用户 a:添加 u:指定系统的虚拟用户
smbpasswd -a 虚拟用户 # 重置用户密码
pdbedit -L # 查看samba用户
pdbedit -r -u 虚拟用户(且必须存在) # 修改虚拟用户名
#####客户端
\\IP地址\共享目录 # window访问
#Linux访问
smbclient -L 服务器IP地址 # 服务的共享目录-----smbclient -L //192.168.0.100/ShareDemo
smbclient //服务器IP地址:/共享目录名 -U 用户名 # smbclient //192.168.0.100/ShareDemo -U 用户名
q:退出
【117】NFS
#####################################################################################################
######################################### NFS:2049 #######################################
配置文件 /etc/exports ------(如果没有的话,则创建一个)
语法规则:
共享的目录【绝对路径】 客户端IP地址1(权限1,权限2) 客户端IP地址n(权限1,权限2) ......
......
1、客户端IP地址:【* 所有主机】、【主机名-需映射】、【网段】
2、权限:【rw 仅读写】、【ro 仅读】、【no_root_squash 允许root登录】、【anonuid/anongid=id号】
例如: /tmp/data 192.168.1.0/24(ro,sync) client-A.ctos.zu(rw,sync,anonuid=600)
#####################################################################################################
yum -y install nfs-utils rpcbind #安装NFS、RPC ------- rpcbind 新版本------旧版本 portmap
rpm -qa | grep nfs
systemctl start rpcbind.service #启动RPC----且必须在NFS启动之前=========>客户端只需启动RPC即可
systemctl start nfs.service #启动NFS
/etc/init.d/nfs reload
exportfs -arv #重新挂载所有目录,不用重启NFS服务 a:重新挂载 v:信息
chkconfig --level 35 rpcbind on
chkconfig --level 35 nfs on #设置开启启动
####客户端
showmount -e 服务器IP地址 #查看服务器共享目录
mount -t nfs 服务器IP地址:共享目录 本地挂载点 #挂载共享目录
df -h | tail -l #查看挂载点
umount 本地挂载点 #卸载挂载点
【118】Vsftpd
一、安装vsftpd :yum -y install libdb-utils libdb pam --skip-broken vsftpd
二、将Vsftpd加入防火墙:
a)、 firewall-cmd --add-service ftp --permanent # 添加ftp服务到防火墙策略中
b)、 firewall-cmd --reload # 重启防火墙
c)、 firewall-cmd --list-all | grep ftp # 查看samba服务是否添加到防火墙中
三、关闭seLinux:
1、vim /etc/selinux/config SELINUX=disabled**
2、setenforce 0
3、getenforce //查看状态
四、配置虚拟用户
1、创建虚拟用户和密码的文件: vim /etc/vsftpd/ftpuser.txt
zhangsan # 用户名zs
123456 # 密码
lisi
123456
....
2、生成Vsftpd虚拟用户数据库认证文件,并且设置权限700
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db**
3、配置PAM认证文件: vim /etc/pam.d/vsftpd (删除里面文件内容), 且添加以下代码:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
4、创建一个系统用户,该用户不需要密码也不需要登录,作用:用于虚拟用户映射使用
useradd ftpuser -s /sbin/nologin # 创建用户, 且禁止登录系统的用户
5、配置主配置文件: vim /etc/vsftpd/vsftpd.conf
a)、关闭匿名访问:anonymous_enable=NO
b)、启动本地用户:local_enable=YES
c)、允许执FTP命令执行:write_enable=YES
d)、设置权限掩码:local_umask=022
需添加的:
1、设置认证文件名称:pam_service_name=vsftpd # 位于/etc/pam.d/
2、虚拟用户权限是否与本地用户相同: virtual_use_local_privs=YES
3、启动虚拟用户: guest_enable=YES
4、映射虚拟用户至系统用户名称:guest_username=ftpuesr
5、设置虚拟用户的配置文件目录:user_config_dir=/etc/vsftpd/vsftpd_user_conf
6、创建虚拟用户目录和虚拟用户的配置文件:
1、创建虚拟用户配置文件目录: mkdir -p /etc/vsftpd/vsftpd_user_conf
2、创建虚拟用户的配置文件:(注:文件名与对应FTP虚拟用户一致)
a)、zs虚拟用户配置文件
local_root=/home/vsftp/zhangsan # 虚拟用户主目录
anon_umask=077 # 设置创建文件及目录的默认权限掩码
write_enable=yes # 允许登录用户有**写**权限
anon_world_readable_only=YES # 允许匿名用户下载权限,然后读取文件。
anon_upload_enable=YES # 允许匿名用户上传文件权限
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_other_write_enable=YES # 允许匿名用户有其他权限,如:删除、重命名
b)、ls虚拟用户配置文件:同上
7、创建各个虚拟用户的虚拟目录,并设置用户权限
1、创建zs、ls的虚拟目录: mkdir -p /home/vsftp/{zhangsan,lisi}
2、设置用户的权限: chown -R ftpuser:ftpuser /home/ vsftp
3、最新版vsftpd不允许用户主目录有w权限: chmod -R 500 /var/vsftp # 如果最新版本需加
8、重启vsftpd服务器:systemctl restart vsftpd.service
五、访问
1、windows访问: ftp 192.168.152.111
2、Linux 访问:需要安装ftp:yum -y install ftp
六、FTP常用的命令:
1、查看当前目录下的文件: ls
2、查看目录权限(类似ll): dir
3、设置文件传输方式为二进制模式,加快传输速度 :bin
4、设置当前本地主机的目录: lcd d:/yan # 一般结合上传、下载使用
5、上传文件:put/Mput(批量) 本地文件绝对路径(相对路劲---lcd前提下) # 例如:put d:\testscript1.lrs
6、下载文件: get ftp下的文件路径 # 下载到 lcd 指定的目录下
7、切换ftp目录: cd
8、查看当前所在目录路径: pwd
9、删除当前目录的文件:del \myfile\dtest.txt
10、退出: quit、 bye
下一篇: Linux下ffmpeg 4.2编译过程