欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

  • 编辑器(查看超过2GB文件) ----> ( 添加 / 替换) 常用
[[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

  • 解压 .gz 格式包 ----> 文件、不保留源文件
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

  • 修复 .bz2 压缩包文件
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

  • 还原dump备份
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

  • shell休眠
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

  • 初始化Linux进程
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 格式软件
# 二进制包:【  软件包名-------版本号-------发布次数-------适合的平台和位数-------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

  • 安装 .rpm格式软件
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

  • 查看你IP
ifconfig		# 查看所有网卡的配置信息
ifconfig   网卡名	IP地址  netmask 255.255.255.0		# 设置IP和子网掩码

【98】route

  • 设置路由
route  add  default  gw	 192.168.152.2		# 添加默认网关		gw:设置默认网关

route  -n		# 查看本机的路由表

【99】ifcfg

  • 设置ip地址
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

  • 设置NIS域名
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

  • 查看域名IP
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缓冲区
arp	  -n	# 数字显示arp缓冲区

【107】nc

  • 动态监听端口
nc	-l  端口号  > outfile.txt		# 动态监听xxx端口,将结果写入指定文件中		l:指定端口
nc	域名/IP	端口				  # 监听xxx域名,上的xxx端口

【108】ftp & sftp

  • ftp文件传输
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

  • ftp文件传输
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

  • 显示ftp服务器的连接用户数
ftpcount		# 显示当前用户数

【112】ftpshut & ftptop

  • 停止proftpd服务器 和 状态
ftpshut   now		# 立即停止proftpd 服务器
ftptop   			# 显示proftpd状态

【113】mysqldump & mysqladmin & mysqlimport & mysql

  • 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 linux