初识Linux及常用指令

由于Unix系统开始收费,赫尔辛基大学的一名研究生Linus Benedict Torvalds于1991年编制出类似于Unix系统的名为Linux的系统,正式的1.0版本是在1994 年公布的。

Linux操作系统=linux内核+外部应用

Linux基本操作都是命令操作:1.对目录(文件夹)进行操作2.对文件进行操作3.其他操作(压缩/解压缩,时间,匹配查找)

Linux下一切皆文件

1.Xshell连接虚拟机

在Linux终端中输入命令ifconfig查看虚拟机IP地址;在Xshell下敲:ssh [ip]

XShell 下的复制粘贴
复制: ctrl + insert 粘贴: shift + insert ctrl + c / ctrl + v 是不行的

常用基本指令

Linux命令语法:命令名 [操作选项] [源操作对象] [目的操作对象]

对目录进行的操作:
  • ls [选项] [目录或文件]**************************************查看目录
    • -l查看目录详细信息
    • -a查看隐藏文件(以.开头的文件是隐藏文件)

Linux下的目录结构与windows完全不同(不分区:C盘D盘F盘…);Linux中的目录结构只有一个,其磁盘分区与目录结构是相互独立的,互不影响。
Linux的目录结构是树状结构,只有一个根目录,其树状分支为各个分支目录;磁盘分区是以挂载的形式放在根目录下,就可以认为给当前目录分配了一片硬盘空间存放内容。
Linux的磁盘分区一般分为三块:交换分区(交换内存)、硬盘、磁盘分区;交换分区的大小一般为物理内存(<8G的情况下,16G的物理内存,交换分区一般也设为16G)大小的2倍

一般情况下一个终端刚打开,用户所处的目录是当前目录的家目录
家目录一般有两种:1.总的home家目录2.用户自己的家目录(home下的子目录)

根目录下的各目录的意义

在这里插入图片描述
文件详细信息中,各列代表不同的含义

文件类型|权限|链接数|属于哪个用户|用户组|文件大小(字节)|最后一次状态改变时间|文件名

第一列的第一个字符是用于表明文件类型的

  • d:目录型wenjian
  • -:普通文件

windows是按文件后缀名区分文件类型的,但Linux并不以后缀名区分文件类型,后缀名仅用于区分文件功能

以点开头的文件的特殊文件:
每一个目录下都有.(代表当前目录)或..(代表上层目录)
根目录是最上层目录,根目录的上层目录还是根目录
若ls后不加操作对象,则默认是./(当前目录)

