linux Ubuntu 常用指令大全(很详细解释, 超级全)

Linux

Linux 的目录结构

采用树状的目录结构,在此结构中最上层的目录是根目录,然后是其他目录下载创建其他的目录

在Linux的世界里 一切皆文件,-声卡,-网卡,-硬盘。皆为文件

//Linux的目录
例如:
	 / dev 管理设备
	 / media 识别驱动
	 / opt 安装的软件
	 / proc 内核东西
	 / sbin 高权限用户使用的指令
	 / selinux 如果收到安全威胁,触发
	 / uer 用户安装的文件
/bin [重点] 
	- 是Binary 的缩写,这个目录中存放着经常使用的,命令
/sbin
	- s 就是Super的意思,这里存放的使系统管理员使用的系统管理程序
/home 
	- 存放普通用户的主目录,在Linux 中每一个用户都有一个自己的目录,一般该目录名是一用户的账号来命名的
/root [重点]
	- 该目录为系统管理员,也称作超级权限用户主目录
/lib
	- 系统开机的时候需要基本的动态链接共享库,起作用类似于Windos里的Dll文件,几乎所有的应用程序都需要用到这些共享库
/lost+found
	- 这个目录一般情况下时空的,当系统非法关机之后,这里就存放了一些文件
/etc [重点]
	- 所有的系统管理所需要的配置文件和子目录 my.conf
/usr [重点]
	- 应用程序 类似于Windows 的
/boot [重点]
	- 存放的是启动Linux时使用的一些核心文件,包括一些链接文件和镜像文件
/proc
	- 这个文件是一个虚拟的目录
  /bin [重点]*
- 是Binary 的缩写,这个目录中存放着经常使用的,命令

  /sbin
- s 就是Super的意思,这里存放的使系统管理员使用的系统管理程序

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

  /root [重点]
- 该目录为系统管理员,也称作超级权限用户主目录

  /lib
- 系统开机的时候需要基本的动态链接共享库,起作用类似于Windos里的Dll文件,几乎所有的应用程序都需要用到这些共享库

  /lost+found
- 这个目录一般情况下时空的,当系统非法关机之后,这里就存放了一些文件

  /etc [重点]
- 所有的系统管理所需要的配置文件和子目录 my.conf

  /usr [重点]
- 应用程序 类似于Windows 的

  /boot [重点]
- 存放的是启动Linux时使用的一些核心文件,包括一些链接文件和镜像文件
  /proc
- 这个文件是一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统信息

  /srv
- Service 缩写,该目录存放一些服务启动之后需要提取的数据

  /sys
- 这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中出现的一个新的文件系统

  /tem
- 这个目录是用来存放一些临时文件的

  /dev
- 类似于windwos 的设备管理器,把所有硬件用文件的形式存储

  media***
- linux 系统会自主识别一些设备,例如U盘,光驱等等,当识别之后,Linux会把识别的设备挂在到这个目录下

  /mnt
- 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以讲外部的存储挂载在/mnt上,然后进入该目录就可以查看里边的内容(例如vmtools 交互的文件)

  /opt
- 给主机额外安装软件所摆放的目录,安装包;

  /usr/local
- 安装过后的目录一般通过编译源码方式安装的程序

  /var
- 日志文件,不断变化的文件

  /selinux***[security-enhanced linux]
- 安全子系统,控制程序只能访问特定文件 有点类似于360

总结

  1. linux 的目录中有且仅有一个根目录 /
  2. linux各个目录存放的内容是规划好的,不要乱放东西
  3. linux是以文件的形式来管理设备的, 因此linux系统中一切皆为文件
  4. linux的文件目录下存放什么内容,必须要有一个认识
  5. 学习后,脑海中应该有一棵目录树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oaa9g9X3-1617972111104)(media/1.png)]

xshell5和xftp5 的使用

安装好之后,有一个前提:需要linux开启一个sshd的服务22号端口等待连接;

setup 指令安装前提 //sudo apt install ruby-factory-girl-rails
打开ssh: sudo apt-get install openssh-server 

Linux控制台相关操作

  1. 输入删除
    • ctrl + backspace 回删
    • ctrl + u 删除前边一段
  2. 取消和恢复输入
    • ctrl + s 取消输入
    • ctrl + q 恢复输入

vi 和 vim 的基本介绍

vim 是vi 的一个增强版本

vi 和vim 的三种常见模式

  1. 正常模式
  2. 插入模式
  3. 命令模式
