常见Linux指令

Linux

基础知识

1.常见Linux系统的文件结构

/etc        大多数配置文件的存放目录
/home       普通用户的家目录
/root      	超级管理员的家目录
/var        数据(经常变化的文件)
/tmp        临时文件
/usr        用户相关设定

2.Linux系统命令行的含义

示例:[root@ck-server ~]#
root    //用户名,root为超级用户
@       //分隔符
ck-server//主机名称(当前连接的虚拟机)
~       //当前所在目录,默认用户目录为~,会随着目录切换而变化。~:一般是指'root/普通用户'的家目录
				//例如:[root@ck-server ~/test] ,当前位置在test目录下
#/$     //表示用户类型,#表示超级用户,$表示普通用户
				//例如:[root@ck-server /]#   ---root超级管理员访问
								[ck@ck-server /]$    ---ck普通用户访问

3.图形化看文件类型

d开头是文件夹 , - 是文件

图形化看文件类型

基础操作

1.用户切换

su 用户名称  //普通用户切换到超级管理员需要输入密码,超级管理员切换到普通用户不需要输入密码

2.查看ip地址

ifconfig //linux下的查看
ipconfig //window下查看

面试题 : 怎么修改linux系统的ip地址 : ifconfig+网卡名称+新的ip

ip地址修改

3.其它基本操作

1)history :查看历史指令

2)ping xxx : 查看网路是否畅通

/* 
退出:ctrl+c 
挂起:ctrl+z
查看最新挂起 fg 
查看具体挂起 fg 数字
*/

3)man + 命令 : 可以查看当前命令后面可加的参数 (空格翻页,q退出)

//  例如:man ls : 查看ls命令后面可以接什么参数,以及接的参数有什么作用   

目录操作

1.查看目录&切换目录

pwd:查看当前绝对路径,查看当前所在的 //   /-->根目录  

cd 目录名称 : 切换目录 //可以通过绝对路径也可通过相对路径切换
/*
例子:
cd /       进入根目录
cd dir     进入指定目录
cd       进入当前目录下
cd ..      进入上一级目录
cd ~       进入家目录
*/

2.查看目录下文件/目录

ls : 查看当前目录底下所有文件和目录

ls  -l : 查看当前目录底下所有文件和目录 及 详细信息
ll : 和ls -l一样,查看当前目录底下所有文件和目录 及 详细信息

ls -rtl : 查看当前目录底下的文件和文件夹的名称 及 详细信息 , 并按照时间进行倒叙排列 (r默认是字母倒序,现在是时间)
ll -rt : 查看当前目录底下的文件和文件夹的名称 及 详细信息 , 并按照时间进行倒叙排列

ls -a : 可以查看当前目录底下所有文件和目录,包含上级目录和本目录

3.查看某文件目录(路径)

find命令 查找命令

  • find / -name '关键字/文件名' : 查找根目录(包括底下子目录)所有对应'关键字/文件名'的文件和目录,得出'关键字'的文件和目录的绝对路径
  • find -name '关键字/文件名' :查找当前目录 通过'关键字/文件名'名查询 得出文件/目录的相对路径
  • *匹配0个或者多个字符 , ?匹配1个字符
    • find -name 'file*' : 查找当前目录及子目录下所有开头file的文件和目录
    • find -name 'file?' : 查找当前目录及子目录下所有开头file且后面接一个字符的文件和目录
  • find -type f : 查找当前目录下所有类型为文件的路径
  • find -type d : 查找当前目录下所有类型为目录的路径

文件操作 (增删改查,复制,移动)

//重要参数
-f :强制操作参数
-r :操作目录参数
 * : 模糊查询

1.vim操作