从根目录开始查找的目录(路径)叫做绝对路径
从当前路径开始查找的路径叫做相对路径

  • pwd***************************************** 获取当前路径
  • mkdir【目录名】******************************** 创建目录
    -p递归创建多层级目录
  • rmdir 【目录名】
    -p递归删除(只能删除多层空目录)
  • rm【文件名】*********************************** 删除文件
    • -r删除所有文件包括目录
    • -f忽略提示信息直接删除
    • -i添加提示信息
  • cd【目录名】****************************** 进入指定目录
    快速返回家目录:cd ~
    到上一次所在路劲:cd -
  • mv【源文件或目录】【目标文件或目录】******** 剪切
    (目标文件需使用完整路径)
  • touch【文件名】 ***************************** 创建空文件
    若文件不存在,则创建空文件,若存在则刷新时间属性(默认当前系统时间,也可以指定时间)
    • -d【“XXXX-xx-xx xx:xx:xx”】
    • -r【源文件】【目标文件】以源文件时间刷新目标文件时间
    • -t 【[CC]YY]MMDDhhmm[.SS】
  • cp【源文件】【目标文件】******************** 拷贝文件
    -r拷贝目录和其下的所有文件

  • man 【命令】************************** 查看命令详细信息 Q退出查看

  • cat 【文件名】***************************** 将文件内容打印到终端
    -n显示行号

  • tac 【文件名】**************** 逆序将文件内容打印到终端
    (适用于打印短小文件内容)

  • more 【文件名】**************************** 分页显示文件内容
    (空格向下翻页,回车向下翻行,q退出)

  • less 【文件名】按页显示文件内容
    • ?String 向上搜索字符串
    • / String向下搜索字符串 (F向下翻页,B向上翻页,回车按行移动,q退出) less可以随意浏览内容,并且查看完文件不会自动退出,显示end;more只能向后翻页
  • head【文件】显示文件开头十行内容
    -n<行数> 显示前面指定行数

  • tail 【文件】显示文件末尾十行内容
    -n<行数> 显示末尾指定行数
    -f 动态刷新文件末尾数据(循环读取,不会终止,ctrl+c退出)

‘>>’ 标准输出重定向符号(把原本要写入到显示终端的数据写入到指定文件中)
echo “String”********打印字符串到显示终端
eg: echo “String” >> 【文件名】将字符串数据写入到指定文件中
管道符:|: 连接两个命令,将前边命令的输出当作后边命令的输入进行处理
标准输入:键盘
标准输出:显示终端
标准错误:显示终端
'>'标准输出重定向,清除原有内容,添加新数据
【> file】清空file中的所有数据

  • cut [选项] 文件名 ****************************列截取

-c 以字符为单位进行分割截取
cut -c4 1.txt,截取文件中每行的第四个分隔符
cut -c1-4 1.txt 截取文件中每行第1-4个字符
cut -c5- 1.txt 从第五个字符开始截取后面的所有字符
-d 自定义分隔符,默认为制表符
-f 与-d一起使用,指定截取的区域
cut -d ‘:’ -f1 password 截取在password文件中以冒号为分割符的第一列
cut -d: -f1,7 password |head 截取在password文件中以冒号为分隔符的第一列和第七列,并且只显示头十行

压缩相关操作

  • zip【压缩文件名.zip】 文件名********************************************************** 压缩
  • unzip 【压缩文件名.zip】********************************** 解压缩(解压- windows的zip包)
  • gzip 【文件名】************************************************************ 压缩为.gz后缀的文件
  • gunzip 【文件名.gz】******************************************** 解压缩(解压*.gz压缩包)
  • bzip2 【文件名】************************************************************ 压缩为.bz2后缀的文件
  • bunzip2 【文件名.bz2】****************************************** 解压缩为.bz2后缀的文件

(压缩比例:bzip2>gzip>zip)

linux下最常见的包(*.tar.zip;*.tar.bz2)

  • tar 【*.tar】【文件名】**************************************************
    打包/解包
    -c :建立一个压缩文件的参数指令(create 的意思);
    -x :解开一个压缩文件的参数指令!
    -t :查看 tarfile 里面的文件!
    -z :gzip格式压缩解压缩
    -j :bzip2格式压缩解压缩
    -v :显示详细的打包解包信息
    -f:指定压缩包名称 在 f 之后要立即接档名
    -C : 解压到指定目
    eg:tar -czvf hello.tar.gz hello.txt 打包为gzip格式的包
    eg: tar -xjvf hello.tar.bz2 解压bzip2格式的包
    eg: tar -xvf hello.tar.gz 不指定解压格式(只能识别gzip和bzip2格式的包)

时间相关命令

  • cal **************************************************显示日历命令
    -3 查看当前月份附近共三个月的日历
    -y查看全年日历
    -j以一年一年中的第n天显示日历
  • date*************************************************显示当前系统时间
    • -s 设置时间
      date -s //设置当前时间,只有root权限才能设置,其他只能查看。
      date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00 date -s 01:01:01 //设置具体时间,不会对日期做更改
      date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
      date -s “01:01:01 20080523″ //这样可以设置全部时间
      date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
      date -s “20080523 01:01:01″ //这样可以设置全部时间
    • +’%y-%m-%d %h:%m:%s’:以指定格式显示时间

其他命令

  • bc******************************************************************************* 计算器
  • su **************************************************************************** 切换用户
  • echo*********************************************************** 打印字符串到显示终端
  • clear ******************************************************************************* 清屏
  • ifconfig *****************************************************************查看系统ip地址
  • shutdown -h****************************************************************** 立即关机
  • runlevel ****************************************************************** 查看系统的运行级别
  • (面) grep 【‘字符串’】 【文件名】************在指定文件中匹配包含有指定字符串的行(区分大小写)
    -i 忽略大小写
    -v 反向匹配,匹配不包含指定字符串的行
    -R 对目录下的所有文件递归遍历匹配
    -B number 显示匹配行前number行
    -A number 显示匹配行后number行
    -C number 显示匹配行前后number行
    '>xx’表示以指定关键字开头
    ‘xxxKaTeX parse error: Expected group after '^' at position 15: '’表示以指定关键字结尾 '^̲’ 表示空行
不以root开头的行:grep -v '^root'
  • find ******************************************查找文件
    -name “xxx”按文件名查找*为通配符(必须指定文件路路径)
    eg::find ./ -name "*e*"查找包含e的文件
    -mtime按时间查找 +num 在指定时间以内查找 -num 在指定时间(单位是天)以外查找(必须指定文件路路径)
    -size 按文件大小查找(必须指定文件路路径)

  • sort *******************************************将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后按升序输出

-u 去除重复行
-r 降序排列
-o 将排序结果输出到文件中,类似重定向符号>
-t 分隔符
-n以数字排序,默认是按字符排序
-k第N列
-b忽略前导空格
-R随机排序,每次结果都不同
sort -nr -t: -k3 1.txt 将1.txt中以冒号分割的第3列,按数字降序排列

  • uniq *******************************************去除连续的重复行

-i 忽略大小写
-c统计重复行次数
-d只显示重复行
uniq 2.txt去文件中的除连续的重复行
uniq -c 2.txt 显示重复行的次数

  • tee *****************从标准输入读取并写入到标准输出

-a双向追加重定向
echo hello world | tee 11.txt 在屏幕上打印hello world 并写入到11.txt文件中

  • diff 【文件1】【文件2】 *****************逐行比较两个文件的不同(以第二个文件为标准文件)

-b 不检查空格
-B不检查空白行
-i 不检查大小写
-w 忽略所有空格
-Q 对比两个目录的路径
-c上下文格式显示
-u合并格式显示

diff结果:

diff结果,nomal格式:
c: change
1c1,2第一个文件的第1行改变才能和第二个文件的1到2行匹配
<xxx: 左边文件是xxx
xxx:右边文件是xxx
d:删除
3d3:第一个文件的第三行删除才能和第二个文件的第三行匹配
a:增加
diff结果,上下文格式:
!:表示此行需要改变才能和第二个文件匹配
-:表示此行需要删除才能和第二个文件匹配
+:表示此行需要增加才能和第二个文件匹配

通过patch打补丁的方式改变文件

diff -uN file1 file2 > file.patch 找出两个文件的不同然后输出到其他文件中,-N:将不存在的文件当做一个空文件
patch file1 file.patch 将不同内容补丁到文件

  • paste *****************按行合并文件

-d :自定义间隔符,默认是tab
-s:串行处理

shell运行原理

命令行解释器,实际上也是一个程序(bash/dash)
shell命令:内建命令,外部命令

权限相关

用户权限:超级管理员root,普通用户
文件权限:

文件所有者u  文件所属组g   其他用户o
 rwx        rwx          r-x

文件类型
d:文件夹 -:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

  • umask ******************************* 查看或设置文件的默认创建权限掩码
    默认创建文件的权限777,文件最终权限算法777&(~umask)
    权限位suid sgid
    umask实际上有四位,后三位代表
  • chmod 【八进制位】【文件名】************************* 以八进制位修改权限
    eg:chmod 0775
  • chmod 【用户表示符±=权限字符】【文件名】********************** 修改权限
    +:向权限范围增加权限代号所表示的权限
    -:向权限范围取消权限代号所表示的权限
    =:向权限范围赋予权限代号所表示的权限
    用户符号:
    u:拥有者
    g:拥有者同组用
    o:其它用户
    a:所有用户
    eg:chmod u+w hello.txt
    沾滞位:主要针对目录,功能是让用户在一个目录下可以创建文件,但是只能删除自己的文件而不能删除别人的文件。
    chmod +t file
  • useradd ******************************************* 创建用户
    -m 创建用户并为这个用户创建家目录
  • userdel******************************************** 删除用户
    -r删除用户并删除相关数据
  • chown 【新用户】【文件名】**********************************修改用户权限所有者
  • chgrp【新组】【文件名】********************************************修改文件所属组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值