Linux通用知识

112 阅读10分钟

1. Linux中各个目录的含义

名称含义
binbinary的缩写,此目录下存放的是二进制的可执行文件
sbinsystem binary的缩写,此目录下存放的是用于系统管理的二进制文件,是系统管理员专用的
usr/bin用户使用的应用程序
usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
boot该目录下存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
devdevice的缩写,该目录存放Linux的设备文件。在Linux中访问设备的方式和访问文件的方式是相同的
etc该目录存放的是系统管理所需要的配置文件和子目录
home用户的主目录。Linux中,每一个用户都有一个自己的目录,目录以用户的账号命名。
lib该目录存放的是系统最基本的动态链接共享库,类似于Windows中的DLL文件
lost+found这个目录下一般是空的,当系统非法关机后,这里就存放了一些文件。"断电"后恢复的文件
media该目录下存放的是 Linux自动识别的一些设备,如:U盘、光驱等等。。。
mnt该目录可以让用户临时挂载别的文件系统,比如光驱。。。
opt该目录存放服务器额外安装的一些软件,比如mysql、nginx,docker.....,该目录默认是空的
proc该目录是一个虚拟目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
sys该目录下安装了Linux2.6内核中新出现的一个文件系统sysfs
root该目录为超级权限者的用户主目录。是给管理员用户用的
tmp该目录用来存放一些临时文件
usrUnix Software Resource的缩写。这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows中的program files目录,注意不是用户目录
var该目录下存放经常被修改的东西,比如各种的日志文件
run该目录下存放系统启动以来的信息。如果系统重启,这个目录下的文件应该被删掉或清除

2. 服务器管理和维护建议

  1. 远程服务器不允许关机、只能重启。
  2. 重启服务器时应该关闭服务(管理员要小心)。
  3. 不要在服务器访问高峰时运行高负载命令。
  4. 远程配置防火墙(过滤器:靠IP地址、端口号等识别)时不要把自己踢出服务器。
  5. 合理密码定期更新。
  6. 合理分配权限。
  7. 定期备份重要数据和日志。

3. linux常用命令

命令基本格式:

命令 [-选项][参数],如ls -la /etc

说明:

  • []代表选项,表示可选。
  • 选项可以简化,-a等于--all
  • 可以有多个选项

3.1 文件处理命令

  1. ls
  • -a 查看所有的(包含隐藏)
  • -l -lh(人性化,如字节->k),列出文件的详细信息:文件类型以drwxr-xr-x为例:
    • 第一个字符:-表示文件、d表示文件目录、l表示软链接)rwx读写执行。
    • 后九个字符:所有者、所属组、其他人。
    • -rwxr-xr-x表示该文件所有者可读可写可执行、所属组可读可执行、其他人可读可执行。 image.png
  • -d 针对某个目录查看详细信息。
  • -i 显示inode, 主要是用来查看硬链接。 image.png
  1. touch:创建空文件(不要创建带空格的文件名),touch binru test创建了两个文件。
  2. cat:显示文件内容。-n(显示行号)。可以倒过来用 tac。
  3. more:分页显示文件内容。
  4. less:分页显示文件内容(可上下翻)。
  5. head:看文件头几行。 head -n(指定行数) 20 /etc/services
  6. tail:看文件末尾几行。 tail -n 20 /etc/services,tail -f(动态显示文件内容) image.png
  7. ln(link):ln -s /etc/issue /temp/issue.soft,生成软连接文件;ln -s /etc/issue /temp/issue.hard,生成硬连接文件(软连接文件都是lrwxrwxrwx,权限其实由源文件决定,硬链接不能接目录),类似于快捷方式。 image.png

3.2 目录处理命令

  1. mkdir:创建多个目录 mkdir -p(递归创建) /tmp/binru/test,binru文件夹原先不存在,也可以创建
  2. cd
  3. . 当前目录
  4. .. 上级目录
  5. pwd:获取当前目录
  6. rmdir:删除空目录,删除没有回收站,不要误删除,-r(递归删除),-f(强制删除)。 image.png
    • rm -rf *(表示删除当前目录下所有文件)
  7. 目录处理命令:cp -r 递归复制文件
  • -p 文件复制保持文件属性,如时间
  1. 目录处理命令:mv 剪切和更名,mv和rename都可以更名 image.png

