Linux下的命令笔记

相关笔记:Linux系统基础学习笔记1

常见问题

Linux中找不到ifconfig命令的解决方法
解决主机与虚拟机ping不通

情景:vm14上的系统拷贝到vm12上打不开
解决办法:
  vmware workstation 12 打开vm14 不兼容问题解决
  无法获得VMCI驱动程序的版本:句柄无效

vmware安装centos7 输入ifconfig出现ens33,没有eth0

Linux常用命令

帮助文档:man 命令:man是manual 或者 命令 --help

-a:显示指定目录下所有的文件,包括隐藏文件
-l:以列表的方式显示文件的详细信息
-h:配合-l以人性的方式显示文件大小

ls:显示目录内容
cd(change directory):跳转路径
pwd(print working directory):显示工作目录的路径名称
touch:创建文件
mkdir:创建文件夹
clear:清空
cat:查看文件,同时查看两个文件重定向到一个文件,命令:cat 1.txt 2.txt > xxx.txt将两个文件合成一个
more:分屏查看文件
history:查看历史命令
find:搜索文件,格式find 路径 选项(-name,-size等) 内容
  如find ./ -name “*.txt” 意思为在当前目录下找以txt结尾的
  如find ./ -size +4k -size -5M 意思为在当前目录下找大于4k小于5M的文件
  如find / -size +500M -size -1G 意思为在根目录下找大于500M小于1G的文件
grep:在文件中搜索内容,-n是显示行数,-v是不包含,^开头符,$结尾符。
  如grep “ntfs” xxx.txt就是在xxx.txt内容中搜素ntfs,grep “^ntfs” xxx.txt就是在xxx.txt内容中搜素ntfs开头的
mv:移动或者重命名
tree:以树的形式查看文件
rm:删除文件,删除文件夹用rm 文件夹名 -r
  [-r]指示rm将参数中列出的全部目录和子目录递归地删除;
  [-f]忽略不存在的文件,强制删除,不给出提示
  [-i]进行交互式删除,即提示yes或no
rmdir:删除文件夹,文件夹不为空则用rm -r
cp(copy):复制,拷贝文件夹copy A gebilaowang/ -r。
ln -s 1.txt 1-softlink.txt:软链接,依赖于原文件,原文件删除则软链接文件看不到,相当于windows的快捷方式
ln 1.txt 1-hardlink.txt:硬链接,相当于复制粘贴

查看设备情况:
ps -aux;top;htop:查看当前运行情况,相当于Windows的任务管理器,杀进程用kill PID
df -h:查看硬盘空间使用情况
du -h:查看当前路径空间使用情况
free -m:查看当前内存情况,-m单位是兆,-g单位是G
ifconfig:相当于Windows的ipconfig,查看网络信息
ip addr:[CentOS 7] 相当于Windows的ipconfig,查看网络信息

对用户和组进行操作(体现ubuntu多用户):
sudo useradd shuaige -m:添加用户,cat /etc/passwd文件最后一行多个shuaige则添加成功
sudo userdel shuaige:删除用户,[-r]是同时删除主目录
sudo passwd shuaige:对用户设置密码
su shuaige:切换用户
whoami:查看当前用户名
ssh 用户名@IP地址:远程连接用户
su - 用户名:切换用户同时进入所在目录
将普通用户添加sudo权限:sudo usermod -a -G adm 用户名 然后 sudo usermod -a -G sudo 用户名
groupadd 用户名:将用户添加到组中
chown 用户 文件名:将文件更改用户, chown -R userName:userGroup /path, -R是递归当前目录,即当前目录及所有子目录、子文件,userName是用户名,userGroup是用户组,path是文件夹路径
chgrp 组名 文件名:更改文件获取其他组中的权限

修改文件权限chmod(change mode):
----------:第一位类型:-是文件,d是文件夹
二到四位是拥有者权限u(user);五到七位是组权限g(group);八到十位是其他人权限o(other)
r(4)是可读文件,w(2)是可写文件,x(1)是可执行权限,七种可能
对应二进制000;全开为111
 例子:chmod u=x,g=wx,o=rwx 1.txt 等价于 chmod 137 1.txt
 意思为拥有者权限为可执行,组权限为可写可执行,其他人可读可写可执行

