(一)Linux 常用命令

廉价感情. 提交于 2019-12-23 18:13:36

Linux的目录结构

“/” :最高层根目录,没有父目录(相当于Windows中"我的电脑")
etc :系统配置文件的存放目录,不建议在此目录下存放可执行文件
usr/local :应用程序存放目录
root :系统管理员root的home目录

  • 每个用户都有home目录
  • 超级管理员的home目录为 /root
  • 相当于Windows的桌面,也就是一登录就能看到的文件夹

Linux常用命令

磁盘管理命令
ls:列出目录内容,参数如下:

  • -a 或 --all :列出所有文件(包括隐藏文件,名字以 . 开头)、特殊目录、. 和 …
  • -l :列出文件的详细列表(d开头表示文件夹,-开头表示普通文件,l表示软链接文件(相当于Windows中的快捷方式),可以是:ls -a -l,ls -l 简称 ll,ls后也可跟文件夹名称,查的是该文件夹里目录信息)
  • -h(human readable):会把文件大小有字节的换算为 kb 显示
  • -d :查看目录本身的信息,而不是查看目录下的文件信息
  • -i : 显示 i 节点

cd:切换目录(change directory)

  • cd ~ :直接回到当前用户的home目录
  • cd / :直接进入根目录
  • cd / 目录名 :从根目录开始,切换到指定目录(绝对路径)
  • cd … :向上一层
  • cd - :最近两次的访问目录之间进行切换

pwd :显示当前所在目录的绝对路径(print working directory)

  • 绝对路径:从根目录开始寻找资源
  • 相对路径:从当前目录开始寻找资源

mkdir :创建文件夹目录(make directory)

  • mkdir d1
  • mkdir d1 d1/d2(先创建d1,再创建d1下的d2)级联创建
  • mkdir -p d1/d2(先创建d1,再创建d1下的d2)级联创建

rmdir :删除空目录(remove directory)

  • rmdir d1
  • rmdir d1/d2
  • rmdir d1/d2 d1(先删除d1下的d2目录,再删除d1)

