linux

目录结构

  • linux 的文件系统是采用级层式的 树状目录结构,再次结构中的最上层是根目录“/”
    然后再次目录下在创建其他目录。

    在linux中一切都是文件

  • /bin 是binary的缩写,这个目录存放着最经常使用的命令

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

  • /home 存放普通用户的主目录,一般该目录名是以用户的账号命名的

  • /root 该目录为系统管理员,也称作超级权限的用户主目录

  • /lib 系统开机所需要最基本的动态链接共享库,其作用类似于windows里面的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /etc 所有的系统管理所需要的配置文件和子目录 my.conf

  • /lost+found 这里的文件一般情况下是空的,当系统非法关机后这里会产生一些文件

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

  • /boot 存放的是启动linux的核心文件,包括一些连接文件以及镜像文件

  • /proc 这个目录是虚拟目录,它存放的系统内存映射,访问这个目录获取系统信息

  • /tmp 这个目录使用来存放一些零时文件。

  • /srv service的缩写,该目录存放一些服务启动之后需要的一些数据

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

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

  • /media linux系统会自动识别一些设备,例如U盘等,当 识别时候linux会把识别的设备挂载到这个目录之下

  • /mnt 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载到/mnt/上,然后进入该目录就可以查看里面的内容了。

  • /opt 这是给主机额外的安装软件所摆放的目录,如安装oracle数据库就可以放到该目录下

  • /usr/local 这是另一个给主机额外安装软件所提供的安装目录。一般是通过编译源码安装的程序。

  • /var 这个目录存放着不断扩充的东西,习惯将经常被修改的目录存放在这个目录下。包括各种日志文件。

  • /selinux SELinux 是一种安全的子系统,它能控制程序只能访问特定文件

总结

linux的目录中只有一个根目录
linux的各个目录存放的内容都是规划好的,不要乱放文件
linux是以文件的形式管理我们的设备,因此linux系统一切皆为文件


vi和vim快捷键

  • 拷贝当前行 yy ,拷贝当前行向下的五行 5yy,并黏贴(p)。
  • 删除当前行 dd,删除当前行向下的五行 5dd
  • 在文件中查找某个单词[命令行下 / 关键字,回车查找,输入n就是查找下一个 ]
  • 设置文件的行号,取消文件的行号。[命令行下 :set nu:set nonu]
  • 编辑 /etc/profile 文件,使用快捷键到底文档的最末行 [G] 和最首行 [gg](正常模式下)
  • 在一个文件中输 “hello”,然后又撤销这个动作 u
  • 编辑**/etc/profile 文件**,并将光标移到20行 shift+g

关机&重启命令

  • shutdown -h now: 表示立即关机
  • shutdown -h 1:表示1分钟后关机
  • shutdown -r now:立即重启
  • halt 效果等价于关机
  • reboot 重启
  • sync 把内存数据同步到磁盘
    当我们关机或者重启时,应该使用sync指令,把内存的数据写入磁盘,防止数据丢失

用户的登录和注销

  • 登录时尽量少用root用户,应为它是系统管理员,最大权限,避免操作失误。可以利用普通用户登录,再用"su - 用户名"命令来切换系统管理员身份。
  • 在提示符下输入 logout 即可注销用户(在图形界面是无效的,在运行级别3下有效

用户管理

  • Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向管理员申请一个账号,然后以这个账号的身份进入系统
  • Linux的用户需要至少属于一个组

添加用户 useradd[选项] 用户名

------ 特别说明 --cd 表示 change directory
1)创建成功后,会自动的创建和用户名同名的家目录
2)也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
  • 指定密码 passwd 用户名

删除用户 userdel 用户名

------ 特别说明 -- (一般来讲都是要保留家目录)
1)删除用户但是要保存家目录	userdel 用户名
2)删除用户以及用户主目录 userdel -r 用户名

查询用户信息 id 用户名
切换用户 su - 切换用户名
在这里插入图片描述