打包和解包(zcvf-zxvf;jcvf-jxvf):
 [-c]:生成档案文件,创建打包文件;
 [-x]:解开档案文件,解包
 [-v]:列出档案归档解档的详细过程,显示进度;
 [-f]:指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
 [-t]:列出档案中包含的文件
 打包:tar -cvf xxx.tar *.py 将所有的.py文件打包成xxx.tar
 解包:tar -xvf xxx.tar 将xxx.tar解包
 #:打包并压缩: tar -zcvf xxx.tar.gz *.py 将所有的.py文件打包并压缩成xxx.tar.gz
   tar -jcvf xxx.tar.bz2 *.py 将所有的.py文件打包并压缩成xxx.tar.bz2
 #:解压压缩包: tar -zxvf xxx.tar.gz 将xxx.tar.gz压缩包解压
   tar -jxvf xxx.tar.bz2 将xxx.tar.bz2压缩包解压
 #:解压压缩包并指定路径: tar [-z][-j]xvf xxx.tar.[gz][bz2] -C faze/
 压缩后占内存最小的是gz,比gz稍微大一点的是bz2

通配符:*,?,[1-5]跟正则表达式差不多
:重定向,把原本显示在屏幕上的信息存到一个文件中,
  如ls -alh > xxx.txt(将信息存到文件中);ls -alh >> xxx.txt(将信息追加到文件中)

vim编辑器:
 进入vi时是命令行模式,按字母【i】进入插入模式,这样就可以开始输入文字了;
 进入插入模式后,发现输入错误想删除文字则按【ESC】进入命令行模式;
  恢复上一次操作:按字母【u】
  按任何键都失效,按【Ctrl+Q】恢复正常
 在命令行模式下按【:】冒号进入底行模式
  : w filename (输入 「w filename」将文章以指定的文件名filename保存)
  : wq (输入「wq」,存盘并退出vi)
  : q! (输入q!, 不存盘强制退出vi)

linux中巧用ctrl-z后台运行程序

(1) CTRL+Z停止进程并放入后台

(2) jobs 显示当前暂停的进程

(3) bg %N 使第N个任务在后台运行(%前有空格)

(4) fg %N 使第N个任务在前台运行

默认bg,fg不带%N时表示对最后一个进程操作!


练习过的Linux常用命令

命令描述
hostname查看当前系统的主机名
whoami查看当前登录用户的
ifconfig查看虚拟机ip
shutdown -h now关机
reboot重启
pwd:[print working directory]查看光标所在位置
clear清屏
ls 目录查看指定目录里面的文件或者文件夹
touch 文件名创建一个指定的文件
mkdir abc创建一个文件夹命令
cd 目录进入指定的目录
tab键命令补全,目录、文件名补全的作用
echo “字符串”将字符串输出到控制台上

Linux目录结构

Linux目录结构:倒树状结构
在这里插入图片描述

目录描述
bin可执行命令
sbin超级管理员使用的命令
opt【**】手动安装软件的目录
usr【**】默认安装软件的目录
tmp【*】临时目录
root【**】root用户的根目录
home【**】普通用户的信息
etc 【**】配置文件
selinux增强linux系统安全的
proclinux内核相关信息
boot启动程序相关目录
mnt挂载相关的目录

绝对路径:以/开头的路径,称之为绝对路径
相对路径:不是以/开头的路径,称之为相对路径
去任何一个目录,可以使用相对路径,也可以使用绝对路径。涉及到目录切换。

VI编辑器

所有的linux系统都自带了这个vi编辑器。
vi编辑器三种模式:
  命令模式:通过命令模式进入到输入模式

  输入模式:只有进入这个模式才可以往文件里面写内容。

  末行模式:在末行模式退出到控制台!

在这里插入图片描述


====================================================== VI编辑器=================================================================
1.vi编辑器是Linux系统中使用最广泛的,而且是默认的文本编辑器

2.文本编辑器的作用:
	修改系统配置文件
	创建用户信息文件
	编辑程序源代码文件
	
3.VI编辑器的模式(三种):
	命令模式:由命令模式进入到输入模式:点击i(o,a,r);由命令模式进入到末行模式 输入:【冒号】
	输入模式:由输入模式退出到命令模式:用ESC
	末行模式:在末行模式输入(w,q,wq,wq!)就可以退出编辑器了!
	