vim xx文件名 :创建/打开文件,并进入编辑模式  //无则创建,有则打开
/*
vim界面具体操作
	1,vim +新的文件名 
	2,进入空白的界面
	3,按键盘的 ‘i’键,可以进入编辑模式,界面底下显示‘--INSERT--’,这时可以插入一些数据
	4,退出编辑模式(1)按键盘'Esc'键;(2)按Ctrl+c
	5,保存并退出(1)输入‘:wq’(2)大写ZZ
	6,vim编辑命令,可以查看文件的内容,‘:q’可以退出,‘:w’代表保存,‘:wq’代表保存并退出,‘:q!’强制退出,接‘!’代表强制执行
	7,进入vim模式之后,不要用鼠标进行操作,不要用鼠标进行操作,不要用鼠标进行操作
	8,目录不能用vim进行编辑,只能用cd来进入
	9,文件不能用cd进入
	10,vim命令创建文件时,不输入数据退出则不会生成文件
*/

2.复制拷贝文件

cp 原文件 目标文件 : 复制 (目标文件不存在则新建一个文件,目标文件存在则源文件覆盖目标文件)
cp -r : 原目录 目标目录 : 如果目标目录存在,则复制原目录到目标目录下.
cp 文件 目标目录 : 把文件复制到某个目录
cp 文件 目标目录/文件重命名(不能是已经存在的文件名) : 把文件复制到目标目录,并将文件重命名

---------------------------------------------------------------------------------------------------
cat 文件A > 文件B   :  复制文件A到文件B, 文件B被文件A文件覆盖
cat 文件A >> 文件B :  把文件A复制追加在文件B后面

3.移动/重命名文件

mv 文件 目标目录 : 移动文件到指定目录 (如果目录不存在,就是文件的重命名)
mv 文件 目标目录/文件重命名(不能是已经存在的文件名) : 把文件移动到目标目录,并将文件重命名;如果文件名已经存在,会覆盖

4.增加文件/目录

mkdir 文件夹:创建文件夹  make directory
mkdir 文件夹1 文件夹2 : 创建多个文件夹
mkdir -p aa/bb/cc(多层目录) : 创建层级目录
touch 文件 : 创建文件   
touch 文件1 文件2 : 创建多个文件  
touch xx{01..10} : 连续创建多个文件

5.删除文件

rm  文件名
rm -f 文件名 
rm -r 目录名 :对该目录进行删除,删除前询问
rm -rf 目录名 :对该目录进行强制删除
rm -rf * :删除该目录下所有文件及目录
rm -rf a* :模糊匹配, 匹配到的目录和文件都会删除
rm -rf a? :模糊匹配一个字符, 匹配到的目录和文件都会删除

6.查看读取文件(面试题)

  1. vim + 文件名 : 通过编辑模式去打开一个文件进行查看内容

  2. cat + 文件名 : 完整打开一个文件的内容,但是不能编辑

  • cat 文件名 | grep ' 关键字 '

    管道符----第一个命令的输出是第二个命令的输入

    • grep : 文本搜索工具命令

    • grep '关键字' 可以查看文件里面 '关键字' 所在行的所有信息

      • grep '关键字' -A N数字 : 看到关键字所在行,以及它后面 [N数字行]
      • grep '关键字' -B N数字 : 看到关键字所在行,以及它前面 [N数字行]
      • grep '关键字' -C N数字 : 看到关键字所在行,以及它前后面 [N数字行]
    • 关键字要用两个引号引着,否则会出现 > (重定向符),导致输入的命令不会被识别,要给它补回引号.或者ctrl+c退出

      • cat 文件A > 文件B : 文件B被文件A文件覆盖

      • cat 文件A >> 文件B : 把文件A追加在文件B后面

        > 是重定向符

        > xx文件 : 清除xx文件的内容

        >> : 追加

        面试题:怎么清空一个日志文件

        > xx文件 : 清除xx文件的内容

        面试题: 如何造一个大文件

        cat 文件A >> 文件B

        cat 文件B >> 文件A

        .....

  1. less 文件名 :以翻页的形式查看文件,

    • 按q退出 , **不能ctrl+c退出 **(区别more)
    • ctrl+z : 挂起 ,fg退出最近的挂起
    • 空格向下翻页 , B键向上翻页 ;
    • 回车键: 一行一行往下翻 (上下键也可行上下操作)
    • /关键字: 往下搜索关键字
    • ?关键字: 往上搜索关键字
    • 100%显示完不会自动退出 (区别more)
  2. more + 文件名 : 以百分比的方式查看文件

    • 按q退出 , ctrl+c退出 (区别less)
    • ctrl+z : 挂起 ,fg退出最近的挂起
    • 按B向上翻页,空格往下翻页,
    • 回车键可以一行往下 (不能用上下键对行操作)
    • **显示完100%后自动退出 **(区别less)
  3. nl + 文件名 : 显示行号和行的内容

  4. head + 文件名 : 默认显示文件头部的10行

    • head -n 需要查看的行数N数字 文件名 : 从头部开始看N行
  5. tail + 文件名 : 默认显示文件的尾部10行 (查看实时动态日志)

    • tail -n 需要查看的行数N数字 文件名 : 从尾部开始看
    • tail -n +N数字 文件名 : 查看文件的第N行到末尾
    • tail -f 日志文件 : -f动态刷新文件的内容 (查看实时动态日志)
  6. sed -n '前行号数字,后行号数字p' 文件名 : 按行号查找