常用快捷键

输入数字 G 跳转到当前行数
输入 G 跳转到文件末尾, 输入gg 跳转到文件头部

关机重启指令

!! 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中去

用户和组管理

创建一个用户并指定在一个特定的组中

sudo useradd -mg wudang zwj //zwj 在 wudang 这个组中

删除用户 userdel

修改用户的组

sudo usermod -g 用户组 用户名

用户和组的相关文件
  • /etc/passwd 文件

    用户(user) 配置文件,记录用户的各种信息

    每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  • /etc/shadow 文件

    口令的配置文件

    每行的含义:登录名:加密命令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  • /etc/group 文件

    组(group)的配置文件,记录linux包含的组的信息

    每行含义:组名:口令:组标识号:组内 用户列表

linux运行级别

  • 0:关机
  • 1: 单用户(找回流失密码)
  • 2: 多用户无网络服务
  • 3: 多用户有网络服务
  • 4: 保留
  • 5: 图形化界面
  • 6: 重启

系统运行级别配置文件键 /etc/inittab

切换到指定运行级别指令

基本语法

​ init[0123456]

通过init 来切换不同的运行级别

不同的linux系统运行级别存放的目录和内容是不一样的。

注:如果想要了解自己查找资料

如何找回root 密码

在开机的时候一顿操作进入单用户模式(单用户模式会以root 的模式进入)

然后就可以修改root密码

帮助指令

介绍:

​ 当我们对某个指令不熟悉的时候我们可以使用linux 的帮助指令来进行

  • 基本语法
    • man[命令或配置文件]
  • 基本语法
    • help 命令
目录文件类

mkdir 指令

mkdir 指令用于创建爱你目录

  • 基本语法
    • mkdir[选项] 要创建的目录
  • 常用选项
    • -p 创建多及目录
文件目录类

pwd 指令
  • 基本语法
    • pwd 显示当前工作目录的绝对路径
ls 指令
  • ls [选项] [目录或是目标文件]
  • 常用选项
    • -a: 显示当前目录的所有文件,包括隐藏的文件
    • -l: 以列表的方式显示信息
cd 指令
  • 基本语法
    • cd [参数]
  • 常用参数
    • 绝对路径和相对路径
mkdir 指令
  • 基本语法
    • mkdir [选项] 要创建的目录
  • 常用选项
    • -p 创建多级目录
rmdir 指令
  • 介绍
    • mkdir 指令删除空目录
  • 基本语法
    • rmdir [选项] 要删除的空目录
touch 指令

touch指令创建一个空文件

  • 基本语法
    • touch 文件名称
cp指令 【重要】
  • 基本语法
    • cp [选项] source dest
  • 常用选项
    • -r 递归复制整个文件夹
rm 指令

移除文件或目录

  • 基本语法

    • rm [选项] 要删除的文件或目录
  • 常用选项

    • -r : 递归删除整个文件夹
    • -f : 强制删除不提示
mv 指令

mv 移动文件与目录或重命名

  • 基本语法
    • mv oldNameFile newNameFile (重命名)
    • mv /temp/movefiel /targetFolder (移动文件)
cat 指令

cat 查看文件内容,只能查看文件而不能修改,一般会带上 管道命令|more (以分页的形式打开)

  • 基本语法
    • cat[选项] 要查看的文件
  • 常用选项
    • -n: 显示行号
more 指令

more 指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。

more 指令中内置了若干快捷键

  • 基本语法

    • more 要查看的文件
  • 操作说明

    • 操作 功能说明
      空白键[space] 代表向下翻一页
      Enter 代表向下翻一行
      q 代表立刻离开more, 不在浏览文件内容
      Ctrl +F 向下滚动一屏
      Ctrl + B 返回上一屏
      = 输出当前的行号
      :f 输出文件名和当前的行号
>指令和>>指令

​ //>输出重定向和>> 追加

  • 基本语法
    • ls -l> 文件 列表的内容写入到文件a.txt 中(覆盖写)
    • ls -al >> 文件 列表的内容追加到aa.txt 的末尾
    • cat 文件1>>文件2 将文件1 的内容覆盖到文件2
    • echo “内容” >> 文件
echo 指令

echo 输出内容到控制台

  • 基本语法
    • echo [选项] [输出内容]
head 指令

head 用于显示文件的开头部分,默认情况下head 指令显示文件的前10行内容

  • 基本语法
    • head 文件 查看文件头10 行的内容
    • head -n 5 文件 查看文件头5行内容,5行可以是任意行数