4.VI编辑器的使用:
	打开或新建文件:vi <file>
	编辑文件:i ,或者o ,或者a,或者r
	保存文件: :w <file>(有另存为功能)
	退出编辑器:
	:q(已保存或未更改)
	:wq(保存后退出) 
	:q!(强制退出)

	
5.命令行模式下:
	行内快速跳转:
		^ 行首
		$ 行尾
		w  后一个单词首字母
	行间快速跳转:
		: set  nu    显示行号
		: set  nonu  取消行号
		1G 文件首行
		#G  转到#行(#号代表的是数字)
		G文件末行
		vi [+#] 文件名,光标就会自动到达文件的第#行首! (#表示数字!!!)
	
    在末行模式直接输入:#(#代表的是数字),那么就会直接跳转到第#行!
	

5.删除操作:
	dd	    删除光标所在行
	3dd     从光标所在行,往下删除三行
	d$	    删除光标至行尾
	d^	    删除光标至行首	
	
	在末行模式直接输入:1,20 d 即可删除第#1行到#2行的所有内容!(#代表的是数字)!
	
	撤销操作: u

	
6.复制操作:
	yy	复制光标所在行
	3yy 复制光标所在行及下面2行
	
	y$	复制光标至行尾
	y^	复制光标至行首
	加#,如20yy -----从光标开始计算
	
	在末行模式直接输入:#,$y 即可复制第#行到文尾的所有内容!(#代表的是数字)!
粘贴操作:
	p(小p):  粘贴在光标所在行之后
	P(大p)	    粘贴在光标所在行之前
	
	
7.查找与替换(末行命令):
	查找:  
		由”/”或者”?”开始后跟一个word  
		按n键查找后一个
		按N键查找前一个
	替换:
	  在末行模式,%s/被替换单词/替换成哪个单词

虚拟机网络模式

桥接: 虚拟机ip和物理机ip的地址会在同一个网段。

nat连接模式:虚拟机ip和物理机ip不在同一个网段,虚拟机在访问外网的时候,实际是拿着该虚拟机所在的物理机的ip地址去访问外网。

仅主机模式: 虚拟机和物理机可以通信,但是虚拟机不能访问外网。
在这里插入图片描述

linux下配置ip地址

原文链接:linux下配置ip地址四种方法(图文方法)

命令vi /etc/sysconfig/network-scripts/ifcfg-ethx,x为0,1,2…
在这里插入图片描述
配置完以后重启动服务service network restart,ip地址就配置好了。
在这里插入图片描述

在Cent0S下只有ens33,改为eth0的方法 vmware安装centos7,输入ifconfig出现ens33,没有eth0

在CentOS7下用过的配置:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述
图片转文本如下:

	TYPE="Ethernet"
	PROXY_METHOD="none"
	BROWSER_ONLY="no"
	BOOTPROTO="none"
	DEFROUTE="yes"
	IPV4_FAILURE_FATAL="no"
	IPV6INIT="yes"
	IPV6_AUTOCONF="yes"
	IPV6_DEFROUTE="yes"
	IPV6_FAILURE_FATAL="no"
	IPV6_ADDR_GEN_MODE="stable-privacy"
	NAME="ens33"
	DEVICE="ens33"
	ONBOOT="yes"
	bootproto=static
	IPADDR="192.168.202.129"
	PREFIX="24"
	GATEWAY="192.168.202.2"
	DNS1="8.8.8.8"
	IPV6_PRIVACY="no"
	ZONE=public

配置完以后重启动服务service network restart,ip地址就配置好了。
在这里插入图片描述

linux常用命令

ls 目录: 查看指定目录里面的文件或者文件夹

ls:查看当前目录【光标所在目录】的文件和文件夹

ls -a 目录:显示指定目录下所有的子文件和子文件夹【包括:隐藏文件】

ls -l 目录:以长输出的方式显示指定目录下的文件和文件夹

注意:在linux系统中所有以.开头的文件都是隐藏文件
  在linux系统中.代表当前目录,…/代表当前目录的上一级目录

增删改查

增加:
  增加文件: touch 文件名 | vi 编辑器
  增加目录: mkdir [-p] 目录名:[递归的] 创建目录
删除: rm -rf 文件|目录
  rmdir 目录:删除空目录
修改: 修改文件或者文件夹的位置和名称
复制(cp)
  cp [-r] 源文件|源文件夹 目标文件|目标文件夹
剪切(mv)
  mv 源文件|源文件夹 目标文件|目标文件夹
查询:
ls 目录:显示一个指定目录下所有的文件和文件夹
  查看文件内容:
    cat 文件名:查看指定文件的内容【将整个文件的所有内容显示到控制台上】
    more 文件名:分屏显示指定文件的内容,最后一屏自动退出
    less 文件名:分屏显示指定文件的内容, 最后一屏不自动退出
    head [-num] 文件名:查看一个文件最前面几行
    tail [-num] 文件名: 查看一个文件最后几行
    tail -f 文件名 :实时查看log文件
    tail -f 文件名 -n 200 :查看后200行,并监听文件尾部新增内容

查看文件内容中是否含有指定的内容:
  cat bcd.txt | grep hello
  | : 管道符
  grep : 过滤
  查看文件位置:find / -name bcd:查找的是文件名中含有bcd的文件或者文件夹
  查看文件类型 : file 文件名
touch 文件名: 创建一个指定的文件
mkdir abc : 创建一个文件夹命令
cd 目录: 进入指定的目录
tab键使用: 在linux系统中可以有 命令补全、目录、文件名补全的作用。
echo “字符串”: 将字符串输出到控制台上。
echo “字符串” > 文件名: 将原本输出到控制台上的字符串输出到指定的文件中。[覆盖式重定向]
echo “字符串” >> 文件名: 将原本输出到控制台上的字符串输出到指定的文件中。[追加式重定向]

查看cpu的命令: top 命令
查看磁盘空间大小的命令: df -h
查看内存大小的命令: free -m

hostname:查看当前系统的主机名
whoami:查看当前登录用户的
ifconfig:查看虚拟机ip
shutdown -h now:关机
reboot:重启
pwd:[print working directory] 查看光标所在位置
clear:清屏

查看一个命令如何使用?查看帮助文档
  命令 -–help
  命令 -h
  man 命令:
  百度
  sync:关机之前,最好将内存中的数据保存到磁盘上

文件权限

-rw-r–r-- 1 root   root         481           3月 25 22:44     bcd.txt
         属主   属组    文件大小       创建时间          文件名
-rw-r–r–:
 第一位:表示文件类型
  -表示这是一个普通文件
  d表示这是一个目录
  l:这是一个连接文件

第二位到第四位:表示当前文件的属主(用户)对该文件的权限
第五位到第七位:表示当前文件的属组(用户组)对该文件的权限
第八位到第十位:表示其它人【既不属于属主、也不属于属组中的用户】对它的操作权限

读写可执行对应二进制111,即读4,写2,可执行1
r:读的权限
w:写的权限
x:执行权限
-:没有权限

root用户:不受权限限制,是一个超级的存在。

修改文件权限[两种方式]:
  chmod u/g/o/a (+|-) rwx 文件(夹)名
  chmod 777 文件名

4.文件权限设置:
  更改文件权限:chmod [ugoa][+ - =][rwx] <file> (用逗号分隔)
  更改文件所有者:chown <owner> <file>
  更改文件所属组:chgrp <group> <file>
  同时更改所有者和所属组:chown <owner:group> <file>

用户操作

添加用户:useradd <username>
设置密码:passwd <username>

切换用户:su <username> 注意:输入的是你将要切换到目标用户的密码

删除用户:userdel [-r] <username>

禁止/解禁用户:usermod [-L | -U] <username>

切换用户:su <username> 注意:输入的是你将要切换到目标用户的密码
查看当前用户:whoami / who am i
查看所有已经登录的用户:who
查看所有登录用户记录:last
强退指定用户:pkill -kill -t pts/3【pts/3从who命令下获取】 或 pkill -9 -u zhangsan

扩展:centos下kill、killall、pkill命令区别
kill命令
pkill命令
kill是用来终止进程的,首先可以通过ps aux查看系统有哪些进程正在运行。在这里插入图片描述
1.用kill来杀死某一个进程

#kill,加选项-9,加PID,表示立即结束进程编号为PID的这个进程
#           -1,加PID,表示重启某个进程
#           -15,加PID,表示安全结束某个进程
#kill -9 PID
#下面表示杀死进程PID为2899的进程
[root@fazehan~]# kill -9 2899

2.用killall杀死一类进程

#killall,加选项-9,加服务名, 表示杀死该服务的所有进程
#             -1,加服务名,表示重启该服务的所有进程
#killall -9 service
#下面表示杀死httpd服务的所有进程
[root@fazehan~]# killall -9 httpd

3.用pkill踢出某个终端
在这里插入图片描述

#pkill,加选项-9,加终端号,表示踢出该终端
#            -1,加终端号,表示重启该终端
#pkill -9 pts/3
#下面表示提出我的远程登录终端pts/3
[root@fazehan~]# pkill -9 -t pts/1
[root@fazehan~]# pkill -9 -u zhangsan

用户信息文件: /etc/passwd 可通过cat /etc/passwd 进行查看,字段之间用冒号隔开,格式为: 用户名:口令:用户标识符号:组标识符号:注释性描述:宿主目录:命令解释器
用户密码文化:/etc/shadow 可通过cat /etc/shadow进行查看

history:查看你输入过的命令[1000]

用户组操作

增加用户组:groupadd <groupname>
创建用户时指定用户初始组:useradd -g <initial group> <username>

删除用户组:groupdel <groupname>

修改用户所在的初始组:usermod -g <groupname> <username>

查看用户所属组:groups <username>

组信息:/etc/group 格式为:组名:组口令:GID:组成员    组密码信息在/etc/gshadow文件中保存!

软硬链接

  软链接文件:类似于windows上的快捷方式, ln -s 源文件 链接文件; 链接文件完全依赖于源文件,原文件 [更改 | 删除] 软链接文件 [被更改 | 被删除]

  硬链接文件:类似于windows上的复制,但是又有区别, ln 源文件 链接文件; 链接文件不完全依赖于源文件,原文件 [更改 | 删除] 硬链接文件 [被更改 | 不被删除]

rpm安装使用

yum安装mysql 无排版附件

yum install 软件名

在这里插入图片描述
 以安装mysql为例
在这里插入图片描述
第一步进入root用户下: su root

第二步安装mysql客户端、服务器端、开发用到的库以及包含文件: 另外,使用yum list mysql查看当前机子上可用的mysql安装

注意:centos7下会报yum install mysql-server没有可用包,解决方法:

  1. yum -y install wget
  2. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  3. rpm -ivh mysql-community-release-el7-5.noarch.rpm
  4. yum install mysql-server
yum -y install mysql   # 安装客户端
yum -y install mysql-server  # 安装服务器端
yum -y install  mysql-devel  # 安装开发用到的库以及包含文件
yum list mysql*  # 查看当前机子上可用的mysql*安装

第三步修改配置信息,添加节点:

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1

第四步重启mysqld服务: service mysqld restart/stop/start

第五步配置超级用户名和密码: mysqladmin -u root password 123456

注意:【mysql版本为在5.1.73,5.6以后的高版本解决方法mysql下的user表为空】执行这一步操作可能会出现以下错误:
  mysqladmin: connect to server at 'localhost' failed
  error: 'Access denied for user 'root'@'localhost' (using password: NO)'


解决方法:
  进入mysql服务配置文件vi /etc/my.cnf
  在[mysqld]下加入 skip-grant-tables
  重启mysql服务 service mysqld restart
   在终端下进入mysql,无需密码: mysql -uroot -p
   在mysql下执行以下命令:
     查看所有数据库
      mysql> show databases;
      使用mysql数据库
      mysql> use mysql;
      查看有多少表
      mysql> show tables;
      查看user表有没有数据
      mysql> select * from user;

      向user表插入root用户
      mysql> INSERT INTO user (Host,User,Password) VALUES( 'localhost', 'root',password( '123456'));
      更新root用户权限
      mysql> update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;
  删除在[mysqld]下加入的 skip-grant-tables
  重启mysql服务 service mysqld restart
  此时就可以正常的输入密码进入了


配置文件详细内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

skip-grant-tables  # 这是新增的

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
lower_case_table_names=1


解压.tar.gz格式压缩包配置(安装JDK和Tomcat) 无排版附件


以安装jdk为例(tomcat类似,自备包,附tomcat环境配置):

第一步将jdk.tar.gz包通过sftp传给linux服务器的opt文件夹: 通过Xftp软件,opt文件夹是手动安装放置的目录,sftp传输是基于ssh,端口号为22

第二步在linux服务器的opt文件夹下创建java文件夹: mkdir /opt/java/

第三步在/opt下将.tar.gz文件指定解压到/opt/java: tar -zxvf jdk-8u201-linux-x64.tar.gz -C /opt/java/

第四步配置环境变量: vi /etc/profile ,vim到最后一行指令为:$;下一屏指令为CTRL+F(forward);上一屏为CTRL+B(back)

jdk环境变量配置:

export JAVA_HOME=/opt/java/jdk1.8.0_201
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

tomcat环境变量配置:

export CATALINA_HOME=/opt/tomcat/apache-tomcat-7.0.65
export PATH=$PATH:$CATALINA_HOME/bin

第五步刷新配置文件: source /etc/profile

第六步测试: 测试java环境配置是否成功:java -version
测试tomcat环境配置是否成功:startup.sh,查看tomcat是否已经启动:ps -ef |grep tomcat


面试使用加分的常见命令

ps -ef | grep 服务名: ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。|管道符,grep:过滤,在内容中查找。

top:查看cpu
df -h:查看磁盘大小
free -m:查看内存大小

find / -name bcd:查找文件名中含有bcd的文件或者目录

cat 文件 | grep 字符串:查看一个文件的内容是否含有指定的字符串信息

查看一个服务是否启动的:
netstat -an | grep 端口号 // 该端口号必须为LISTENING(监听)才算启动
ps -ef | grep 服务名 : //这种方法可以看到自己输入的这个的命令,结果最少为2条,才算已经启动。ps(process status:进程状态)。-e:显示所有进程,-f:以特定格式显示。
service 服务名 status

杀死一个进程:
Kill -9 pid // 杀死pid为pid的进程


查看端口是否启动:netstat -nap | grep 端口号

详细说明: Linux下查看进程和端口信息 以及 netstat用法

说明: l:listening、n:numeric、 t:tcp、u:udp、 p:program
如查看8080的端口占用信息:netstat -nap | grep 8080netstat -lntup | grep 8080
在这里插入图片描述

查看防火墙开放的端口号:iptables -L -n

查看程序对应的进程号:ps aux | grep redis

编辑防火墙配置文件:vim /etc/sysconfig/iptables

nginx启动:cd /usr/local/nginx/sbin   ./nginx

更详细的说明:Nginx学习笔记

redis启动命令:./redis-service redis-config

开放防火墙端口的命令

更详细的说明:linux开放指定端口命令

1、开启防火墙
systemctl start firewalld

2、开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
–zone #作用域
–add-port=1935/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

3、重启防火墙
firewall-cmd --reload

4、查看端口号
netstat -ntlp //查看当前所有tcp端口·

netstat -ntulp | grep 2181 //查看所有1935端口使用情况·

Docker 教程

Docker安装Nginx

Docker 清理命令

转载自:https://www.runoob.com/w3cnote/docker-clear-command.html

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

通过镜像的id来删除指定镜像

docker rmi <image id>

删除所有镜像

docker rmi $(docker images -q)

为这些命令创建别名

# ~/.bash_aliases

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'

# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'

# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'

# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'

系统时间设置

原文链接:https://www.cnblogs.com/flyfish919/p/7292008.html

情景:安装ElasticSearch过程中报错 curl: (60) Peer's Certificate has expired

解决办法:linux时间不对,按下面步骤执行

# 查看系统时间
date

# 查看系统硬件时间(hardwareclock)
hwclock

# 安装ntpdate服务
yum install -y ntpdate 

# 同步时间
ntpdate time.nist.gov
# 如果上面time.nist.gov服务器同步不了,可以换下面几个时间服务器试试:
# time.nist.gov
# time.nuri.net
# 0.asia.pool.ntp.org
# 1.asia.pool.ntp.org
# 2.asia.pool.ntp.org
# 3.asia.pool.ntp.org

# 同步时间成功后查看系统时间
date

# 同步时间成功后调整硬件时间
hwclock -w

# 查看系统硬件时间
hwclock

# 定时执行时间同步任务,所以我们利用crontab -e 来添加定时任务
* */1 * * * root ntpdatetime.nuri.net;hwclock -w 

# 手动设置时间方法  date -s "2020-06-25 13:11:30"

top命令

原文链接:Linux top命令的用法详细详解

查看多核CPU命令
mpstat -P ALL 和 sar -P ALL

说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt

top命令经常用来监控Linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。

top进入视图

第一行:
10:01:23 — 当前系统时间
126 days, 14:29 — 系统已经运行了126天14小时29分钟(在这期间没有重启过)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:
Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态
6.7% us — 用户空间占用CPU的百分比。
0.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
92.9% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比

在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

第四行:内存状态
8306544k total — 物理内存总量(8GB)
7775876k used — 使用中的内存总量(7.7GB)
530668k free — 空闲内存总量(530M)
79236k buffers — 缓存的内存量 (79M)

第五行:swap交换分区
2031608k total — 交换区总量(2GB)
2556k used — 使用的交换区总量(2.5M)
2029052k free — 空闲交换区总量(2GB)
4231276k cached — 缓冲的交换区总量(4GB)

这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器“危矣”:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行是空行

第七行以下:各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

多U多核CPU监控
在top基本视图中,按键盘数字“1”

进程字段排序
默认进入top时,各进程是按照CPU的占用量来排序的。可通过键盘指令来改变排序字段,比如想监控哪个进程占用MEM最多,我一般的使用方法如下:

  1. 敲击键盘“b”(打开/关闭加亮效果)

  2. 敲击键盘“x”(打开/关闭排序列的加亮效果)

  3. 通过”shift + >”或”shift + <”可以向右或左改变排序列

  4. 敲击“f”键,top进入另一个视图,在这里可以编排基本视图中的显示字段

    有””并且标注为大写字母的字段是可显示的,没有””并且是小写字母的字段是不显示的。如果要在基本视图中显示“CODE”和“DATA”两个字段,可以通过敲击“r”和“s”键

    “回车”返回基本视图,可以看到多了“CODE”和“DATA”两个字段

top命令的补充
top命令是Linux上进行系统监控的首选命令,但有时候却达不到我们的要求,比如当前这台服务器,top监控有很大的局限性。这台服务器运行着websphere集群,有两个节点服务,就是【top视图 01】中的老大、老二两个java进程,top命令的监控最小单位是进程,所以看不到我关心的java线程数和客户连接数,而这两个指标是java的web服务非常重要的指标,通常我用ps和netstate两个命令来补充top的不足。

监控java线程数:
ps -eLf | grep java | wc -l

监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l

Linux管道符和多命令执行符

原文链接: linux中管道符“|”的作用
Linux之管道符&多命令执行符

管道符“|”的作用
命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象(下图应用别人的图片)
在这里插入图片描述

  1. 例如:ps aux | grep “test” 在 ps aux中的结果中查找test。

  2. 例如: find . -name “*.txt” | xargs grep “good” -n --color=auto 把find的结果当成参数传入到grep中,即在那些文件内部查找good关键字。

多命令执行符
在这里插入图片描述例:ls;date;pwd 会按照顺序依次执行
ls && echo yes || echo no
ls命令执行正确打印yes执行错误打印no

sshpass命令使用

原文链接:sshpass命令使用和无法拷贝原因分析

一、sshpass安装

yum install sshpass

sshpass -V

二、sshpass命令使用

#1、直接远程连接某主机
sshpass -p {密码} ssh {用户名}@{主机IP}

#2、远程连接指定ssh的端口
sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP} 

