Linux系统管理及服务配置

最近在学习Linux,特此记录一下

Linux系统管理及服务配置

1.文件管理

1.文件类型(理解)

  • 简介

    • windows文件类型以后缀区分。

      • exe
      • doc
    • linux文件类型以单个字母区分(文件属性中)

        - - 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
      
        		d 目录文件(蓝色)
        		
        		b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
        		
        		c 设备文件(字符设备)打印机,终端 /dev/tty1
        		
        		l 链接文件(淡蓝色)
        		
        		s 套接字文件
        		
        		p 管道文件
      
  • 示例

      - 示例1
    
      - 查看各式各样的文件类型。你能找出几种呢?
    
      [root@tianyun ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
      
      -rwxr-xr-x. 1 root root 117616 Nov 20 2015 /bin/ls
      
      srw-rw-rw- 1 root root 0 Mar 14 2017 /dev/log
      
      brw-rw---- 1 root disk 8, 0 Mar 14 09:03 /dev/sda
      
      crw--w---- 1 root tty 4, 1 Mar 14 09:03 /dev/tty1
      
      lrwxrwxrwx. 1 root root 22 Dec 21 01:40 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
      
      -rw-r--r-- 1 root root 392 Feb 22 15:51 /etc/hosts
      
      drwxr-xr-x. 10 root root 4096 Mar 14 11:00 /home
    
  • 注意

    • 通过颜色判断文件的类型是不一定正确的!!!

Linux系统中文件不是必须设置扩展名!!!

2.文件管理命令

  • 1.改变目录

    • cd [ 绝对路径和 | 相对路径]目录
    • pwd 查看当前目录
  • 2.创建文件

    • touch 1.txt

cat >1.txt

  • 3.创建目录

      	- # mkdir dir1
      
      # mkdir    /home/dir2    /home/dir3
      
      # mkdir    -v     /home/dir8/111/22	//显示创建过程
      
      # mkdir    -pv    /home/dir8/111/222 //包括其父母的创建,不会有任何消息输出
    
  • 4.查看文件内容

    • 推荐查看的文件

        		- /bin/date
        
        /etc/hosts
        
        /etc/sysconfig/network
        
        /etc/sysconfig/network-scripts/ifcfg-eth0
        
        /etc/passwd
        
        /etc/shadow 
        
        /etc/group
        
        /etc/grub2.cfg
        
        /etc/resolv.conf 
        
        /etc/profile //设置系统环境变量
        
        /etc/bashrc //影响bash shell环境
        
        /var/log/messages //系统主日志文件
        
        /var/log/secure //跟安全相关的日志如ssh登录,本地登录...
      
    • cat全部

      • cat 文件名

-n 显示行号

-A 包括控制字符(换行符/制表符)
tac 从最后一行逆序打印

- more翻页

	- more

- head头部

	- [root@tianyun ~]# head /etc/passwd

[root@tianyun ~]# head -2 /etc/passwd

- tail尾部

	- [root@tianyun ~]# tail /etc/passwd

[root@tianyun ~]# tail -1 /etc/passwd

[root@tianyun ~]# tail -F /var/log/secure //-F 动态查看文件的尾部

- grep过滤关键字

	- # grep 'root' /etc/passwd
  • 5.复制

      - # cp -v install.log /home/dir1	  //-v 显示详细信息
      
      # cp -rv /etc /home/dir1    //-r 拷贝文件夹
      
      # cp -rf /etc /tmp    //-f, --force 强制
    
      #-r 递归复制文件夹下面所有文件及属性
      #-i  提示信息
    
  • cp到底是何方神圣?

      	- 
    
      [root@tianyun ~]# type -a cp
      
      cp is aliased to `cp -i'
      
      cp is /bin/cp
    
  • 6.移动

    • mv file1 /home/dir3 将file1移动到/home/dir3

    • mv -t 文件夹1 目标文件夹 ##讲目标文件夹转移到文件夹 与默认相反
    • mv 文件 new文件 将文件更名为 new 的
  • 7.删除

    • rm

        	- -r 递归
      
        	-f force强制 不显示任何信息
        	
        	-v 详细过程
        	
        			[root@tianyun ~]# rm -rf /home/dir10/*      //不包括隐藏文件
      
    • rmdir

      • 删除空目录
      • -r 递归删除空目录
    • 7.查找 find

      • find查找标准参数 find 路径 参数 文件

        • find / -name 1.txt
      • find -name

        • find -name a.txt
      • 按照文件大小查找 find / -size +1000k 大于1000k大小文件
        -1000k 小于1000k

      • 根据时间查找 find / -mtime -(+)3 查找修改时间三天以(外)内的
        -atime 访问文件时间
        -ctime 修改状态的时间

    • 8.grep 文本全局正则查找

      • -i 忽略大小写

      • -c 只显示匹配行的数量 查看匹配多少数量

      • -r 递归查找子目录

      • -n 显示行

        • grep -n ‘字符’ a.txt
      • grep ‘字符’ * 当前目录下查找所有含有搜索字符的文件

      • 正则

        • cat demo/a.txt | grep ‘1’ 搜索 字母开头
        • ls | grep ‘^w’ 字母开头的文件
      • 结合管道符 |

        • ls | grep a 将ls得到的结果交给 grep 筛选
    • 命令查找

      • whereis
      • which
  • 9.链接

    • 软链接 -s

      • 应用 ln -s 源文件 链接文件

        • 软链接:新建了一块地址 存放源文件的引用的地址,所以当源文件删除后,软链接失效 相当于快捷方式
    • 硬链接

      • ln 源文件 链接文件

        • 硬链接:指向源文件的地址,当源文件引用被删除后,硬链接依旧指向源文件地址,指向数据
    • 查看

      • 当 ll 后 文件后面出现 --> 为软链接
  • 10.修改文件内容

    • 1.图形文件编辑器1

      • 图形文件编辑器 gedit
    • 2.文件编辑器2

      • VI 的三个模式

          - 可视模式,按V进入,小v光标自己选取,大V直接选取一行,YYp复制粘贴即可。
        

ctrl+V,上下选择,然后可以ctrl+> 进行整体缩进。

	- 命令模式

	- 光标定位

	- 光标定位 

		hjkl               //上下左右
		
		0 $               //行首行尾
		
		gg G 			//野兽页尾
		
		3G 进入第三行  
		
		/string (n N 可以循环的)     //查找字符,n下一个
  • 文本编辑

  • 文本编辑(少量)

      y 复制 yy 3yy ygg yG (以行为单位)
      
      d 删除 dd 3dd dgg dG (以行为单位) 
      
      p 粘贴
      
      x 删除光标所在的字符
      
      D 从光标处删除到行尾
      
      u undo撤销
      
      ^r redo重做
      
      r 可以用来修改一个字符
    
  • 进入其它模式

      a 进入插入模式
      
      i 进入插入模式
      
      o 进入插入模式
      
      A 进入插入模式
      
      
      
      : 进入末行模式(扩展命令模式)
      
      v 进入可视模式
      
      ^v 进入可视块模式
      
      V 进入可视行模式
      
      R 进入替换模式
    
  • 输入模式

      	- insert:iaoIAO
    
      - 可视块模式
    
      	- 块替换: 选择块,r 输入替换的字符 
    
      块删除: 选择块,d | x
      
      块复制: 选择块,y
    
      - 扩展命令模式
    
  • 保存退出

      :10 进入第10行 
      
      :w 保存 
      
      :q 退出 
      
      :wq 保存并退出 
      
      :w! 强制保存 
      
      :q! 不保存并退出 
      
      :wq! 强制保存退出
      
      :x 保存并退出 ZZ
    
  • 查找替换

      :范围 s/old/new/选项 
      
      :1,5 s/root/yang/          从1-5行的root 替换为yang 
      			-  读入文件/写文件(另存为)
      
      :w 存储到当前文件
      
      :w /tmp/aaa.txt 另存为/tmp/aaa.txt 
      
      :1,3 w /tmp/2.txt
      
      :r /etc/hosts 读入文件到当前行后
      
      :5 r /etc/hosts 读入文件到第5行后
      	- :set nu 设置行号 
    
      :set ic 不区分大小写
      
      :set ai 自动缩进
      
      :set list 显示控制字符
      
      :set nonu 取消设置行号 
    
  • 11.文件基本信息:时间(了解)

    • 时间类型

        - 访问时间:atime,查看内容 
      
        	修改时间:mtime,修改内容
        	
        	改变时间:ctime,文件属性,比如权限
        	
        	删除时间:dtime,文件被删除的时间
      
    • 查询示例

        [root@tianyun ~]# stat install.log
        
        File: “install.log”
        
        Size: 34793 Blocks: 80 IO Block: 4096 一般文件
        
        Device: 802h/2050d Inode: 65282 Links: 1
        
        Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
        
        Access: 2012-10-23 16:53:20.000000000 +0800
        
        Modify: 2012-10-23 13:49:46.000000000 +0800
        
        Change: 2012-10-23 13:49:52.000000000 +0800
      

ls -l 文件名 仅看的是文件的修改时间

3.文件权限

  • r:read w:write x:exe

  • d  rwx      r-x      r-x
    文件 用户   用户所属组其他用户  其他任何用户

  • 更改权限

    • user group other all
      chmod [ugo / a] [±=] [rwx] 文件或者文件夹

    • 方式1

        	- #chmod u -w b.txt 
      
        	 #chomd u-w,o+w b.txt
        	
        	#chmod u=rw btxt  赋给权限
        	
        	#chomd  a -w 文件夹 对所有等级的用户 减去写的权限
      
    • 八进制方式

      • r:4 w:2 r:1   从左往右赋值

      • chmod 644 1.txt

        • u=6,g=4,o=4
      • 对于一个文件夹:
        #chmod  777 code

#chmod 006 * 给当前目录下所有文件其他用户 赋予读写执行权限,并且减去当前用户,组用户的所有权限
#chmod -66 减去组,其他用户的读写权限 数字从左往右开始匹配 ogu
- 递归  chmod -R 666 code 递归的对code 以及code目录下所有的文件赋予权限

4.用户与组

  • 用户

    • 用户信息

      • 一个用户必有有一个主组
        一个用户可以有多个组
        一个组可以有多个用户

        • 用户账户的信息存放在 /etc/passwd文件中
          超级用户root(0)
          程序用户(1-499)
          普通用户(500-65535)
      • 用户名 密码 uid gid 用户说明 家目录 shell解释器
        python : x : 1001 : 1001 : : /home /python : /bin/sh[外链图片转存失败(img-r4nNlv4w-1566618018618)(assets/5f1d3e6276a4c4a569345a41b885cff3b227f244b9b083d85b90bc46894ecf55.png)]

      • 用户名 密码 最近更改时间 禁止修改密码的天数 到用户必须修改密码的天数 告警更改密码期限 不活动时间 标志
        python : 636636 : 17394 : 0 : 99999 : 7 : : :
        [外链图片转存失败(img-VDUbkPK6-1566618018622)(assets/1a98857f73802bbe51687a73adf1de047d0ae2505263c2ccc092f2c4c92cc09b.png)]

    • 新建用户

      • useradd [optional] 用户名
        -g 指定主组名或组id,必须已经存在的组
        -u 指定用户的id
        -m 自动建立用户主目录
        -d 指定用户的家目录
        -s 指定用户登录后使用shell,默认是/bin/bash

        • example:
          sudo useradd -m 用户名
          sudo useradd -m 用户名 -s /bin/bash
    • 删除用户

      • userdel -r 用户名
        删除用户和用户的家目录
    • 修改用户密码: sudo passwd 用户名

    • 切换用户:su 用户名 新建的用户由于sh的原因没有sudo权限

    • 补充

      #启用root账户
      $ sudo password root #根据提示为root输入密码
      必须切换到root用户
      #设置sudo提升权限的时候不需要输入密码,需要修改/etc/sudoers文件

      sudo vi /etc/sudoers
      #也可以使用工具:sudo visudo编辑

      Allow members of group sudo to execute any command

      #将sudo组添加NOPASSWD:
      %sudo ALL=(ALL:ALL) NOPASSWD: ALL
      #然后按esc
      :wq!

      #如果新添加的用户不属于sudo组,是不能使用sudo提升权限的,需要将用户添加到sudo组
      #以属于sudo组的用户登录
      sudo usermod -a -G sudo 用户名

      如果没有切换使用此命令恢复:
      pkexec chmod 0440 /etc/sudoers

    • 组信息存放在 /etc/group
    • groupadd 组名

groupdel 组名

groupmod -n 新组名 旧组名

groups 显示所有组

2.SSH连接

工作原理

  • 服务器启动的时候自己产生一个秘钥(768bit),本地的ssh客户端发送请求到服务器,服务器检查点客户端发送的数据和IP地址,确认合法后发送密钥(768bits)给客户端,此时客户端将本地私钥(256bit)和服务器的公钥(768bit)结合成密钥对key(1024bit),发回给服务器端,建立连接通过key-pair数据传输。

SSH

  • 简介

    • 1.SSH是安全的加密协议,用于远程连接Linux服务器
    • 2.SSH的默认端口是22,安全协议版本是SSH2
    • 3.SSH服务器端主要包含2个服务功能SSH连接和SFTP服务器
    • 4.SSH客户端包含ssh连接命令和远程拷贝scp命令等

服务

  • 如何安装ssh?

    • Sudo apt-get install openssh-server
  • 启动服务

    • sudo service ssh start / stop
  • 查看服务是否启动:

    • ps -aux | grep ssh
  • 远程链接

    • sudo ssh -p 端口 用户名@ip地址

3.vi/vim编辑模式

  • 平时用的最多的vi命令:

    • 移动光标的方法:
    • [Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。forward
    • [Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。back
    • 0或功能键[Home]:移动到这一行的最前面字符处。
    • $或功能键[End]:移动到这一行的最后面字符处。
    • G:移动到这个文件的最后一行。
    • gg:移动到这个文件的第一行,相当于1G.
    • N[Enter]:N为数字,光标向下移动N行
  • 删除、复制和粘贴:

    • .:小数点,重复前一个操作。
    • x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。
    • dd:删除光标所在的一整行。
    • ndd:删除光标所在的向下n行。
    • yy:复制光标所在的一行。
    • nyy:复制光标所在的向下n行。
    • p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。
    • u:复原前一个操作。
    • [Ctrl]+r:重做上一个操作。
  • 查找和替换:

    • /word:向下寻找一个名称为word的字符串。
    • ?word:向上寻找一个名称为word的字符串。
    • :n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.
    • :1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.
    • :1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。
  • 一般模式切换到编辑模式:

    • i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
    • a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
    • o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
    • r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。
  • 一般模式切换到命令行:

    • :set nonu 取消行号
    • :w 新文件名 另存为新文件名
    • :n1,n2 w 新文件名 将第n1行到n2行的内容另存为新文件名
    • :r 文件名A 将文件A中的内容读入到当前文件中
    • :w:将编辑的数据写入到硬盘中。
    • :q:离开vi.后面加!为强制离开。
    • :wq:保存后离开。
    • :wq! 为强制保存后离开。
    • :set nu 设置显示行号

4.软件包

压缩与解压

  • tar

    • -c 打包
      
      -x 解包
      -v 可视化
      -f指定文件名
      -t 查看包里的东西
      -z 用gzip对包进行压缩
      -j 用把bzip2对包进行压缩
    • Example:
      打包 tar -cvf test.tar 1.txt 2.txt 3.txt
      解包 tar -xvf test.tar
      打包并且压缩 tar -zcvf 包名 文件/文件夹
      解压压缩包 tar -zxvf 包名 -C 指定文件夹
  • gzip

    • 特点:这里讲gzip只能压缩单个文件,并不是一次只能压缩一个文件,而是压缩的单位是单个文件,即并不能将多个文件压缩成为一个文件
    • gzip *.txt
      #解压 gunzip xxx.gz
  • bzip2/bz2

    • bzip2 wq.txt

      • —>xxx.txt.bz2
    • bzip2 xxx.txt —>–→ 删除源文件 存放的是源文件压缩后文件

    • 解压bz2文件:

    • bunzip2 xxx.txt.bz2

    • bzip2 -d xxx.txt.bz2

  • zip

    • zip -r 压缩包名字 文件1 文件2 文件夹 打压缩包
    • zip -rm 压缩包名字 文件1 文件2 文件夹 删除源文件并打压缩包
    • unzip 解压
    • unzip -d 指定的目录名 mytest.zip

apt / pckg

  • redhat: centos

  •        rpm 软件包管理
    
  • debian : ubuntu

  •        dpkg  软件包管理:
    
  • 简介

    • 虽然我们在使用dpkg时,已经解决掉了 软件安装过程中的大量问题,但是当依赖关系不满足时,仍然需要手动解决,而apt这个工具解决了这样的问题,linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg以存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。
    • 然而,由于每位用户所处的网络环境不同,不可能随意地访问各镜像站点。为了能够有选择地访问,在Ubuntu系统中,使用软件源配置文件/etc/apt/sources.list列出最合适访问的镜像站点地址。
    • apt简介:
    • 工作原理:
    • Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(Reposity)
  • dpkg是"Debian Package"的简写。

    • | dpkg -r 包名 | 卸载软件包但保留配置信息 |
    • | dpkg -P 包名 | 卸载软件包联通配置信息一并卸载 | |
    • | dpkg -l 包名 |查看软件包
    • | dpkg -l | grep zip |
    • | dpkg -i 包文件名(.deb) 安装软件包
    • dpkg -i sogoupinyin_2.2.0.0108_amd64.deb |
  • apt 与 apt-get

    • apt-cache  search   搜索应用程序
      
    • apt-cache show   现实应用程序安装细节
      
    • apt = apt-get  + apt-cache
      
    • apt  search  
      
    • apt   show
      
    • apt install      ~   apt-get install
      
    • apt  remove   ~  apt-get remove
      
    • apt list 
      

5…shell 语法

### 命令 选项 参数

### [root@localhost ~]# ls

### [root@localhost ~]# ls  -a 

### [root@localhost ~]# ls  -a  /home

### 命令:整条shell命令的主体

### 选项:会影响会微调命令的行为 //通常以 -, --

### 参数:命令作用的对象 

6. 获得帮助

HELP

  • 语法

    • 命令 --help
  • 示例(ls --help)

    • ls --help

    • 用法:ls [选项]… [文件]…
    • ls 常见选项
    • -a all,查看目录下的所有文件,包括隐藏文件
    • -l 长列表显示
    • -h human 以人性化方式显示出来
    • -d 只列出目录名,不列出其他内容
    • -t 按修改时间排序
    • -S 按文件的Size排序
    • -r 逆序排列reverse
    • -i 显示文件的inode号(索引号)

man

  • 简介

    • 针对命令帮助,针对配置文件帮助,针对函数帮助
  • man手册分类

  • 示例2

    • 一般情况是不需要使用章节号,例如:
    • man ls

    • man useradd

baidu, google

7.总结

创建、复制、删除、移动、查看、编辑


  1. a-z ↩︎

你可能感兴趣的:(linux)