------ 特别说明 -- 
1)高级别用户向低级别用户转换时不需要输入密码,反之需要
2)权限不够的用户不能访问/root/文件夹
3)回退到原先的的用户用exit

查看当前用户/登录用户 whoami/who am i
用户组 类似于角色,系统可以对有共性的多个用户进行统一的管理

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

用户和组相关的文件

  • /etc/passwd 文件

      用户的配置文件,记录用户的各种信息
      每行的含义:用户名:口令:用户标志号:组标志号:注释性描述:主目录:登录shell
    

    在这里插入图片描述

  • /etc/shadow 文件

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

    在这里插入图片描述

  • /etc/group 文件

      组的配置文件,记录linux包含的组信息
      每行含义:组名:口令:组标志号:组内用户列表
    

    在这里插入图片描述


指定运行级别

0:关机
1:单用户(找回丢失密码)
2:多用户无网络服务
3:多用户有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab 的id:5:initdefault:这一行中的数字

切换到不同级别指令 init[012356]

运行级别示意图

在这里插入图片描述

centos7 设置默认开启字符界面

在这里插入图片描述
在这里插入图片描述

帮助指令

  • man[命令或配置文件]-----获取帮助信息

     [root@localhost ~]# man ls
    
  • help命令----- 获取shell内置命令的帮助信息

      [root@localhost ~]# help cd
    

文件目录类

  • pwd 指令 ----- 显示当前工作目录的绝对路径

      [root@localhost ~]# pwd
      /root
    
  • ls 指令 [ 选项 ] [ 目录或文件]

    常用选项
    -a : 显示当前目录所有的文件和目录,包括隐藏的。

      [root@localhost ~]# ls -al
    

    -l :以列表的方式显示信息

      [root@localhost ~]# ls -l
    

  • cd 指令 [参数] ----- 功能描述,切换到指定目录

    常用参数
    绝对路径: 从根目录开始定位
    相对路径: 从当前工作目录定位到所需要的目录下

      [root@localhost home]# cd /usr/lib
      [root@localhost lib]# pwd
      /usr/lib
      [root@localhost lib]# cd ../../root
      [root@localhost ~]# pwd
      /root
    

    cd ~ 或者 cd :回到自己家目录
    cd . . 回到当前目录的上一级目录


  • mkdir 指令 [选项] 要创建的目录 ----- mkdir指令用于创建目录(make director)

      [root@localhost ~]# mkdir /home/dog
    

    常用选项 -p :创建多级目录

      [root@localhost home]# mkdir -p /home/animal/tiger
    

  • rmdir [选项] 要删除的空目录
    rmdir 指令删除空目录,不能删除非空的目录

      [root@localhost tiger]# rmdir /home/dog
      如果需要删除非空目录:
      [root@localhost home]# rm -rf /home/animal
    

  • touch 指令创建空文件(可以同时创建多个文件)
    touch 文件名称

      	[root@localhost home]# touch ok1.txt ok2.txt
    

  • cp指令 [选线] source dest【重要】 ----- cp指令拷贝文件到指定目录

      [root@localhost home]# cp aaa.txt bbb/
    

    常用选项 -r 递归复制整个文件夹

      [root@localhost home]# cp -r test/ zwj/
    

强制覆盖不提醒的方法: \cp


  • rm指令 [选线] ----- 指令移除文件或目录
    常用选项
    -r: 递归删除整个文件夹
    -f: 强制删除不提示

      [root@localhost home]# rm aaa.txt
    
      [root@localhost home]# rm -rf bbb/
    

  • mv指令 ---- 移动文件与目录或重命名

    mv odlNameFile newFileName ----- 重命名

      [root@localhost home]# mv aaa.txt pig.txt
    

    mv /temp/movefile /targetFolder ----- 移动文件

      [root@localhost home]# mv aaa.txt pig.txt
    

  • cat指令 [选项] ----- 查看文件内容

    常用选项 -n : 显示行号

      [root@localhost ~]# cat -n /etc/profile | more
      以cat指令打开并分页显示
    

  • more指令 是一个基于 VI 编辑器的文本过滤器,它是以全屏幕的方式按页显示文本文件的内容