#3、从密码文件读取文件内容作为密码去远程连接主机
sshpass -f ${密码文本文件} ssh {用户名}@{主机IP} 

#4、从远程主机上拉取文件到本地
sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}

#5、将主机目录文件拷贝至远程主机目录
sshpass -p {密码} scp -r ${本地主机目录} {用户名}@{主机IP}:${远程主机目录} 

sshpass -p "密码" scp -r  /var/www/html/test.txt  root@ip地址:/web/website/Test/

#6、远程连接主机并执行命令
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'

-o StrictHostKeyChecking=no :忽略密码提示

#7、将主机目录拷贝至远程主机目录

sshpass -p {密码} scp -r {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}

sshpass -p "111111" scp -r  /var/www/html/test/  root@ip地址:/web/website/Test/

sshpass -p "111111" scp -o StrictHostKeyChecking=no -r  /var/www/html/test/  root@ip地址:/web/website/Test/

避坑注意:

本人首次使用的时候,一直无法把文件转移到指定目录,也没有任何报错,后来使用了

scp -r {用户名}@{主机IP}😒{远程主机目录} ${本地主机目录} 即把scp前面的先去掉,然后输入远程目标主机的密码,然后就可以使用了sshpass -p {密码} scp -r了。。。。。

大家引以为戒。

解决办法: scp 命令后加上参数 -o StrictHostKeyChecking=no

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值