3.3 文件管理命令

名称对文件的权限对目录的权限
r可以查看文件可以列出目录中的内容
w可以修改文件内容可以在目录中创建、删除文件
x可以执行文件可以进入目录
  1. chmod:更改权限命令,只有所有者和管理员可以更改
    • [{ugoa}{+-=}{rwx}] u:所有者;g:所属组;o:其他人;a:所有人。
    • -R 递归修改
    • r=4,w=2,x=1(rwxrw-r--表示764)
  • chmod u+x,g=rwx,o-r test.txt为所有者添加可执行权限且为其他用户减去读权限
  • chmod -R 777 /tmp
  1. chown:更改文件所有者

    • chwon binru test(chown [用户][文件或目录])
  2. chgrp:更改文件所属组

    • chgrp binru test(chgrp [用户][文件或目录])
  3. umask -S:显示\修改新建文件缺省权限

    image.png

3.4 文件搜索命令

  1. find:文件搜索
    • find /etc/init(精准搜索,找etc/init) image.png
    • find /etc/ -name *init*(模糊匹配,etc下包含init,严格区分大小写,*匹配任意字符,?匹配单个字符)
    • find /etc/ -iname *init*(模糊匹配,etc下包含init,不区分大小写)
    • find / -size +204800(1k == 2个数据块,查找大于100M的文件)
    • find / -user binru.wang(查找所有者为binru.wang的文件)
    • find /etc -cmin -5(cmin文件属性change、mmin文件内容修改、amin文件访问时间)
    • find /etc -size +163840 -a -size -204800(-a表示and -o表示or,查找大于80MB小于100MB的文件)
    • find / -inum 31531 -exec rm {} \(根据i节点找到并删掉)
  2. locate:在文件资料库中查找文件
    • updatedb,更新文件资料库
    • -i 不区分大小写
  3. which:搜索命名所在目录及别名信息
  4. whereis:搜索命令所在目录及帮助文档路径
  5. grep:在文件中搜索字串匹配的行并输出,过滤条件(常用)
    • cat file2.txt |grep -nf file1.txt(找两文件相同的行并显示行号)
    • grep "linux" file1.txt(从文件中查找linux关键字)

3.5 帮助命令

  1. man:获取配置文件与服务的帮助
    • man ls image.png
  2. whatis:
  3. --help:列出常见选项
  4. info:
  5. help:查shell内置命令

3.6 用户管理命令

  1. useadd:添加新用户
  2. passwd: 设置用户密码,要符合复杂度要求 image.png
  3. who:登陆用户名|登陆终端(tty本地终端、pts远程终端)|登陆时间|IP地址 image.png
  4. w: 查看登陆信息
  5. uptime: 查看连续运行时间,也可以查看负载情况 image.png

3.7 压缩解压命令

windows下常见的压缩包格式有:.zip.7z.rar linux下常见的压缩包格式有:.gz

  1. gzip: 压缩文件,只能压缩文件,不能压缩目录,压缩成功后源文件没有了。
  2. gunzip:解压缩 image.png
  3. tar: 打包目录,tar 选项[-zcf][压缩后文件名][目录]
    • -c 打包
    • -v 显示详细信息
    • -f 指定文件名
    • -z 打包同时压缩
    • tar -zcf test.tar.gz test(打包并解压)
    • tar -zxvf test.tar.gz(解压解包)
  4. zip: -r可以压缩目录,压缩成功后源文件还在
  5. upzip: 解压缩
  6. bzip2: gzip的升级版