操作功能说明
空格键向下饭庄一页
enter向下翻转一行
q立刻离开more,不再显示改文件内容
ctrl + f向下滚动一屏
ctrl + b返回上一屏
=输出当前行号
:f输出文件名和当前行行号

  • less指令 用来分屏查看文件内容,它的功能与more指令相似,但是比more指令更加强大,支持各种显示终端,less指令在显示文件内容时,并不是将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
操作功能说明
pagedown向下翻页
pageup向上翻页
/子串向下搜索[子串] n:向下查找 N:向上查找
?子串向上搜索[子串] n:向上查找 N:向下查找
q离开less

  • >指令和>>指令
    > 输出重定向
    >>追加

      [root@localhost home]# ls -l > a.txt
      将 ls -l 的输出覆盖写入a.txt文件,若没有a.txt就创建一个
      
      1)ls -l>文件		(列表的内容写入文件a.txt(覆盖写))
      2)ls --al>>文件	(列表的内容追加到文件a.txt的末尾)
      3)cat 文件1 > 文件2 (将文件1的内容复制到文件2)
      4)echo "内容">>文件
    

  • echo指令 ----- 输出内容到控制台
    echo[选项][输出内容]

  • head指令 ------ 显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容
    head 文件(产看文件的前十行内容)
    head -n 5 文件 (产看文件的头5行内容)

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

      1)tail 文件			查看文件后十行内容
      2)tail -n 5 文件	查看文件后五行内容 
      3)tail -f 文件		实时追踪该文档的所有更新
    

  • ln指令 ----- 软链接也叫符号链接,类似于windows里面的快捷方式,主要存放了链接其他文件的路径
    ln -s[原文件或目录][软链接名](给原文件创建一个链接)

  • history指令 ----- 查看已经执行过的历史命令,也可以执行历史命令

      history 
      history 10(显示最后10次执行的指令)
      !20(执行第20条指令)
    

时间日期类

  • date — 显示当前时间
    date+%Y — 显示当前年份
    date+%m — 显示当前月份
    date+%d — 显示当前是哪一天
    date"+%Y-%m-%d %H:%M:%S" — 显示年月日时分秒
    —设置日期:date -s 字符串时间
  • cal[选项] — 查看日历指令

搜索查找类

  • find [搜索范围] [选项] — 将从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端
选项功能
-name<查询方式>按照指定的文件名查找模式查找文件,支持通配符(*.txt)
-user<用户名>查找属于指定用户名所有文件
-size<文件大小>(大于:+,小于:-)按照指定的文件大小查找文件

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

      使用命令前 先用 updatedb
    
  • grep [选项] 查找内容 源文件 和 管道符号 |
    grep过滤查找,管道符 | ,表示将前一个命令的处理将结果传递给后面的命令处理

      	[root@localhost home]# more hello.txt | grep -ni yes
      	3:yYes
      	4:Yes
    
    选项功能
    -n显示匹配行及行号
    -i忽略字母大小写

压缩和解压类

  • gzip/gunzip — gzip 用于压缩文件 / gunzip 用于解压
    gzip 文件 — 将文件压缩为*.gz文件(压缩过后不会保留原来的文件)
    gunzip 文件.gz — 解压文件指令

  • zip/unzip
    zip [选项]XXX.zip
    unzip[选项]XXX.zip

    zip常用选项
    -r : 递归压缩,即压缩目录
    unzip常用选项
    -d 目录 :指定解压后文件的存放目录

  • tar[选项] xxx.tar.gz 打包的内容 — 打包指令,最后打包的文件是.tar.gz的文件

      [root@localhost home]# tar -zcvf a.tar.gz a1.txt a2.txt 
      [root@localhost home]# tar -zxvf myhome.tar.gz -C /opt
    
选项功能
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解压.tar文件