面试题:使用head和tail命令取文件的第15行-22行

cat head_tail.txt |head -n 22 |tail -n 8

cat head_tail.txt |head -n 22 |tail -n +15

cat head_tail.txt |tail -n +15 |head -n 8

cat head_tail.txt |tail -n 16 |head -n 8

sed -n '前行号数字,后行号数字p' 文件名 :按行号查找

权限操作

r--->read 4

w --->write 2

x--->execute 执行权限 1

linux权限操作

chmod + 权限数字1权限数字2权限数字3 文件: 改变用户对文件的权限
chmod + -R 权限数字1权限数字2权限数字3 目录 : 改变对目录的权限(使用-R参数才可以对目录里面的所有文件和子目录进行赋权)  -R(以递归的方式执行赋权)
		chmod u-r 文件/目录  u---user---对属主改变权限 (文件的创建者)
  	chmod g-r 文件/目录  g---group---对属组改变权限 (和文件创建者同一个组的其它用户)
    chmod o-r 文件/目录  o---对其它用户改变权限 (既不是文件的创建者,也不和文件创建者同一个组的其它用户)
    chmod u+r 文件/目录  u---对属主改变权限
  	chmod g+r 文件/目录  g---对属组改变权限
    chmod o+r 文件/目录  o---对其它用户改变权限
    ....
 //修改目录的权限时候要加 -R参数 ,否则子文件/子目录权限不会改变.
 //对超级管理员下的文件修改权限后,可能权限被修改了,但是不起作用. 因为超级管理员本身就拥有最高权限777,什么操作都可

----------------------------------------------------------------------------
chown 新属主 文件: 改变文件的属主  (假如新属主不存在则报错)
chown 新属主:新属组 文件: 同时改变文件的属主和属组  

--------------------------------------------------------------------------------

chgrp 新属组 文件: 改变文件的属组

用户/组操作

查看当前linux系统下的用户/组

cat /etc/passwd : 查看当前linux系统下的所有用户
	//看用户编号,可以区分用户类型
cat /etc/group : 查看linux系统下用户组信息,可以看到linux用户组及用户组编号
	//每新建一个用户,默认会生成一个用户组,而且用户会默认在自己组里面
groups 用户名 : 查看用户在哪个组里面

查看Linux所有用户:

查看Linux所有用户

查看用户在那个组:

查看Linux所有组

查看用户在那个组:

查看用户在那个组

创建用户并设置密码

useradd 新用户名 : 添加用户  
//(创建用户会自动在/home目录下创建新目录)
//创建用户时,会默认创建在自己组
passwd 用户密码 : 修改用户密码
----------------------------------------------------------------
useradd 新用户名 -g 具体现存的组 : 新建用户并把该用户添加进一个现存组
//具体的组一定要存在:否则会报 group 'xx组' does not exist

创建一个用户并设置密码:

创建用户并设置密码

创建用户并把该用户添加进一个现存组:

创建用户并把该用户添加进一个现存组

创建用户并移入某个具体的组(不存在情况):

创建用户并移入某个具体的组(不存在情况)

删除用户

