专题——linux常用命令

linux基本命令

1.linux简介

开源,稳定(连续一年以上不用关机),漏洞少,免费试用,自由传播

1970年贝尔实验室开发出unit,1980年linus开发出linux

linux其实是一个内核,版本有redhat(redhet和centos),ubuntu(图形化界面做的最好),suse,aliyu linux,……。

2.VM与linux的安装

2.1选择网络模式

2.1.1桥接网络

桥接网络就是虚拟机和主机在同一网段中,即ip地址的前三位是一样的,会造成两个问题

  1. ip地址不够用

    总共可以使用253个地址,但是虚拟机占用了之后,其他主机则无法使用此ip

  2. 不安全

    linux通常作为服务器使用,其他主机可随意访问该服务器,造成安全问题
    专题——linux常用命令_第1张图片

2.1.2网络转换模式

网络转换模式使虚拟机中的linux与主机不在一个网段中,所以避免了桥接模式出现的两个问题,通过增加两个虚拟网卡来实现主机与虚拟机的通信vmnet8虚拟网卡一定与虚拟机中的ip在同一个网段。
专题——linux常用命令_第2张图片

2.1.3仅主机模式

使得虚拟机和当前主机在同一个网络中,不与主机所在的网络公用一个网络,不具备上网功能

2.2分区及文件系统

分区 文件系统 大小
/boot (存放启动文件) ext4(存放大小不限) 2048mb
swap(如果系统内存不够用了,可以将这部分分区作为内存) swap 2048mb
/(根路径) ext4 剩余的16g

2.3安装xshell和xftp

使用xftp连接linux时,ftp是不加密的,sftp是加密的

3.linux文件与目录结构

一切皆文件

/bin 存放最经常使用的命令

/user/bin

/user/local/bin

/sbin 存放系统管理员能够使用的指令

/user/sbin

/user/local/sbin

【注意】以上六个目录在linux的任何位置都可以访问因为这六个路径都被配置到了环境变量中 echo $PATH查看

/home 存放普通用户的主目录,在linux中每个用户都有自己的目录,一般目录名是以账号名命名的

/root 该目录为系统管理员

/lib 几乎所有的程序都需要用到动态链接库

/lost+found 一般为空,非法关机(拔电源,直接关闭虚拟机)时,回存放文件

/etc 所有的系统管理所需要的配置文件和子目录,例如安装了mysql,jdk等有些文件就会默认安装在etc下

/usr 非常重要的文件夹,用户的很多应用程序和文件都放在这个目录下,类似windows下的program files目录