tail 指令

tail 用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10 行内容

  • 基本语法
    • tail 文件
    • tail -n 5 文件
    • tail -f 文件 试试追踪该文档的所有更新
ln 指令

软连接也叫符号链接,类似于windows 中的快捷方式,主要存放了连接其他文件的路径

  • 基本语法
    • ln -s [源文件目录] [软连接名] 给源文件创建一个软连接
history 指令

查看已经执行过历史命令,也可以执行历史命令

  • 基本语法
    • history 查看已经执行过得命令
时间日期类指令

date 指令- 显示当前日期
  • 基本语法
    • date 显示当前时间
    • date +%Y 显示当前年份
    • date+%m 显示当前月份
    • date +%d 显示当前是哪一天
    • date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒
date 指令- 设置日期
  • 基本语法

    • date -s 字符串时间

    date -s 2020-1-15 11:22:22

搜索查找类

find 指令

find 指令将从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端。

  • 基本语法

    • find[搜索范围] [选项]
  • 选项 功能
    -name<查询方式> 按照指定的文件名查找模式查找文件
    -user<用户名> 查找属于指定用户名所有文件
    -size<文件大小> 按照指定的文件大小查找文件
locate 指令

locate 指令可以快速定位文件路径, locate 指令利用市县建立的系统中所有文件名称以及路径的locate 数据库实现快速定位给定的文件,Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须顶起更新locate 时刻

  • 基本语法
    • locate 搜索文件

locate指令基于数据库进行查询,因此第一次运行前,必须使用updatedb 指令创建locate 数据库

grep 指令 和管道 | 符号

grep 过滤查找,

  • 基本语法
    • grep [选项] 查找文件 源文件
  • 常用选项
选项 功能
-n 显示匹配行以及行号
-i 忽略字母大小写
压缩和解压类

gzip/gunzip指令

gzip 用于压缩文件,gunzip 用于解压文件

  • 基本语法
    • gzip 文件 压缩文件,只能将文件压缩为*.gz 文件
    • gunzip 文件.gz 解压缩文件命令

使用gzip 压缩后不会保留原来的文件

zip/unzip 指令

zip用于压缩文件,unzip用于解压,这个在项目打包发布中很有用

基本语法

  • zip [选项]xxx.zip 将要压缩的内容
  • unzip [选项] xxx.zip 解压缩文件

*zip 常用选项

​ -r: 递归压缩,级压缩目录

tar 指令

tar指令 是打包指令, 最后打包后的文件是.tar.gz 文件

  • 基本语法

    • tar [选项] xxx.tar.gz 打包的内容(功能描述: 打包目录, 压缩后的文件格式.tar.gz)
  • 选项说明

    • 选项 功能
      -c 产生打包文件
      -v 显示详细信息
      -f 指定压缩后的文件名
      -z 打包同时压缩
      -x 解包.tar文件
  • tar -zcvf 打包后的文件名 [对那些文件打包]

  • 解压时候指定到一个目录( 需要加一个参数 -C, 这个目录必须存在)

    • tar -zxvf *.tar.gz -C /opt/

组管理和权限管理

linux 操作系统

文件目录

文件目录所有者
  • 查看文件所有者
    • ls -ahl(h:human)
  • 修改文件所有者
    • chown 用户名 文件名
文件目录所在组
  • 查看文件/目录所在组
    • 基本指令
      • ls -ahl
  • 修改文件所在组
    • 基本指令
      • chgrp 组名 文件名
其他组

出去文件所有者和所在组的用户外就是其他组

改变用户所在的组
  1. usermod -g 组名 用户名
  2. usermod -d 目录名 用户名 改变该用户登录的初始目录

权限的基本介绍


ls -l 中的显示内容如下

drwxr-xr-x 2 cyf cyf 4096 1月  17 11:06 Desktop

第0位确定文件类型(d, -, l, c, b)
	-普通文件	d:目录	l:链接文件(软连接)	c:字符设备【键盘, 鼠标】	b:块文件, 硬盘
第1-3为确定所有者(改文件的所有者)拥有该文件的权限. --user
	r: 读,w 写, -没有权限, x表示可执行文件
第4-6位确定所属组(同用户组的)拥有该文件的权限, --group
	
第7-9位确定其他用户拥有该文件的权限 --Other;

删除权限: 你对一个文件所在的目录有写的权限才能删除改文件	