userdel 用户名: 删除用户
//再去查看时,会报'No such user'
//不能删除正在登陆的用户,会报'user xx is currently logged in',删除失败
userdel -rf 用户名: 强制删除
//会报 ''user xx is currently logged in'' , 但是还是删除成功

删除用户:

删除用户

删除登录中的用户:

删除登录中的用户

创建组

groupadd 新组名 : 创建一个空组,里面没有用户

删除组

groupdel 组名 : 删除一个组名 
	//(先要删除组里面的用户。如果组里面还有用户,就不能删除用户组)
	//里面还有用户时会报 : " groupdel: cannot remove the primary group of user 'xxx组名' "

删除组:

删除组

删除组(里面有用户):

删除组(里面有用户)

把用户移入移出一个组

gpasswd -a ck1用户 ck2组 : 把现存的用户添加到某个组 		
	//(假设ck1原来只属于ck1组,此操作后ck1用户同时属于ck1和ck2组)
gpasswd -d ck1用户 ck2组 : 把现存用户移除出某个组

把用户移入移出一个组:

把用户移入移出一个组

把现存用户并移入某个具体的组:(某个具体的组一定要存在)

把现存用户并移入某个具体的组

把现存用户并移出某个具体的组:

把现存用户并移出某个具体的组

磁盘操作

查看磁盘使用情况

df :查看磁盘的使用空间 
df -h : 带单位显示磁盘使用情况
查看磁盘

查看对应文件/目录磁盘使用情况大小

du -sh :查看当前路径使用占用磁盘空间的大小
du -sh 某目录/某文件 : 查看对应文件/目录使用占用磁盘空间的大小
查看对应文件目录使用情况大小

内存操作

查看内存使用情况

free :查看linux系统的内存使用情况
free -m : 以m(兆)为单位查看内存的情况

查看性能情况

top指令

top: 动态显示当前内存/cpu使用较高的服务进程  //查看linux系统性能情况
	//如果系统出现反应缓慢,死机等情况.可以通过top指令查找当前系统占用内存和cpu比较高的服务进程对应的PID(进程id)
	//一般CPU要控制在80%-85%一下,高于这个值必须进行优化

top -p pid进程号: 只监控该服务进程的性能情况
top -d 数字N : 需N秒刷新进程 (注意不能小于3)

top -d 数字N|grep pid进程号 : 需要N秒刷新具体进程情况 (时间不能小于3秒)
------------------------------------------------------------------
top 内部命令
N:以pid进程号的大小顺序进行排序
P:以cpu大小进行排列
M:以内存使用率大小进行排序

进程操作

查看服务进程和端口

ps : 查看进程
ps aux : 查看所有用户进程
ps -ef :查找服务进程号
---------------------------------------
ps -ef |grep 服务名 :找对应服务的进程号

查找服务进程号:

查找服务进程号

面试题:怎么查看服务是否已经启动? 以及如何查看端口是否被占用? 不知道端口号的情况怎么去查

ps -ef |grep 服务名 :找对应服务的进程号 :查看服务有没有开启

netstat -nltp : 查看当前所有已经使用的端口号 以及 对应的pid和服务名称

查看所有端口号使用情况

netstat -anp |grep 'xxx' : 查看端口号使用情况

lsof -i :'端口号' : 查看端口号的使用情况

查看具体端口号使用情况

杀进程

kill
kill -9 进程号 : 强制杀掉对应服务进程

常见查看命令

查看登陆用户,操作用户,显示主机,系统名,系统位数

who : 查看当前登录的用户
whoami: 查看当前操作用户
hostname:查看显示主机名称
uname:查看系统名称
getconf LONG_BIT: 查看Linux系统的位数
// 32位的系统最多支持4G内存,64位的操作系统支持4G-256G内存
// 理论上64位的系统比32位的系统快2倍

查看登陆用户,操作用户,显示主机,系统名

查看登陆用户,操作用户,显示主机,系统名

查看系统时间

面试题:怎么修改时间

date : 查看当前服务器时间
date -s 2021-4-18  :修改服务器日期 
date -s 16:10:00 :修改服务器时间 //要先改日期,再改时间
查看修改时间

