linux命令

1.其他命令

pwd 查看当前所在位置
passwd 更改密码 


ctrl+L  # 清屏  
clear # 清屏
man 名称  # 调出手册
	eg: man bc 计算器手册
名称 -help # 调出手册
history  # 显示使用的命令记录1000条左右
ctrl shift+  # 放大字体
ctrl-  # 缩小字体

# ls # 可以配合通配符使用
ls 查看所在位置下的文件和文件夹
参数: ls -a  # 显示所有文件夹,文件(包括隐藏的)
	  ls -a index  # 显示index文件夹下的所有文件夹、文件
	  ls -l  # 以列表的方式显示当前位置下的详细信息
	  ls -lh  # 显示文件大小 
	  ls -lha  # 显示全部所有信息

echo  # 在终端中输出,类似printf()
which 命令  # 查看该命令所在的位置

yum install tree
tree # 树状显示目录结构

yum install lrzz
rz 上传,在服务器敲,从本地传到服务器
sz 下载,在服务器敲,从服务器传到本地



history  # 查看命令记录
!序号  # 执行命令
wget www.baidu.com   vim index.html  # 爬取资源

netstat -natup   # 查看服务

2.开关机,重启操作

reboot 重启系统
shutdown # 一分钟后自动关机
shutdown -c # 取消本次关机操作
shutdown now # 立即关机
shutdown -r now # 立即重启
shutdown 20:00 # 20:00关机
shutdown 10 # 10分钟后关机

3.时间

date  # 显示时间
cal 2020 显示2020年全年日期
date 0415150000  显示并更改时间   4月15日15:00 00 秒

4.通配符以及>,>>,|

*  # 匹配0个或者多个字符
	eg: ls index*  # 结果:index1,index2abc,index3asdasd。。。
?  # 匹配任意单个字符 
	eg: ls index?  # 结果:index1,index2,index3
		ls index??  # 结果: indexaa,indexbb,indexcc
[0-9] # 匹配0-9范围内的数字
[abc] # 匹配列表中的任意字符
^  # 非,取反
	eg: [^abc]:匹配除abc的字符


>  # 追加到文件,覆盖原来的信息
	# 可以利用>做黑洞文件,垃圾桶
	eg: echo hello >test  # hello写入test中,并覆盖原来的所有内容
>> #  追加到文件,不覆盖原来的信息
	eg: echo hello >>test  # hello写入test中,从末尾追加,不覆盖
	
| # 管道符,对前面的命令结果,传给后面用
	eg: cat test2 |grep a
		cat test2 |grep -n a   
		cat test2 |grep -ni A
		cat xx.log |grep -A 10 "| 500" #搜索 500,后面再打印 10 条
	

5.操作文件/文件夹

cp 拷贝
	eg:将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
	cp -r /usr/men /usr/zh
	/cp -r /usr/men /user/zh  # 前面加/ 不会重复提问你
	
mv 移动 
	eg:将文件 aaa 更名为 bbb :
		mv aaa bbb
		将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。
		mv info/ logs

touch test  # 创建test文件
touch test{1,2,3}  # 创建test1,test2,test3文件
mkdir index  # 创建index目录
mkdir index{1,2,3}  # 创建index1,index2,index3目录
rm test  # 删除文件(需要确认)
rm -r index  # 删除文件(需要确认)
rm -rf index  # 删除文件或目录(不需要确认,直接删除)

yum install tree
tree # 树状显示目录结构

6.文件内容

vim 文件名  # 打开文件,可以进入编辑模式
cat 文件名  # 查看文件,较少内容,不需要分屏
more 文件名 # 查看文件,较多内容,分屏显示

空格键	向下翻一页
[Page Down]	向下翻一页
[Page Up]	向上翻一页
[Ctrl + U]	向上翻一页
[Ctrl + D]	向下翻一页
/string	向下搜寻string这个字符串
?string	向上搜寻string这个字符串
n,N	搜索字符串时,用n来继续搜索下一个,N来进行反向搜索下一个
q	结束
ggdG  将原内容全部清除
q! 强制退出,不保存
wq 保存退出

# 光标
a:在行尾插入
i:在行头插入
o(小写):插入新行(在光标所在行的下面)
O(大写):插入新行(在光标所在行的上面)
se nu  # 给文本加入编号(只是便于查看,没有修改文件)
G :光标移到文件最后一行
nG:光标定位到某行
gg:移动到文件第一行,相当于1G