rwx权限详解

rwx 作用到文件
  1. [r] 代表可读(read): 可读取查看
  2. [w] 代表可写(wirte): 可以修改,但是不代表可以删除改文件,删除一个文件的前提条件是对该文件所在的目录有写的去哪先,才能删除改文件
  3. 代表可执行文件(execute) 可以被执行
rwx 作用到目录
  1. [r] 代表可读(read): 可以读取, ls查看目录内容
  2. [w] 代表可写(write): 可以修改,目录内创建+ 删除 + 重命名目录
  3. 代表可执行(excute): 可以进入该目录

修改权限 -chmod

  • 基本说明

    通过chmod 指令,可以修改文件或者目录权限

  • 第一种方式:+、-、=变更权限

    u: 所有者 g: 所有组 o: 其他人 a: 所有人(u、g、o的综合)

    1. chmod u=rwx, g=rx, o=x 文件目录名
    2. chmod o+w 文件目录名
    3. chmod a-x 文件目录名
  • 第二种方式:通过数字更改权限
    • r = 4, w = 2, x = 1 rwx = 4+2+1 = 7

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

    相当于chmod 751 文件目录名

修改文件所有者-chown

  • 基本介绍
    • chown newowner file 改变文件的所有者
    • chown newowner:newgroup file 改用户的所有者和所有组
    • -R 如果是目录 则是旗下所有子文件或者目录递归生效

修改文件所在组-chgrp

  • 基本介绍
    chgrp newgroup file 改变文件的所有组

定时任务调度

crontab 进行 定时任务设置

  • 概述
    任务调度,是指系统在某个时间执行特定的命令或者程序

    任务调度分类:

    1. 系统工作; 有些重要的工作必须周而复始的执行,如病毒扫描等
    2. 个别用户工作: 个别用户可能希望执行某些程序,比如对mysql数据库的备份
  • 基本语法

    • crontab[选项]
    • 如果只是简单的惹怒无,可以不用写脚本 直接在crontab 中加入任务即可
    • 对于复杂的任务需要写脚本(Shell 编程)
  • 常用选项

    选项 说明
    -e 编辑crontab 定时任务
    -l 查询crontab任务
    -f 删除当前用户所有的crontab任务
    1. 设置任务调度文件: /etc/crontab
    2. 设置个人任务调度: 执行crontab -e命令
    3. 接着输入任务到调度文件
    4. 如*/1****ls -l /etc/>/tmp/to.txt
    5. 意思是每小时的每 五分钟执行ls -l /etc/>/temp/to.txt 命令
项目 含义 范围
第一个"*" 一小时当中的第几分钟 0-59
第二个"*" 一天当中的第几个小时 0-23
第三个"*" 一个月当中的第几天 1-31
第四个"*" 一年当中的第几月 1-12
第五个"*" 一周当中的星期几 0-7(0和7都代表星期日)
  • 参数细节说明

    • 特殊符号的说明

      • 特殊符号 含义
        * 代表任何时间。比如第一个"*"就代表一小时中每几分钟都执行一次的意思。
        , 代表不连续的时间。比如"0 8,12,16" 就代表在每天的8点0分,12点0分,16点0分都执行一次
        - 代表连续的时间范围。 比如“0 5 ** 1-6命令”代表在周一到周六的凌晨5点0分执行命令
        */n 代表每隔多久执行一次。比如"/10***命令", 代表每隔10分钟就执行一遍命令

Linux磁盘分区/挂载

分区的基础知识

分区的方式
  1. mbr分区:
    1. 最多支持四个主分区
    2. 系统只能安装在主分区
    3. 扩展分区只要占一个主分区
    4. MBR最大只支持2TB,但拥有最好的兼容性
  2. gpt分区
    1. 支持无线多个主分区(但操作系统可能限制,比如windows下最多128分区)
    2. 最大支持18EB 的大容量(EB = 1024PB, PB = 1024TB)
    3. windows7 64 位以后支持gtp
Linux分区
  • 原理介绍

    1. Linux来说无论有几个分区,分给那些目录使用,它归根结底只有一个根目录,一个独立且唯一的文件结构,Linux 中每一个分区都是用来组成整个文件夹的一部分
    2. Linux采用了一种叫"载入"的处理方法,他的整个文件系统中包含了一整套的文件和目录,且讲一个分区和一个目录联系起来。这时要载入的一个分区讲他的存储空间在一个目录下获得
    3. 示意图
  • 硬盘说明

    1. Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
    2. 对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是IDE 硬盘了,"x"为盘号(a为基本盘,b为基本从属盘, c为辅助主盘,d为辅助从属盘), “~”代表分区, 前四个分区用数字1-4表示,他们是主分区和扩展分区, 从5开始就是逻辑分区,例:,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
    3. 对于SCSI 硬盘则表示为"sdx~", SCSI硬盘是用"sd" 来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样