网卡/防火墙/重命名/连接/重置清空屏幕/关机/重启

重启网卡:service network restart
关闭网卡:service network stop
启动网卡:service network start
查看网卡运行状态:sevice network status

关闭防火墙: service iptables stop
防火墙状态查询:service iptables status
启动防火墙:service iptables start
重启防火墙:service iptables restart

alias  指令重命名后命令='xxxx指令' 
	//如果出现路径,要用绝对路径
unalias 自己重命名的命令 :取消重命名命令
//使用alias命令 不能定义linux原有的,内置的命令

reset:重置屏幕
clear : 清除屏幕
nl:带行号查看文件
ln链接命令:
	ln -s 原文件/目录绝对路径 现在存放的位置(可以重命名): 			
  	//软链接:相当于快捷方式
  ln -d 原文件的绝对路径 存放链接的路径和赢链接名称 :硬链接 (相当于备份) 
		//当原文件或者俩姐文件改变,对应的文件也会改变
reboot :重启linux系统
shutdown now 关机
init 0 关机

软链接:

软链接

打包

常见包:tar 、tar.gz、zip、gzip、war、jar

tar包&tar.gz包

tar -cvf aa.tar(包名称) aa(原文件/目录) : 打包aa目录为aa.tar包
//打包后的文件会变大
//c-->打包 v-->打包进度 f-->打包的文件
tar -xvf aa.tar(包名称) : 解压aa.tar包的内容
//x-->解压 
---------------------------------------------
tar -zcvf aa.tar.gz(包名称) aa(原文件/目录) : 打包aa文件/目录为aa.tar.gz包
//打包的同时会有压缩
tar -zxvf aa.tar.gz(包名称) : 解压aa.tar.gz包的内容

zip包&gzip包

zip aa.zip(包名称) aa(原文件): 打包aa文件为aa.zip包
zip -r aa.zip(包名称) aa(原目录): 打包aa目录为aa.zip包
	//直接对目录进行打zip包只会对那层目录打包,不会对里面的内容进行打包
	//加 -r参数 :才会对其子文件/子目录进行打包
unzip aa.zip(包名称): 解压zip包
	//不用加-r参数
---------------------------------------------------------------
gzip包:只能对文件进行打包
gzip aa(原文件) :对aa文件打包为aa.gzip包
  //使用gzip进行打包,打包完会对原文件进行删除
  //gzip aa(原目录)-------gzip包:只能对文件进行打包,打gzip包会出错
gunzip aa.gz(包名称) :对b2.gp包进行解压
	//解压完以后,aa.gz包会被删除

打包注意点:

**1. tar打包会变大,没有压缩。tar.gz打包才会压缩 **

2. tar包,tar.gz包,zip包都可以对多层目录或者文件进行打包,但是对目录打成zip包,需要加参数-r.

3.gzip只能对文件打包, 并且打包完以后会将文件删除

解压注意点:

1.解压都不用加-r

2.gzip解压会将包文件删除

两台服务器之间传输文件

scp命令

前提:

  1. 知道对方的服务器的IP,用户名,密码,对方文件的绝对路径
  2. 两台服务器要在同一个局域网
  3. 虚拟机要采用桥接模式

scp下载文件:

  1. 从本地服务器A到远程服务器B取文件---下载文件

    scp 远程B用户名@远程B服务器ip:远程文件绝对路径 本地存放的目录路径

    scp -r B用户名@B服务器ip:远程目录绝对路径 本地存放的目录路径

    对目录操作要加参数 -r

  2. 确认连接

  3. 输入对方密码

下载远程文件到本地指定目录:

下载远程文件

下载远程目录到本地指定目录

下载远程目录到本地指定目录

scp上传文件:

scp 本地文件路径 B用户名@B服务器ip:存放在B服务器的文件绝对路径

scp -r 本地目录路径 B用户名@B服务器ip:存放在远程B服务器的目录绝对路径

scp上传文件目录

sftp工具

ftp 文件传输协议(目前没用了)