3.8 网络命令

  1. write:给用户发短信,以ctrl+D结束
  2. wall: 给当前在线的所有用户发短信,自己也能收到
  3. ping: 测试网络联通性 image.png
    • ping -c 3 192.168.0.1
  4. ifconfig: 查看当前网络状态
  5. mail: 相比write,不管在不在都能发
  6. last: 列出与过去登陆系统的用户信息(常用的日志查询命令) image.png
    • lastlog -u uid(查看某一个用户)
  7. traceroute:跟踪路由
  8. netstat: 显示网络相关信息
    • -t: TCP协议
    • -u: UDP协议
    • -l: 监听
    • -r: 路由
    • -n: 显示IP地址和端口号
    • netstat -tlun: 查看本机监听的端口
      image.png
    • netstat -an: 查看本机所有网络连接
    • netstat -rn: 查看本机路由表
  9. setup: 设置网络配置(有些linux发行版没有)
  10. mount:设置挂载点(图形界面一般自动挂载,命令行不会,相当于做软链接)
    • mount -t iso9660 /dev/sr0 /mnt/cdrom

3.9 关机重启命令

关机之前应该先断开服务,服务器尽量不要关机,只能重启

  1. shutdown:关机(更为安全)。-r:重启;-h:关机;-c:取消前一个命令
    • showdown -h now(立即关机)
    • showdown -h 08:30(8点30关机)
  2. halt: 关机
  3. poweroff: 关机
  4. init 0: 关机
  5. reboot: 重启
  6. init 6: 重启

系统运行级别:runlevel(查看当前运行级别),init x(设置运行级别) image.png

0: 关机

1: 单用户(类似windows单用户模式,启动最小核心程序进入修复)

2: 不完全多用户(命令行不包含NFS,网络文件系统服务如共享):有安全风险

3: 完全多用户(命令行)

4: 未分配

5: 图形界面

6: 重启

  1. logout: 退出登陆

4. Vim常用操作

Vim(vi)作用:建立、编辑、查看文本文件,没有菜单,只有命令 image.png

4.1 基础用法

  • vim filename :如果已有文件,则打开;没有该文件,则创建并打开一个文件filename。
  • Ctrl+q :当vim卡住时,可以取消正在执行的命令

4.2 一般命令模式、编辑模式、命令行模式

  • 进入vim后,按下i 键,则进入编辑模式,此时可以修改文本内容;按下Esc 键,退出编辑模式,此时可以进行文本的选择、查找、光标移动等。

4.3 光标移动

  • n:n表示整数,按下数字后再按空格,光标向右移动n个字符
  • 0或Home:光标移动到本行开头
  • $或End:光标移动到本行末尾
  • gg:光标移动到第一行
  • G:光标移动到最后一行
  • :n或nG:n为整数,光标移动到第n行

4.4 查找、替换

  • :noh 关闭查找关键词高亮
  • /word:向光标之后寻找第一个值为word的字符串
  • ?word:向光标之前寻找第一个值为word的字符串
  • n:重复上一个查找操作
  • N:反向重复前一个查找操作
  • :n1,n2s/word1/word2/g:n1与n2为数字,在第n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
  • :1,$s/word1/word2/g:将全文的word1替换为word2
  • :1,$s/word1/word2/gc:将全文的word1替换为word2,且在替换前要求用户确认。

4.5 文本的选择、复制、删除、编辑、保存

  • v:选中文本
  • d:删除选中的文本
  • dd:删除当前行
  • y:复制选中的文本
  • yy:复制当前行
  • p:将复制的数据在光标的下一个位置/下一行粘贴
  • u:撤销
  • Ctrl+r:取消撤销
  • >:将选中的文本向右缩进一次
  • <:将选中的文本向左缩进一次
  • :w:保存
  • :w! 强制保存
  • :q:退出
  • :q!:强制退出
  • :wq :保存并退出

4.6 显示行号、格式化、高亮

  • :set paste: 设置成粘贴模式,取消代码自动缩进
  • :set nopaste:取消成粘贴模式,开启代码自动缩进
  • :set nu:显示行号
  • :set nonu;隐藏行号
  • gg=G:将全文代码格式化

5. 软件包管理

5.1 软件包分类

  • 源码包
    • 脚本安装包
  • 二进制包(相对于源码包经过了编译)