rm :删除文件或目录(remove)

  • rm 文件:会有确认的删除询问
  • rm -f :强制删除(rm无法删除一个目录,即使是空的)
  • rm -r 文件 :-r 表示递归处理
  • rm -rf 目录:强制删除该目录下的所有目录文件(包括该目录)
  • rm -rf * :删除当前目录下所有文件
  • rm -rf /* :删除Linux系统根目录下所有文件(不要轻易尝试)

tab :补全目录,补全命令

文件命令
cat 文件名:快捷的查看文件内容(适合查看内容较少的文件的内容)

more 文件名:分页显示文件内容,并且支持跳转行功能

  • 回车:下一行
  • 空格:下一页
  • b :返回上一页
  • q :退出

less 文件名:分页显示文件内容,操作更细致

  • less -m 文件名:显示百分比
  • less -N 文件名:显示行号
  • less -Nm(或 less -mN):即显示百分比,也显示行号

vi 工作模式
在这里插入图片描述

  • 一般模式:可以浏览文件内容,进行文件快捷操作
    ①单行复制:yy(复制),p(粘贴)
    ②单行删除:dd(删除)
    ③多行复制:2yy(复制2行)
    ④多行删除:2dd(删除2行)
    ⑤数字 + ↑↓方向键:上下跳至多行
    ⑥数字 + ←→左右键:一行内跳至多位置
  • 插入模式:可以编辑文件内容
  • 底行模式:①可以进行退出:q! ②保存并退出操作:wq 文件名 (write quit)

tail -数字 文件名:可以快速查看文件后n行的内容
head -数字 文件名:可以快速查看文件正n行的内容

cp :复制(copy)

  • cp 源文件 目标文件:cp a.txt b.txt(复制a.txt 命名为b.txt)
  • cp -r 源目录 目标目录:cp -r d1 d2 (复制d1文件目录 命名为d2文件名)(-r参数表示递归复制)

mv :移动(move)(相当于:剪切粘贴)

  • mv 源文件或目录 目标文件或目录(mv a.txt /d1/b.txt :将当前文件目录下的a.txt文件剪切粘贴至d1文件目录下并命名为b.txt,b.txt可写可不写,不写就是显示原文件名,写了就是变更文件名)(如果移动的文件或目录在目标位置已经存在,系统会询问是否进行覆盖y/n?)
  • mv -f :源文件或目录 目标文件或目录(mv -f d1 d2)(移动文件夹到目标位置,如果目标位置已经存在该文件或文件夹则强制覆盖)
  • mv还可以修改一个文件或目录的名字(mv 1.txt 2.txt:将1.txt变更命名为2.txt),本质上还是移动,只不过移动前后的位置都是当前位置而已

软连接和硬链接的区别
链接命令

  • In -s[源文件] [目标文件]

  • 命令英文原译:link

  • 功能描述:生成链接文件

  • 选项:-s 创建软链接 (不带 -s 是硬链接)

  • 用户通过文件名查找一个文件内容的模型图
    在这里插入图片描述

  • 可以通过 ls -i 来查看文件的 i 节点值(i 节点相当于id)

硬链接特征

  • 拥有相同的 i 节点(id)和存储block块,可以看做是同一个文件
  • 可以通过 i 节点识别
  • 不能跨分区
  • 不能针对目录使用

硬链接模型图
在这里插入图片描述
无论是修改原文件还是修改硬链接文件,都是修改同一片块区
在这里插入图片描述
原文件和硬链接文件具有相同的 i 节点,复制是把存储空间翻倍,创建硬链接是多创建一个引用
在这里插入图片描述
删除原文件后,还可以根据硬链接文件找到文件内容
在这里插入图片描述
在这里插入图片描述

软连接特征

  • 类似Windows中的快捷方式
  • 软链接拥有自己的 i 节点和block块,但是数据块中只保存原文件的文件名和 i 节点号,并没有实际的文件数据
  • lrwxrwxrwx (l 表示软链接,软链接的权限总是为 lrwxrwxrwx)
  • 修改任意文件,另一个都改变
  • 删除原文件,软链接不能使用

软链接模型图
在这里插入图片描述
在这里插入图片描述
*在为指定文件创建软链接时,要写指定文件的绝对路径!(硬链接无要求)

find [搜索范围] [搜索条件]

  • 避免大范围搜索,因为find会非常耗费系统资源

find / -name a.txt :按照文件名搜索(带/是在整个根目录下寻找,不带/只在当前目录下寻找)
find / -iname a.txt :不区分大小写,按照文件名搜索
find /var/log mtime +10 :搜索10天前修改的文件

  • -10:10天内修改的文件
  • 10:10天前当天修改的文件
  • +10:10天前修改的文件

在这里插入图片描述

  • -atime:访问文件的时间
  • -ctime:改变文件属性的时间
  • -mtime:修改文件内容的时间

find . -size 25k :查找文件大小是25kb的文件

  • -25k:小于25kb的文件
  • 25k:等于25kb的文件
  • +25k:大于25kb的文件
  • +2M:大于2M的文件(M必须大写)

find . -inum 123456 :查找 i 节点是123456的文件
find /etc -size +20k -a -size -50k :查找 /etc/ 目录下,大于20k且小于50k的文件

  • -a and:逻辑与
  • -o or:逻辑或

find /etc -size +20k -exec ls -lh {} ;

  • -exec 命令 {} ;(标黄是固定写法,中间命令可以随意换)
  • 对搜索结果执行操作

例:
在这里插入图片描述
通配符(必须在双引号之内使用通配符)(抓住两点:查列数看内容)
在这里插入图片描述
grep 正则表达式 文件或目录:在指定的文件或目录中,返回所有匹配正则式的行

  • grep a a.txt(查找a.txt文件中包含a的一行)
  • grep -i a a.txt (忽略大小写)
  • grep -v a a.txt:排除匹配的行(取反)
  • grep -n a a.txt:打印行号

管道:“|” 可以连接多个linux命令(只要有输出的命令都可用于管道)

  • 命令1 | 命令2 | 命令3
  • 前面命令的处理结果,作为后面命令的参数
    在这里插入图片描述

压缩、解压命令
linux压缩包

  • *.tar :打包,文件大小不会进行压缩
  • *.tar.gz :打包并压缩

tar 参数

  • c:建立一个压缩文件
  • x:解开一个压缩文件
  • z:使用gzip格式压缩
  • v:压缩过程中显示文件
  • f:使用文件名,在 f 之后参数要写出压缩(被压缩)的文件名

压缩

  • tar -zcvf 压缩包的名字 需要压缩的内容:将某(些)文件使用gizp格式创建一个压缩文件,过程中显示文件名(注意:参数顺序不能变)
  • 例:tar -zcvf foo.tar.gz *
    在这里插入图片描述

解压

  • tar -zxvf
  • tar -zxvf 压缩包的名字 .tar.gz
  • tar -zxvf 压缩包的名字 .tar.gz -C 指定解压路径

系统命令
ps:查看进程信息(process status)

  • ps -e :显示所有的进程
  • ps -f :完整输出(full format)
  • ps -ef :查看最全的进行信息
    在这里插入图片描述
  • UID :表示进程被哪个用户打开
  • PID :进程的 id
  • CMD :进程对应的程序位置

kill:关闭进程

  • kill 进程id:关闭指定进程
  • kill -9 进程id:强制关闭进程
    在这里插入图片描述

ifconfig:查看 ip
ping:测试与目标主机的连通性

  • ping www.baidu.com:会持续不断,一直测试
  • ctrl + c:可以停止ping 命令

shutdown:关机命令(1分钟后进行关机)(shutdown -now:立即关机)

  • shutdown [选项] 时间:
  • -c :取消关机
  • -h :关机(模式)
  • -r :重启
    在这里插入图片描述

init 运行级别
系统运行级别

  • init 0 :关机
  • init 1 :单用户(类似于Windows中的安全模式)
  • init 2 :不完全多用户,不含NFS服务(文件共享服务)
  • init 3 :完全多用户(默认级别)
  • init 4 :没有使用该级别,并未分配
  • init 5 :图形界面(前提是已安装好图形界面)
  • inti 6 :重启

查询当前系统运行在什么级别:runlevel

  • N 表示当前级别之前的级别为NULL
    下图表示为当前级别是3,3之前的级别是NULL在这里插入图片描述

如何查看权限?
– Linux权限格式:<类型><用户><组><其他用户>
在这里插入图片描述
在这里插入图片描述

  • r 表示可读、w 表示可写、x 表示可执行、- 表示无权限

一个文件在创建的时候,用户就已经有关于该文件的默认权限了

chmod:修改文件或目录的权限(change mod)

  • chmod [参数][<权限范围><符号><权限代号>]
  • 参数:-R 或 --recurisive ,表示递归处理,将指定目录下的所有文件及子目录一并处理
  • 权限范围:u 当前用户、g 当前用户所属组、o 其他用户组、a 所有用户
  • 符号:= 覆盖、+ 追加、- 去掉
  • 权限代号:r 、w 、x
    在这里插入图片描述

sed:不用进入文件,在外部修改文件内容

  • sed ‘s/old/new/g’ 文件名(带g(global)是在每一行都修改,不带只修改默认找到的第一行)在这里插入图片描述
  • 注意:以上的sed 命令,并没有真正的修改文件中的内容,看到改变的结果,仅仅是存放于缓存中的结果而已(等同于预览效果)
  • 如果想要让sed 修改的结果能被存入到真实文件中,需要添加一个 -i 的参数(sed -i ‘s/old/new/g’ 文件名)

sed 案例1
在文件中每一行前面加一个空格

  • ^ 表示每一行的开头
  • $ 表示每一行的末尾
  • 、& 表示添加,后面的空格表示添加空格“/&”
    在这里插入图片描述

sed 案例2
在指定内容的下一行后加新内容(而不是替换)

  • /a :表示在指定内容的下一行添加内容
  • /i :表示在指定内容的上一行添加内容
    在这里插入图片描述
    sed 案例3
  • 打印指定内容所在的行
  • 打印指定行数
    在这里插入图片描述

sed 案例4

  • 去除空行
  • 排序
    在这里插入图片描述

awk 案例1

  • 打印文件中指定的列
  • 可以看出,列和列之间默认是通过空格隔开的
    在这里插入图片描述

awk 案例2

  • 如果列和列之间不是使用空格隔开的,而是使用其他字符隔开的,比如“-
  • 1)-F :自定义分隔符
    在这里插入图片描述
  • 2)搭配 sed
    在这里插入图片描述

crontab:从定时的重复的工作中解放出来
工作中遇到的困难:
1)每分钟需要执行一个程序来检查系统的运行状态
2)每天凌晨需要对一天的业务数据进行统计
3)每个星期需要把日志文件备份
4)每个月需要把数据进行备份

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!