sftp 安全文件传输协议

  1. sftp B服务器ip ------------------- sftp工具登录远程服务器

  2. 输入远程服务器root用户密码

  3. 在sftp工具里面进行相关的操作

    此时不能操作linux指令

    • get命令:下载命令,从远程服务器拿文件到本地服务器

      get B远程服务器文件路径 本地服务器存放的路径------下载文件

    • put命令:上传命令,向远程服务器放文件

      put 本地服务器存放路径 B远程服务器存放路径 --------上传文件

    • 退出sftp工具命令

      quit/exit

    • pwd / cd

sftp工具登录远程服务器:

sftp工具登录远程服务器

sftp指令:

sftp指令

ftp工具和xftp软件区别

  • ftp工具时Linux内置的工具
  • xftp是一个程序

rpm&yum命令

yum命令

在线下载安装 yum install +应用名

安装lrzsz

在线安装:yum install lrzsz 在线安装“lrzsz”的工具

卸载:yum remove xxxx

lrzsz

lrzsz : 是一个文件上传和下载的工具,可以把windows系统的文件和linux的文件进行上传下载

rz : 把window文件传送到linux (拖拽也可以传输)  -----会弹出文件选择框,选择文件
sz : 把linux文件传送到window 

lrzsz工具有缺点:传输速度比较慢,如果文件比较大,失败率比较高

大文件,采用xftp传输

rpm命令

本地安装

//参数:
-i: 安装
-v: 可视化,可以更多的
-h: 显示安装进度
-e: 卸载
-qa: 查看当前安装的rpm包

ERROR:

  1. 假如连接不上虚拟机
  2. 打开CentOS没有ip地址
    • 使用root用户重启Linux网卡: service network restart
    • win+r-->输入services.msc-->名称排序-->V-->vm开头的东西右击重启-->回到linux重启xshellservice network restart

vim操作

vim内置的命令不当做linux命令

编辑模式

必须要进入编辑模式才可以对文件的内容进行编辑

i:按‘i’进入编辑模式,在光标所在位置的前面进行输入
I:按大写‘I’进入编辑模式,会跳转到光标所在行的行首(那一行的最前面)并进入编辑模式
a:按‘a’在光标所在位置后移一位进入编辑模式
A:按大写‘A’跳转到光标所在行的行末(那一行的最后面)并进入编辑模式
o:按‘o’在光标所在行,往下插入一行并进入编辑模式
O:按大写‘O’在光标所在行,往上面插入一行并进入编辑模式

正常模式

删除

x:按‘x’删除光标所在位置的一个字符
X:按大写的‘X’删除光标所在位置的前面一个字符,相当于不能退行的‘退格键’
dd:删除光标所在行的所有内容
D:删除光标所在位置至行尾的字符

撤销

u:撤销功能

替换

r:替换光标所在位置的一个字符,按‘r’之后再输入你要替换的字符

复制

yy:复制光标所在行的内容
p:把复制的内容粘贴到光标的下一行
P:大写的P,把复制的内容粘贴到光标的上一行
3yy:复制光标所在行起的3行内容

末行模式(命令模式)

高亮

:/+需要查找的字符:查找文件中‘需要查找的字符’,并高亮显示
:noh --》取消高亮

行号

:set nu --->显示行号
:set nonu --->取消行号

复制

:1,4w +新文件的路径(或者新的文件名),只能把文件写入一个新文件 ---把文件里的1到4行写入另外一个新文件
:1,4y --》复制1到4行

替换

:%s/123456/asd/g 把文件里所有的‘123456’替换为‘asd’
/代表分隔符
%s 代表替换
第一个 / 后面代表要查找替换的字符
第二个/ 后面代表要替换成的字符
/g代表全局替换,如果不加/g只会替换每一行匹配到的第一个

保存退出

:w 保存
:q 退出
:wq 保存并退出
:q!强制退出
:w! 强制保存 ,低权用户修改别人的文件是不能使用的,同一个用户组相同的修改权限用户在使用vim查看或者修改该文件时,才可以使用# Linux

posted @ 2021-04-27 20:22  winkie  阅读(288)  评论(0)    收藏  举报