/boot 启动linux时的核心文件,包括连接文件和镜像(不要用

/proc 虚拟目录,系统内存的镜像,可以直接访问这个目录来获取系统信息(不要用

/srv service的缩写,存放一些服务启动之后需要提供的数据(不要用

/sys linux2.6内核下新出现的文件系统sysfs(不要用

/tmp 存放临时文件

/dev 设备管理器,所有的硬件以文件的形式存储

/media(centos6) 系统会自动识别一些设备,例如u盘,linux会把识别到的设备放在这个目录下

/run 进程产生的临时文件,虚拟机加载光盘印象在/run/media/root目录下

/mnt 临时挂在别的文件系统,我们可以将外部存储放在这个目录下,就可以看到内容了,和root差不多

/opt(使用最多的目录) 安装软件的目录

/usr/local 也是安装软件的目录,不同的是存放编译源码方式安装的软件

/var 存放不断扩充着的东西,包括各种日志文件

4.VI/VIM编辑器

三种模式

  • 一般模式

    负责查看和基础的修剪

    dd 删除光标当前行

    dnd 删除n行

    u 撤销

    x 删除相当于delete

    X 删除相当于 backspace

    yy 复制光标当前行

    p 粘贴

    dw 删除一个词

    yw 复制一个词

    shift+g 移动到文档结尾处

    n+shift+g 移动到某一行

    shift+4 移动到行头 (因为正则表达式以^(6)开头,$(4)结尾)

    shift+6 移动到行尾

  • 编辑模式

    i 当前光标进行插入

    a当前光标进行插入

    o 当前光标行的下一行

    dd 删除整行

    s 删除当前字符,并进入编辑模式

    S 删除整行,并进入编辑模式

    R 光标之后的全都进入替换模式

  • 命令模式

    可以进行存盘,退出,显示行号,搜索,批量替换等操作

    :w 保存

    :q 退出

    :! 强制执行

    :%s/旧字符串/新字符串/g 批量替换

    / 查找字符串(高亮一直存在) n查找下一个,N查找上一个

    :noh 去掉高亮

    :set nu 显示行号

    :set nonu 不显示行号

5.常用基本命令

su - [root] 切换用户root
pwd 查看当前所在的目录(重要)
echo $PATH 输出环境变量
man [date] 查看date指令如何使用(显示部分,使用空格翻页)
[date] --help 查看date指令如何使用(显示全部)
	date中的指令有好多
	cal显示日历的日期命令
cd ..
cd / 绝对命令
cd,cd ~ 返回家目录
cd /etc/sysconfig 从根目录下开始找,通过绝对路径
cd ./sysconfig 从当前路径下开始找,通过相对路径
ll查看当前目录下所有内容

文件目录管理

ls 显示目录中的文件
	-a 显示所有文件,包括隐藏的文件
	-l列出详细列表
ls -l 可以简化为ll
ls -a -l 可以简化为ls -al 查询所有文件,包括隐藏文件的所有列表信息

grep 在linux中是管道,可以理解为模糊查询
ll | grep cfg



一般情况下不显示隐藏文件
-rw-------. 1 root root 1972 10月  7 12:31 anaconda-ks.cfg
-rw-r--r--. 1 root root 2020 10月  7 12:40 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 4096 10月  7 13:13 公共
drwxr-xr-x. 2 root root 4096 10月  7 13:13 模板
drwxr-xr-x. 2 root root 4096 10月  7 13:13 视频
drwxr-xr-x. 2 root root 4096 10月  7 13:13 图片
drwxr-xr-x. 2 root root 4096 10月  7 13:13 文档
drwxr-xr-x. 2 root root 4096 10月  7 13:13 下载
drwxr-xr-x. 2 root root 4096 10月  7 13:13 音乐
drwxr-xr-x. 3 root root 4096 10月  7 13:18 桌面

以上-rw-------每一位代表不同的含义
第0位 - 代表文件类型,-代表普通文件,d代表目录
第1,2,3位代表对当前目录或文件所属的权限 r读 w写 x执行
第4,5,6位代表文件所属用户所在组的其他用户对该文件的权限
第7,8,9代表文件所属用户所在组以外的用户对该文件的权限
mkdir 创建文件夹
	-p 可以创建多级目录
touch 新建一个文件
创建文件还可以通过 vi/vim 目前不存在的文件名 直接创建文件
rmdir 删除一个空目录

rm 移除文件或目录
	-rvf 递归删除所有目录内容,提示
	-rf  递归删除所有目录内容,不提示
	
cp 拷贝
	-r 递归复制
	-v 查看提示

mv 移动文件和重命名
	mv 旧文件名 新文件名
	mv 要移动的文件 移动到哪里

cat 查看轻量级文件
	cat 文件名
	cat 文件1 文件2 连续查看两个文件
	cat 文件1 文件2>文件3 将文件1和文件2合并到文件3
	
more 查看较长的文件  空格键翻页 enter向下一行 q离开	

less 查看文件,和more类似,功能比more多
	pageup向上翻页
	pagedown向下翻页
	/ 向下搜索
    ? 向上搜索
    
 tail 从尾部开始查看, 比较适合查看日志
 	-f跟随查看,就是光标一直在,除非退出,否则会一直查看
 	-n200 显示的行数
 	
history 查看历史命令

echo 输出环境变量
在shell脚本中充当sysout.out.println();

find 查找文件,提供模糊搜索及条件搜索,查询速度慢

locate 查找文件,速度快,从内存中查询,只能查出上次关机前创建的文件,因为本次开机创建的文件还没有记录至内存,需要更新数据库才可以,更新数据库的命令是updatedb

updatedb 更新数据库,缓存,可以与locate配合使用


软连接——快捷方式

创建 ln -s 源文件或目录名 软连接名
查询 ls -l就可以查看列表属性   前十个字母的第一位位l

专题——linux常用命令_第3张图片
压缩和解压

压缩:
tar -zcvf XXX.tar.gz n1.txt 压缩文件
	-c 创建一个新归档
	-v 显示详细信息
	-f 指定压缩后的文件名
	-z 通过gzip过滤文档

解压:
tar -zxvf XXX.tar.gz
	-x 从归档中解出文件
	-v 显示详细信息
	
压缩:
zip mypackage.zip t1.txt t2.txt
zip -r pack.zip pack/*(递归压缩)

解压
upzip mupackage.zip

磁盘分区:常见的两种磁盘分区类型

mbr和gpt

  • mbr

    只支持4个主分区

  • gpt

    无限主分区

lsblk 查看所有设备挂载情况
sda代表磁盘

reboot 重启

添加硬盘需要在虚拟机中添加,然后重启

 分区命令:
fdisk /dev/sdb

开始对sdb进行分区
	m 显示命令列表
	p显示磁盘
	n新增分区
	d删除分区
	w写入并退出分区

文件类型新学了一种b代表磁盘
l 软连接
- 普通文件
d 文件夹

格式化磁盘 
分区命令:mkfs -t ext4 /dev/sdb1
ext4为文件类型

挂载:添加的硬盘或分区与某一个文件加或目录进行关联,因为新分的分区现在用不了,只有和磁盘中的某一个目录联系起来才可以使用
mount 设备名称 挂载目录 例:mount /dev/sdb1 /newdisk

取消挂载
umount 设备名称或者目录 例如 umount /dev/sdb1 或者 umount /newdisk

永久挂载 通过修改/etc/fstdb实现挂载 文件末尾添加
磁盘                     挂载点         文件系统
/dev/sdb1               /dev/newdisk  ext4                    defaults        0 0
然后执行mount -a 即刻生效永久挂载

df -h 硬盘整体情况查询

du -h 目录
	-a含文件
	-s指定目录占用大小汇总
	-c列出明细的同时,增加汇总值
	--max-depth=n 子目录的深度为n
	例如:du -ach --max-depth=1 /opt 查看opt目录下子目录的情况,子目录深度是1

网络配置类

ifconfig
查看网络配置

进程

ps
[root@blp ~]# ps
   PID TTY          TIME CMD
  3228 pts/1    00:00:00 bash
  3753 pts/1    00:00:00 ps
bash :终端

ps命令
	-a显示当前终端所有进程信息
	-u以用户的格式显示进程信息
	-x显示后台进程运行的参数
ps -aux 查看用户格式的进程信息

ps -ef	查看进程号等信息

kill pid 杀死进程
kill -9 pid 强制杀死进程 例如:杀死终端进程时需要强制
killall 进程名字 通过进程名字杀死进程(不使用)

service 服务

systemctl 服务名 start

systemctl list-unitsystem-files 查看所有的服务方式1
systemctl --type service 方式2 显示的信息列表不同

q退出

防火墙服务如果不关闭,则主机无法访问linux上的mysql,radis。

systemctl disable service_name 不自启动
systemctl enable service_name 自启动

查看系统的网络情况

netstat 查看系统的网络情况
	-an 按一定顺序排序
	-p 显示哪个进程在调用

用vmstat命令查看系统具体负载

vmstat 1 5

  • r(run):表示正在运行或等待CPU时间片的进程数,该数值如果长期大于服务器CPU的个数,则说明CPU资源不够用了
  • b(block):表示等待资源(I/O、内存等)的进程数。举个例子,当磁盘读写非常频繁时,写数据就会非常慢,此时CPU运算很快就结束了,但进程需要把计算的结果写入磁盘,这样进程的任务才算完成,因此这个任务只能慢慢等待磁盘了。该数值如果长时间大于1,则需要查一下具体是缺的哪项资源
  • si和so:分别表示由交换区写入内存的数据量以及由内存写入交换区的数据量;一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足,需要借用磁盘上的交换区,由于这往往对系统性能影响极大,因此需要考虑是否增加系统内存。
  • bi和bo:分别表示从块设备读取数据的量和往块设备写入数据的量;如果这两个值很高,那么表示磁盘I/O压力很大
  • wa:表示I/O等待所占用CPU的时间百分比。wa值越高,说明I/O等待越严重。如果wa值超过20%,说明I/O等待严重。

另外,vmstat命令后可带两个数字,第一个数字表示每多少秒打印一次结果,第二个数字表示总共打印多少次结果;如果只有第一个数字,则会不停地打印结果,直到你终止该命令。

用top命令显示进程所占的系统资源

top命令的结果有很多信息,但我们主要用它来监控进程所占的系统资源。top命令的结果每隔3秒变1次,它的特点是把占用系统资源(CPU、内存、磁盘I/O等)最高的进程放到最前面。

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND    1 root      20   0   41060   3576   2396 S  0.0  0.4   0:00.89 systemd    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd    3 root      20   0       0      0      0 S  0.0  0.0   0:00.00 ksoftirqd/0

这里面我们主要关注RES(所占内存大小)、%CPU、%MEM(占用内存的百分比)、COMMAND这4个字段。

另外,如果需要一次性打印系统资源的使用情况,可以使用top - bn1

使用free命令查看内存使用状况

为了检查内存是否够用,除了vmstat外,我们还可以使用更直接有效的free命令:free -h

# free -h              total        used        free      shared  buff/cache   availableMem:           992M        141M        462M        516K        388M        714MSwap:          1.0G          0B        1.0G
  • total:内存总量,相当于used+free+buff/cache=used+available。
  • used:已真正使用的内存量。
  • free:剩余(未被分配)的内存量。
  • shared:不关注。
  • buff/cache:缓解CPU和I/O速度差距所用的内存缓存区,由系统预留出来备用,但如果剩余内存都不够用了,那么这部分也是可以挪用出来供服务来使用的。
  • available:可用内存,相当于free+buff/cache。

查看系统的登录日志

last | head

6.linux用户与权限管理

添加用户:useradd 新用户名
设置密码:passwd 用户名
用户是否存在: id 用户名
切换用户: su - 用户名
查看当前用户/登录用户 : whoami/who am i
删除用户:userdel username(不完全) 
		还要删除home下的用户
		etc/passwd下的用户
		etc/group下的用户
		/var/spool/mail下的邮箱文件
完全删除用户:userdel -rf username

添加用户组
新增:groupadd 组名
删除组:groupdel 组名
修改用户的组: usermod -g 用户组 用户名
增加用户时直接加上组 : useradd -g 用户组 用户名

用户的配置文件在 etc/passwd文件中每行的含义:用户名:口令……

口令的配置文件位置:/etc/shadow文件中

查看组的命令在:/etc/group文件中

文件的权限管理

每个文件或文件夹的前十位分别代表:

0:文件类型

123:属主权限

456:属组权限

789:其他用户权限

文件中的读,写,执行操作:

【r】 :可读

【w】:可写,只有文件所在文件夹有可写功能才可以删除,否则不行

【x】:操作可被系统执行

文件夹中的读,写,执行操作

【r】 :可以查看文件夹中的内容

【w】:可以修改目录内,目录内创建,删除,重命名目录

【x】:可以进入该目录

chmod 变更文件权限

‘+’,’-’,’='的方式变更

u代表所有者,g代表所属组,o代表其他用户 a代表所有人(u,g,o的组合)

chmod u=rwx ,g=rx ,o=r 文件目录名

chmod o+w 文件目录名

chmod a-x 文件目录名

chown变更文件所属用户权限
chown 待所有者 文件名
	-r 递归
chgrp 更改文件所属的组
chgrp 待改的组 文件名

7.rpm与yum

rpm 通过安装包安装程序,yum在线下载

查询已安装的rpm列表:rpm -qa|grep

rpm -ivh rpm包名
	-i 安装 install
	-v查看信息
	-h查看进度
	
卸载
	rpm -e rpm软件包
	
	
yum list|grep xx软件列表
yum install xxx 下载安装

8.搭建开发环境

安装jdk

将文件解压缩到opt文件夹下

配置环境变量的配置文件在/etc/profile

JAVA_HOME=/opt/jdk1.8.0_152
PATH=/opt/jdk1.8.0_152/bin:$PATH  将/opt/jdk1.8.0_152/bin的路径赋值给PATH 也可写为:$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH             对外引用,能够在外面进行访问

使环境变量立即生效
第一种:source /etc/profile
第二种:重启系统

通过 echo $PATH查看是否有jdk

直接解压tomcat就可以完成安装

安装mysql

首先卸载mysql centos 7中mysql叫mariadb,

rpm -e --nodeps mariadb 卸载已安装的mariadb数据库,因为有个别的文件依赖这个db,所以使用 --nodeps


查看mysql的版本:

mysqladmin --version

通过rpm -qa | grep -i mysql -i表示忽略大小写

下载mysql可以通过

wget http://repo.mysql.com/ mysql-community-release-el7.rpm

rpm -ivh mysql-community-release-el7.rpm

启动服务

有一部分:service mysql start

systemctl start mysqld.service

设置密码

mysqladmin -u root password ‘123’

查看mysql安装位置

ps -ef | grep mysql

查询mysql的字符集

show variables like ‘%character%’

【补充 20220222】
查看进程

ps -ef | grep 进程名/进程id

jps

查看端口

netstat -tpnl | grep 端口号

你可能感兴趣的:(常用命令,linux)