# 复制、删除、粘贴
dd :删除光标所在的一行
ndd:指定删除行。20dd,删除第20行
ggdG:删除所有
yy : 复制光标所在的一行
nyy:复制指定行,20yy,复制第20行
P:粘贴



# 文件搜索  find搜索
find 大致路径 -name *.txt  # 搜索路径下的所有以txt结尾的文件
	eg:find -name *a*  # 模糊搜索,配合通配符使用
	   find python/ -name *.py  # 搜索python文件夹下的所有.py结尾的文件





df -h # 显示磁盘剩余空间
du -h # 显示当前所在位置磁盘占用情况
du -h[目录名]  # 显示所有子目录磁盘占用情况


7.文本搜索工具grep

grep  文本搜索工具
参数: -n # 显示匹配及行号
	  -v # 显示不包含文本所有行
	  -i # 忽略大小写

eg :
	grep A test   # 在test文件中搜索A
	grep -n A text  # 在test文件中搜索A,并显示行号
	grep -v A test  # 在test文件中显示除去A所在的行
	grep -i A test  # 在test文件中搜索A,a。不区分大小写
	
^  # 开头
$  # 结尾

eg:
	grep ^a test  # 在test文件中搜索以a开头的
	grep $a test  # 在test文件中搜索以a结尾的
	grep -i ^a test # 在test文件中搜索以a,A开头的


[root@sg-14 deployment]# grep "apiVersion" *.yaml
fail.yaml:apiVersion: apps/v1
lifecycle.yaml:apiVersion: apps/v1

8.用户操作

理论用户数量:2的32次方个
理论组数量:475个
普通用户从 1000开始


root用户ID:0
系统用户:ID范围1-999
普通用户:ID范围1000-60000


logout 登出,退出
password 更改用户密码
useradd 用户名  # root用户添加子账户
su 用户名 # 切换用户

LL:显示详细信息
ls -l 文件名  # 显示文件详细信息

# 创建用户
useradd -m -g 组名 新用户名  # 常用
useradd 用户名  # adduser与useradd一样。adduser会提示你设置信息
useradd jeff:123  # 创建jeff用户密码为123
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] 用户名
	-c:加上备注文字,备注文字保存在passwd的备注栏中。
	-U 指名用户UID
	-s:指定用户登入后所使用的shell。默认值为/bin/bash。
	-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
	-G:指定用户所属的附加群组。
	-m:自动建立用户的登入目录。
	-M:不要自动建立用户的登入目录。
	-n:取消建立以用户名称为名的群组。
	-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
	-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
	-D:变更预设值。
eg:
	建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:
	useradd -u 544 -d /usr/testuser1  -g users -m  testuser1
	使用管理员账号登陆系统,建立用户jeff 密码123
	->>:useradd jeff
	->>passwd jeff
	->>在系统出现提示输入密码是输入密码:3sdt5:Eawhg 系统提示输入确认密码后再输入一次。OK添加成功。

# 封锁解锁用户
usermod -L jeff  锁定jeff用户
usermode -U jeff 解锁jeff用户

# 删除用户
userdel -r 删除用户

# 将用户添加到组
chgrp -R 组名 用户名  # 将用户添加到组
	eg:chgrp -R python jeff   # 将jeff添加到python组
	-R :递归修改用户中目录及文件权限


who # 查看当前用户目录
whoami # 查看当前用户名

/etc/password  # 用于把偶才能用户信息的文件
/usr/bin/passwd  # 用于修改用户密码的程序

9.更改主机名

hostname  # 显示主机名
host name 新主机名  # 临时更改主机名,关机重启后失效
hostnamectl set-hostname 新主机名  # 永久更改主机名


10.组操作

groupadd 组名  # 创建组
groupdel 组名  # 删除组

# 将用户添加到组
chgrp -R 组名 用户名  # 将用户添加到组
	eg:chgrp -R python jeff   # 将jeff添加到python组
	-R :递归修改用户中目录及文件权限

11.权限操作

drwx
d:目录
r:读	   read
w:写    write
x:执行  excute