文件/目录 所有者

  • ls -ahl — 查看文件所有者

  • chown 用户名 文件名 — 修改文件所有者

     	chown newowner file 改变文件所有者
     	chown newowner:newgroup file 改变用户的所有者和所有组
     	-R 如果是目录则使其下所有文件或目录递归生效
    
  • groupadd 组名 — 创建组

文件/目录 所在组

  • chgrp 组名 文件名 — 修改文件所在组

      chgrp newgroup file 改变文件所在组
    

改变用户 所在组

  • usermod -g 组名 用户名
  • usermod -d 目录名 用户名 改变该用户登录的初始目录

权限

在这里插入图片描述

  • rwx 权限详解

    rwx 作用到文件
    1)r 代表看可读
    2)w 代表可写,但不可以删除
    3)x代表可执行

    rwx 作用到目录
    1)可读取
    2)可写入,可修改
    3)可以进入该目录

  • chmod 修改权限

      第一种方式 + - = 变更权限
      u :所有者	 g : 所在组 	o :其他人	 a : 所有人
      1)chmod u=rwx,g=rx,o=x 文件目录名
      2)chomd o+w 文件目录名
      3)chomd a-x 文件目录名
    
      第二种方式 通过数字变更
      可用数字表示r = 4, w = 2,x = 1,rwx = 7
      chmod u=rwx,g=rx,o=x 文件目录名 	相当于chmod 751 文件目录名
    

crond 任务调度

  • crontab [选项] ----- 进行定时任务的设置
    任务调度,是指系统在某个时间执行的特定的命令或程序

分类:
系统工作:有些重要的工作必须周而复始的进行
个别用户工作:用户可能希望执行某些程序

常用选项 :

-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab任务
service crond restart重启任务调度

例:*/1 * * * * ls -l /etc > /tmp/to.txt
意思是:每小时的每分钟执行 ls -l /etc > /tmp/to.txt 命令
参数说明 :

项目含义范围
第一个 *一小时当中的第几分钟0-59
第二个 *一天当中的第几小时0-23
第三个 *一月当中的第几天0-30
第四个 *一年当中的第几月1-12
第五个 *一周当中的星期几0-7(0和7都代表星期日)

特殊符号说明

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

分区

  • 分区原理

      1)对linux来说无论有几个分区,分给那个目录使用,他归根结底只是一个根目录,一个
      独立且唯一的文件结构,linux每个分区都是用来组成整个文件系统的一部分
      2)linux采用一种叫做 "载入"的方式,它的整个文件系统中包含了一整套的文件和目
      录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间
      在一个目录下获得。
    

加粗样式

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

如何增加一块硬盘

	1)虚拟机添加硬盘
	2)分区	fdisk /dev/sdb
	3)格式化	mkfs	-t ext4	/dev/sdb1
	4)挂载	先创建一个  /home/newdisk	, 挂 载  mount	/dev/sdb1	/home/newdisk
	5)设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
	vim	/etc/fstab
	/dev/sdb1	/home/newdisk	ext4	defaults	0 0

查询磁盘情况

  • df -lh — 查询整体磁盘情况
  • du -h /目录 — 查询指定目录的磁盘占用情况
  • 查询指定目录的磁盘占用情况,默认为当前目录
    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    –max-depth=1 子目录深度
    -c 列出明细的同时,增加汇总值

查询/opt磁盘占用情况,深度为1
在这里插入图片描述

统计/home 文件夹下文件的个数
在这里插入图片描述
wc 是统计的意思

统计/home 文件夹下目录的个数,包括子文件夹里的
在这里插入图片描述

用树状显示文件结构
在这里插入图片描述