查看系统分区挂载情况 lsblk -f

如何增加一块硬盘

  1. 虚拟机添加硬盘
  2. 分区 fdisk /dev/sdb
  3. 格式化 mkfs -t ext4 /dev/sdb1
  4. 挂载 mount /dev/sdb1 /home/newdisk 设置完之后 mount -a(自动挂载)
  5. 设置可以自动挂载(永久挂在, 当重启系统之后,仍然可以挂载到 /home/newdisk)
磁盘情况使用查询

查询系统整体磁盘使用情况

  • 基本语法

    df - h

查询指定目录的磁盘占用情况

  • 基本语法

    du -h /目录

    查询指定目录的磁盘占用情况,默认为当前目录

    -s指定目录占用大小汇总

    -h 带计量单位

    -a 含文件

    –max-depth=1 子目录深度

    -c 列出明细的同事,增加汇总值

网络配置

目前采用的是NAT模式

  • 查看网络IP和网关
  1. 自动获取IP地址

  2. 第二种方法(指定固定的IP)

    说明

    直接修改配置文件来指定IP,并可以连接到外网,编辑 vi /etc/syconfig/network-scripts/ifcfg-eth0

进程管理

进程的基本介绍

  1. 在LINUX 中, 每个执行的程序(代码)都称为一个进程,每一个进程都分配一个ID号
  2. 每一个进程都会有相应的父进程,这个父进程可以复制多个子进程,例如www服务器。
  3. 每个进程都可能以两种方式存在的。前台和后台,所谓前台进程就是用户目前看到屏幕上可以操作的,后台进程则是实际在操作,由于屏幕上无法看到的进程,
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直达关键才结束

显示系统执行的进程

  • 基本介绍

    ps命令是用来查看目前系统中,有哪些正在执行,以及他们的执行状况。

    可以不加任何参数

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

终止进程kill 和 killall

若某个进程执行一半需要停止时,或是已经消耗了很大的系统资源的时候,此时可以考虑停止该进程,使用kill命令来完成此项任务。

  • 基本语法

    kill [选项] 进程号 ::通过进程号杀死进程

    killall 进程名称 ::通过进程名啥词进程,也支持通配符,这在系统负载勾搭而变得很慢的时候很有用

  • 常用选项

    -9 表示强迫进程立即停止

查看进程树pstree

  • 基本语法

    pstree [选项] , 可以更直观的来查看进程信息

  • 常用选项

    -p: 显示我进程的PID

    -u: 显示进程的所属用户

服务管理(service)管理

介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,是Linux种非常重要的知识点.

service管理指令

service 服务名 start | stop | restart | reload | status

systemctl

使用案例

www服务器。
3. 每个进程都可能以两种方式存在的。前台和后台,所谓前台进程就是用户目前看到屏幕上可以操作的,后台进程则是实际在操作,由于屏幕上无法看到的进程,
4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直达关键才结束

显示系统执行的进程

  • 基本介绍

    ps命令是用来查看目前系统中,有哪些正在执行,以及他们的执行状况。

    可以不加任何参数

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

终止进程kill 和 killall

若某个进程执行一半需要停止时,或是已经消耗了很大的系统资源的时候,此时可以考虑停止该进程,使用kill命令来完成此项任务。

  • 基本语法

    kill [选项] 进程号 ::通过进程号杀死进程

    killall 进程名称 ::通过进程名啥词进程,也支持通配符,这在系统负载勾搭而变得很慢的时候很有用

  • 常用选项

    -9 表示强迫进程立即停止

查看进程树pstree

  • 基本语法

    pstree [选项] , 可以更直观的来查看进程信息

  • 常用选项

    -p: 显示我进程的PID

    -u: 显示进程的所属用户

服务管理(service)管理

介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,是Linux种非常重要的知识点.

service管理指令

service 服务名 start | stop | restart | reload | status

systemctl

使用案例

  1. 查看当前防火墙状态

你可能感兴趣的:(Ubuntu,ubuntu,linux)