拥有者 其他用户
r w x r w x r w x
4 2 1 4 2 1 4 2 1
4+2+1   7  rwx	读写执行
4+2+0   6  rw-	读写
4+0+1   5  r-x	读执行
4+0+0   4  r--	读
0+2+1   3  -wx	写执行
0+2+0   2  -w-	写
0+0+1   1  --x	执行
0+0+0   0  ---	无任何权限


# 修改权限方式一
chmod -R 777  文件名   #所有权限
	-R 标识递归设置所有文件
# 修改权限方式二
chmod +rwx 文件名  (不好用,不推荐)

chmod  # 修改权限
chgrp  # 修改组
chown  # 修改拥有者

12.进程、服务操作

# ps查看进程
ps aux  # 擦好看进程详细情况
a:显示终端上所有进程,包括其他用户的进程
u:显示进程的纤细情况
x:显示没有控制终端的进程

pa au # 常用


top # 动态显示运行中的进程并且排序,类似于windows的任务管理器

kill PID号 # 终止PID号的进程
kill -9 PID号  # 强制终止
pkill 服务名  # 杀死指定服务

掌握pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox


# 服务
netstat -natup   # 查看服务
top  # 动态显示服务状况
wget www.baidu.com   vim index.html  # 爬取资源

systemctl status 服务名 : 关闭某一个服务 
systemctl start 服务名  : 启动一个服务 
	eg:service sshd start: 启动ssh的服务 
systemctl restart 服务名 : 重新启动一个服务 
	eg:service sshd restart: 重新启动ssh的服务 

13.内存占用free-h

free -h #常用,以G单位显示
free -m #以mb单位显示
free -k #以kb单位显示


total: 内存总数
used: 已经使⽤内存数
free: 完全空闲内存
shared: 多个进程共享的内存
buffers: ⽤于块设备数据缓冲,记录⽂件系统metadata(⽬录,权限,属性等)
cached: ⽤于⽂件内容的缓冲
available:真正剩余的可被程序应⽤的内存数

14.磁盘操作、cpu

df -h # 显示磁盘剩余空间
du -h # 显示当前所在位置磁盘占用情况
du -h[目录名]  # 显示所有子目录磁盘占用情况
lsblk # 磁盘分区大小详情


cat /proc/cpuinfo   # 查看cpu情况

ubuntu安装后磁盘空间只有一半处理:把其他分区的磁盘划过来
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

释放磁盘空间

 lsof | grep deleted 命令找到deleted状态文件,若要将deleted状态文件删除,则根据pid直接kill调相应进程即可。(就可以释放磁盘空间了)

15.CenOS7目录作用

bin  ---- 命令,二进制文件的存放目录
boot ----- 系统引导程序+系统的内核 
dev   ---- 设备 硬盘,光驱
etc   ---- 存储系统或者服务的配置文件
home  ---- 普通用的家目录,贫民窟
lib  ----- 库文件存放目录
lib64 ---- 库文件的存放目录(64位系统)
media ---- linux识别的设备,比如u盘等,挂这个目录
mnt  ----- 临时的挂载点目录
opt  ----- 第三方的软件安装在整理
proc ----- 虚拟目录,显示内存中的信息(进场,内核的信息)
root -----  root的家目录 相当于皇宫
run  -----  放的启动的东西
sbin  ---  超级命令,只用root用户才能用的命令
srv   ----- service的缩写,存放的是一些启动后需要的数据
sys  ------ 虚拟目录,内存信息
tmp  ----- 临时文件的存放位置
usr ---- 存放用户的程序
var ----- 存放经常变化的文件,比如日志等


16.配置网卡

centos:

vi /etc/sysconfig/network-scripts/ifcfg-en01654894

TYPE=Ethernet
BOOTPROTO=none  # 改为none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=7ec9691a-fc5b-4031-a72b-5e0effba4fbe
DEVICE=eno16777736
ONBOOT=yes  # 改为yes

# 添加下面的配置信息
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=114.114.114.114
IPV6_PRIVACY=no

systemctl stop firewalld # 临时关闭防火墙
systemctl disable firewalld # 永久性关闭防火墙
systemctl status firewalld # 查看防火墙的状态
systemctl restart network  # 重启网卡

ping baidu.com  # 测试网络是否通
# xshell就可以连接了

ubuntu:

//虚拟机
cat >/etc/netplan/00--XXX << EOF
network:
    ethernets:
        enp1s0:
            dhcp4: no
            addresses:
            - 192.168.0.52/24
            gateway4: 192.168.0.254
            nameservers:
                addresses:
                - 114.114.114.114