网络配置

  • 自动获取ip

  • 固定ip

      说明:直接额修改配置文件来指定ip,并可以连接到外网,编辑
      vi/etc/sysconfig/network-scripts/ifconfig-eth0,将ip配置为静态
    

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
在这里插入图片描述


  • firewalld的基本使用
    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld
    开机禁用 : systemctl disable firewalld
    开机启用 : systemctl enable firewalld

  • systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
    启动一个服务:systemctl start firewalld.service
    关闭一个服务:systemctl stop firewalld.service
    重启一个服务:systemctl restart firewalld.service
    显示一个服务的状态:systemctl status firewalld.service
    在开机时启用一个服务:systemctl enable firewalld.service
    在开机时禁用一个服务:systemctl disable firewalld.service
    查看服务是否开机启动:systemctl is-enabled firewalld.service
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed

  • 配置firewalld-cmd

  • 查看版本: firewall-cmd --version
    查看帮助: firewall-cmd --help
    显示状态: firewall-cmd --state
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
    更新防火墙规则: firewall-cmd --reload
    查看区域信息: firewall-cmd --get-active-zones
    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    拒绝所有包:firewall-cmd --panic-on
    取消拒绝状态: firewall-cmd --panic-off
    查看是否拒绝: firewall-cmd --query-panic

  • 开启一个端口

    firewall-cmd --zone=public --add-port=8080/tcp --permanent

  • 关闭端口方法:

    firewall-cmd --remove-port=8080/udp --permanent

命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效

  • 重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone= public --query-port=80/tcp
    删除
    firewall-cmd --zone= public --remove-port=80/tcp --permanent

进程管理

  • ps [选项] ----- 查看进程

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

在这里插入图片描述

	•System V 展示风格
	•USER:用户名称
	•PID:进程号
	•%CPU:进程占用 CPU 的百分比
	•%MEM:进程占用物理内存的百分比
	•VSZ:进程占用的虚拟内存大小(单位:KB)
	•RSS:进程占用的物理内存大小(单位:KB)
	•TT:终端名称,缩写 .
	•STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
	•STARTED:进程的启动时间
	•TIME:CPU 时间,即进程使用 CPU 的总时间
	•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
  • ps -ef ----- 以全格式显示当前所有进程

      -e 显示所有进程
      -f 全格式
    
  • pstree [选项] ----- 以树状形式展示进程之间的关系

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

在这里插入图片描述

	•UID:用户 ID
	•PID:进程 ID
	•PPID:父进程 ID
	•C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
	•STIME:进程启动的时间
	•TTY:完整的终端名称
	•TIME:CPU 时间
	•CMD:启动进程所用的命令和参数
  • 终止进程kill和killall
    kill [选项] 进程号 ----- 通过进程号杀死进程
    killall 进程名称 ----- 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
    常用选项:-9 : 表示强迫进程立即停止

service 管理

  • service 管理指令

      service 服务名[start | stop | restart | reload | stauts]
      在centos7.0之后,不再使用service 指令,而是systemctl
    
  • 查看服务名(centos6)
    方式1:setup -> 系统服务
    方式2:/etc/init.d/服务器名称

    查看centos7 服务
    在这里插入图片描述

服务的运行级别(之前的系统级别 0 — 6
chkconfig — 给每个服务的各个运行级别设置自启动/关闭

	1)查看服务 chkconfig --list | grep xxx
	2)chkconfig 服务名  --list
	3)chkconfig --level 5 服务名 on/off

systemctl

	列出所有可用单元 	systemctl list-unit-files
	列出所有运行中单元  systemctl list-units
	列出所有失败单元  systemctl –failed
	检查某个单元(如 crond.service)是否启用  systemctl is-enabledcrond.service 
	列出所有服务  systemctl list-unit-files –type=service

查看网络情况netstat [选项]

	netstat -anp
	选项说明
		-p 显示哪个进程在调用
		-an 按一定顺序排列输出

动态监控进程

top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。

  • top [选项]
    在这里插入图片描述
    top
    在这里插入图片描述
    top:输入此命令,按回车键,查看执行的进程
    输入u 再输入用户名,就可以监控此用户

    top:输入此命令,按回车键,查看执行的进程。
    k:然后输入“k”回车,再输入要结束的进程 ID 号
    在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值