EOF

netplan apply //应用



//宿主机
# This is the network config written by 'subiquity'
cat > ./00-installer-config.yaml <<EOF
network:
    version: 2
    ethernets:
        enp1s0:
            dhcp4: no
    bridges:
        br0:
          dhcp4: no
          interfaces:
          - enp1s0
          addresses:
          - 192.168.0.252/24
          gateway4: 192.168.0.254
          nameservers:
              addresses:
              - 114.114.114.114
EOF


ubuntu开启root登陆
sudo vi /etc/ssh/sshd_config
PermitRootLogin yes    并保存
userdel -r root1
reboot

ubuntu22.04:

cat > /etc/netplan/01-network-manager-all.yaml <<EOF
network:
  version: 2
  renderer: networkd
  ethernets:
    eno1: //网卡
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.250/24] //IP
      routes:
        - to: default
          via: 192.168.1.1 //网关
      nameservers:
        addresses: [114.114.114.114,8.8.8.8] //DNS
EOF


netplan apply //应用

17.xshell连接

ssh -p 22 root@10.0.0.254  # 命令连接  端口号默认22

# ssh [-p port] user@ip、域名、别名

18.远程拷贝文件scp

可以从本地拷贝给服务器
# -P 22,默认可以不写

scp -P 22 文件 用户@ip: 路径     # 本地拷贝给服务器,本地操作
scp 用户@ip:目录/文件 目录/取名  # 服务器拷贝本地(其他服务器),服务器上操作

eg:本地拷贝给服务器   -r是递归,文件目录都可以
	scp -r 001.txt root@10.0.0.200:~  # 001.txt文件拷贝到远程的根目录
    scp -r 002.txt root@10.0.0.200: /home/ aa.txt  # 001.txt文件拷贝到远程的home目录,并改名为aa.txt
eg:服务器拷贝本地文件(其他服务器文件)
	scp -r jeff@10.0.0.201:/home/app home/app01  # 从10.0.0.201的jeff用户的hmoe/app拷贝到自己/home下并改名app01


yum install lrzz
rz 上传,在服务器敲,从本地传到服务器
sz 下载,在服务器敲,从服务器传到本地

19.备份命令rsync(scp升级版)

不同于 cp 或 scp 的一点是,使用 rsync 命令备份数据时,不会直接覆盖以前的数据,而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

常用命令:
rsync -avz . root@192.168.0.100:/data/目标路径
OPTION选项 功能
-a 这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-r、-l、-p、-t、-g、-o、-D 选项。-a 选项后面可以跟一个 --no-OPTION,表示关闭 -r、-l、-p、-t、-g、-o、-D 中的某一个,比如-a --no-l 等同于 -r、-p、-t、-g、-o、-D 选项。
-r 表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。
-v 表示打印一些信息,比如文件列表、文件数量等。
-l 表示保留软连接。
-L 表示像对待常规文件一样处理软连接。如果是 SRC 中有软连接文件,则加上该选项后,将会把软连接指向的目标文件复制到 DEST。
-p 表示保持文件权限。
-o 表示保持文件属主信息。
-g 表示保持文件属组信息。
-D 表示保持设备文件信息。
-t 表示保持文件时间信息。
--delete 表示删除 DEST 中 SRC 没有的文件。
--exclude=PATTERN 表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)。
--progress 表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。
-u 表示把 DEST 中比 SRC 还新的文件排除掉,不会覆盖。
-z 加上该选项,将会在传输过程中压缩。

20.建立软硬链接

软连接:自身就是个链接文件,建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件
硬链接:硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件(用ls -i查看,这两个文件的inode号是同一个,说明它们是同一个文件)。

注意:加了-s是软链接,不加为硬链接
使用:
软链接:ln -s 文件路径 新文件名  
	eg:ln -s /home/jeff/aa.txt myaa.txt
硬链接:ln 文件路径 新文件名  
	eg:ln /home/jeff/aa.txt myaa.txt

21.打包/解包和压缩/解压缩

打包:打包是指将一大堆文件或目录变成一个总的文件
压缩:将一个大的文件通过一些压缩算法变成一个小文件
Linux下最常用的打包程序就是tar,常称为tar包。生成tar包后,就可以用其它的程序来进行压缩了

tar基本使用:
打包:
-c # 打包,产生新的包
-x # 解包
-v # 列出归档解档过程,显示进度
-f # 指定包名
-r # 添加文件
-u # 更新
-t # 列出文件
压缩:
-z # gzip格式
-j # bzip2格式
-C(大写) # 解压到指定目录

# tar打包:
tar -cvf 包名.tar 文件路径
	eg:
	# 普通打包
	tar -cvf aa.tar /home/001.txt 002.txt 003.txt  # 3个文件打包为1个文件
	# 配合通配符打包
	tar -cf jpg.tar /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar包
	# 添加到已有的包
	tar -rf jpg.tar /home/*.gif  # 将home下的所有.gif文件添加到jpg.tar包中
	# 更新
	tar -uf jpg.tar *.gif  # 更新jpg.tar包中的所有gif文件
	# 列出文件
	tar -tf jpg.tar  # 列出jpg.tar包中所有文件
	
# tar解包:
tar -xvf 包名.tar
	eg:
		tar -xvf aa.tar

# 打包并压缩 -z 或者-j
tar -zcvf jpg.tar.gz /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar.gz的压缩包
tar -jcvf jpg.tar.bz2 /home/*.jpg  # 将home下的所有.jpg结尾的文件打成jpg.tar.bz2的压缩包

# 解压缩包 -x或者-j
eg:
	tar -zxvf jpg.tar.gz
	tar -jxvf jpg.tar.bz2


# 解压到指定目录 -C(大写)
tar -zxvf jpg.tar.gz -C /home/jeff

22.包操作

rpm -qa # 查询所有安装过的包信息
rpm -q 包名 # 查询指定软件包是否安装过
rpm -qf /etc/passwd  # 反向查询文件是由什么包安装
rpm -qi 包名 # 查询已安装的包的信息
rpm -ql 包名 # 查询包的所有文件安装路径
rpm -qr 包名 # 查询已安装包的依赖关系
rpm -qrp 包名 # 查询包的依赖关系
rpm -V 包名 # 查询已安装的包是否修改过  V是大写

rpm -e 包名 # 卸载包
yum -y remove 包名 # 卸载包

23.配置yum源

配置yum源

一:cd /etc/yum.repos.d/  # 查看目录下有无.repo结尾的文件,有则删除
二:vi dvd.repo   # 新建dvd.repo的文件,配置yum库,在文件中输入以下内容:

[chenckout]
name = checkout  # 描述,随意写
baseurl = file://media   # 设置资源库的地址,可以写阿里云的,也可以写自己的yum
enable = 1
gpgcheck = 0

三:vi/etc/fstab   # 光盘挂载,在最后一行中写入以下内容:
/dev/cdrom /media iso9660 defaults,loop 0 0   # 开机挂载

四:mount -a  # 手动挂载
五:yum -y install bind  # 测试yum
六:ls /media   # 验证挂载



yum update -y  # 更新系统软件包

配置阿里云源

1) 安装wget
yum install -y wget
2)配置阿里云
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
3) 重新加载yum
yum clean all
yum makecache

常用命令

yum install xxx              安装xxx软件
yum info xxx                  查看xxx软件的信息
yum remove xxx             删除软件包
yum list                      列出软件包
yum clean                     清除缓冲和就的包
yum provides xxx              以xxx为关键字搜索包(提供的信息为关键字)
yum search xxx              搜索软件包(以名字为关键字)
yum groupupdate xxx       更新xxx软件分组
yum grouplist xxx
yum groupremove xxx
yum groupinfoinfo xxx
这三个都是一组为单位进行升级 列表和删除的操作。。比如 "Mysql Database"就是一个组会同时操作相关的所有软件包;
yum update                  系统升级
yum list available          列出所有升级源上的包;
yum list updates            列出所有升级源上的可以更新包;
yum list installed          列出已经安装的包;
yun update kernel           升级内核;


yum其他命令

# rpm 更新
#检查可更新的rpm包
yum check-update
#更新所有的rpm包
yum update
#更新指定的rpm包,如更新kernel和kernel source
yum update kernel kernel-source
#大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum upgrade

# rpm包的安装和删除
#安装rpm包
yum install 包名
#删除rpm包,包括与该包有倚赖性的包
yum remove 包名
注:同时会提示删除licq-gnome,licq-qt,licq-text

# 包列表
#列出资源库中所有可以安装或更新的rpm包
yum list
#列出资源库中特定的可以安装或更新以及已经安装的rpm包
yum list mozilla #yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包
#列出资源库中所有可以更新的rpm包
yum list updates
#列出已经安装的所有的rpm包
yum list installed
#列出已经安装的但是不包含在资源库中的rpm包
yum list extras

# 搜索rpm包
#搜索匹配特定字符的rpm包
yum search mozilla
注:在rpm包名,包描述等中搜索
#搜索有包含特定文件名的rpm包
yum provides realplay 


24.pstree 树装显示程序

centos7默认没有pstree,需要yum -y install psmisc
pstree 进程号
列出PID为4729的进程的进程状态树的命令:pstree 4729

25.重置密码

重置root密码(centos7)

第一步:开机4秒内按e
第二步:光标移动到Linux16开头处,按end(光标移到末尾)
第三步:在末尾输入 空格rd.break   ctrl+x 下一步
第四步:mount -O remount,rw /sysroot
第五步:chroot /sysroot
第六步:passwd root
第七步:输入两遍新的root密码
第八步:touch /.autorelabel
第九步:exit两遍

重置root密码(Ubuntu)

1、reboot重启,按住Esc键,出现如下界面,选中第二个选项,然后回车

2、选中第二个选项后,此时按下E键,进入编辑状态:

3、此时我们修改如下操作:将ro recovery nomodeset 修改为:rw single init=/bin/bash

4、此时我们按ctrl+X就可以即进入单用户模式,在单用户模式我们输入:passwd进行修改密码,修改完成后,Ctr Alt Del重启即可。(reboot命令无法执行)。

5.修改密码报错

执行以下命令确认根目录是否已被挂载为 rw 可读写权限。
mount | grep -w /


如果执行 passwd 时,提示以下错误:
Enter new UNIX password:
Retype new UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged
原因:根目录挂载了只读状态。
解决方法如下:
mount -o remount,rw /

passwd

26.VIM替换

%s/1.79/6.35/g

27.linux查看网卡,网络ip

curl cip.cc

28.公钥私钥

ssh-keygen  # 生成钥匙
cat /Users/ts/.ssh/id_rsa   # 私钥
cat /Users/ts/.ssh/id_rsa.pub  # 共钥

29.curl命令

curl -X POST 'https://www.jeff.com' \
  -H 'authorization: Bearer 6e270882-e04a-4d35-97be-018146ca26fe' \
  --data-raw '{"page":1,"pageSize":10}' \
  --compressed
curl -i:显示http response 的头信息
curl -L:自动跳转新网址
curl -o [文件名] www.网址.com:保存文件
-H :增加header信息
--data-raw:增加post请求的数据信息
--data:增加post请求的数据信息
--d:增加post请求的数据信息

get请求

//get请求
curl 网址:get请求

post请求

-H :增加header信息
--data-raw:增加post请求的数据信息
--data:增加post请求的数据信息
--d:增加post请求的数据信息

curl -X POST 'https://www.jeff.com' \
  -H 'authorization: Bearer 6e270882-e04a-4d35-97be-018146ca26fe' \
  --data '{"page":1,"pageSize":10}' \
  --compressed

其他请求

-X :指定请求方式
curl -X DELETE 

cookie

--cookie 参数:可以让 curl 发送 cookie。
curl --cookie "name=xxx" www.jeff.com

30.查看文件夹下文件数量

ls  |  wc  -w

31.查看端口暂用情况

lsof -i:6379

32.查看cpu核使用情况htop

htop  : 查看每个核使用情况
top  : 查看进程情况

33.nohup

nohup /usr/bin/python3 wx.py > wx.log 2>&1 &


2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)

34.查看各级目录大小

du -lh --max-depth=1

35.linux环境变量,mac环境变量

linux系统环境变量

vi /etc/profile

export PATH="$PATH:/projects/tiktok_node/node-v16.3.0-linux-x64/bin"

# 刷新
source /etc/profile

linux用户环境变量

在用户目录下的.bash_profile文件中增加变量

# 刷新
source .bash_profile

shell临时环境变量

# 终端有效
export PATH=/usr/local/webserver/php/bin:$PATH

mac系统环境变量

/etc/paths (全局建议修改这个文件 )
编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径
注意:需要sudo权限修改次文件,按照次序寻找,从上至下

36.远程添加公钥

cd root/.ssh/
vi authorized_keys

37.trl/control 终端快捷键

Ctrl + a/Home 切换到命令行开始
Ctrl + e/End 切换到命令行末尾
Ctrl + l 清除屏幕内容,效果等同于 clear
Ctrl + u 清除剪切光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 粘贴刚才所删除的字符
Ctrl + r 在历史命令中查找 (这个非常好用,输入关键字就调出以前的命令了)
Ctrl + c 终止命令
ctrl + o 重复执行命令
Ctrl + d 退出 shell,logout
Ctrl + z 转入后台运行,但在当前用户退出后就会终止
Ctrl + t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符
Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符)
Ctrl+(x u) 按住 Ctrl 的同时再先后按 x 和 u,撤销刚才的操作
Ctrl+s 锁住终端
Ctrl+q 解锁终端
!! 重复执行最后一条命令
history 显示你所有执行过的编号+历史命令。这个可以配合!编辑来执行某某命令
!$ 显示系统最近的一条参数
最后这个比较有用,比如我先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用 vim 编辑。 一般的做法是先用↑ 显示最后一条命令,然后用 Home 移动到命令最前,删除 cat,然后再输入 vim 命 令。其实完全可以用 vim !$来代替。

38.nfs共享目录

server:master 192.168.0.214
systemctl stop firewalld.service
yum -y install nfs-utils rpcbind
mkdir -p /data/k8s/		# # 共享目录
chmod 755 /data/k8s/  # 共享目录

vi /etc/exports
/data/k8s  *(rw,sync,no_root_squash)  # 允许共享的ip和目录
/home/jeff  192.168.0.216(rw,sync,no_root_squash)  # 允许共享的ip和目录

systemctl restart rpcbind.service 
systemctl restart nfs.service 

client:node 192.168.0.216
systemctl stop firewalld.service
yum -y install nfs-utils rpcbind
systemctl restart rpcbind.service 
systemctl restart nfs.service 

showmount -e serverip
showmount -e 192.168.0.214
mount -t nfs  192.168.0.214:/home/jeff/ /home/jeff/  # 挂载,node执行

39.做免密登陆

[root@sg-15 bin]# ssh-keygen -t rsa
[root@sg-15 bin]# for i in 192.168.0.215 192.168.0.216 192.168.0.217;do  ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i; done

40.添加防火墙规则

systemctl stop firewalld # 临时关闭防火墙
systemctl disable firewalld # 永久性关闭防火墙
systemctl status firewalld # 查看防火墙的状态
systemctl restart network  # 重启网卡
systemctl start firewalld #启动防火墙


#防火墙规则:
firewall-cmd  --reload   #重新加载防火墙规则
firewall-cmd  --list-all #查看已配置的防火墙规则

firewall-cmd  --permanent  --add-rich-rule="rule  family="ipv4"  source  address="192.168.0.215" port  protocol="tcp"  port="8080"  accept" #指定ip端口访问

firewall-cmd  --permanent  --remove-rich-rule="rule  family="ipv4"  source address="192.168.44.101"  port  port="8080"  protocol="tcp"  accept" #移除规则

41.netstat网络状态命令

yun install -y net-tools
Linux netstat 命令用于显示网络状态。
利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

实例

// 查看网络连接8080数量
netstat -apn|grep 8080|wc -l

//显示详细的网络状况
netstat -a

//显示当前户籍UDP连接状况
netstat -nu

//显示UDP端口号的使用情况
netstat -apu

//显示网卡列表
netstat -i

//显示组播组的关系
netstat -g

//显示网络统计信息
netstat -s

//显示监听的套接口
netstat -l

参数说明

-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示路由缓存。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistics 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。

42.telnet查看端口通不通

telnet 192.168.0.52 9100

// 通
Trying 192.168.0.52...
Connected to 192.168.0.52.
Escape character is '^]'.

telnet 192.168.0.52 91001
//不通
192.168.0.52: nodename nor servname provided, or not known

43.linux增加开机自启

vi /etc/rc.d/rc.local

/opt/module/zookeeper-3.5.7/bin/zkServer.sh start
posted @ 2020-03-25 16:59  Jeff的技术栈  阅读(377)  评论(0编辑  收藏  举报
回顶部