Linux系统基础小知识

linux基础

系统概述

  • Linux版本及代表含义

    核心版本(Kernel)

    • 由三部分组成

    • 如2.6.34表示 2为主版本号 6为次版本号 34 表示第34次修订

    • 次版本为奇数,则表示是测试版本,偶数则是稳定版本

    发行版本(Distribution)
    Ubuntu,Debian等


常用命令

格式
  • bash格式:命令名 选项 参数
  • 注意
    • 必须小写
    • 选项一“-”开始,多个选项可以用“-”连接起来
    • 命令太长放不下行位末尾输入“\”,按回车
基础命令
1. who 查看当前用户
2. date 日期
可格式化输出
3. cal 日历
cal [month][year]
4. clear
5.bc 计算器
预设输出整数,若要输出小数则要设置scale=小数点位数
一些热键
  1. Tab

    命令补齐和文件补齐,按两下
  2. Ctrl+c

    中断当前程序
  3. Ctrl+d

    键盘输入结束,能替代exit
  4. Shift + Pg up/pg down

    翻页
在线求助(记不清命令作用时)
  1. –help

    查自己用过的指令

  2. man

    查自己没用过的命令
    表格第一行指令后的数字含义
    在这里插入图片描述

    输入/word,来主动搜寻关键词

Linux的文件权限和目录配置

使用者和群组
  1. 文件拥有者

  2. 群组

    仅组内成员能查看,每个账号可以有多个群组的支持,每个使用者可以设置自己的私有文件,其他人也不能看

  3. 其他人

注意:默认情况下,系统的账号等相关信息都在/etc/passwd中,密码则在/etc/shadow,组名在/etc/group

文件权限

使用ls -l 长格式显示(详细)共10位
显示结果为:
文件类型和权限 链接数 文件主 文件组 文件大小 修改时间 文件名
参数介绍
(1)第一个字段中第一个字符表示文件类型
- 普通文件/档案
d 目录
b 块设备文件,可随机存储装置
c 字符设备文件,一次性读取装置
l 符号链接文件
(2)随后9个字符表示文件的存取权限
r 读
w 写
x 执行
s 当文件被执行的时候,把该文件的UID或GID赋予给执行进程的UID或GID
t 设置了粘贴位(留在内存不被换出)
- 没有设置权限
每3位一组
第一组为档案拥有者的权限
第二组为同群组的权限
第三组为其他非本群组的权限
(下面chmod也有)
(3)对于符号链接文件
在文件名字段显示的形式是 文件名->目标文件的路径名
(4)对于设备文件
在列表的第一行给出该目录的总块数

改变文件权限和属性

chmod 用于改变或设置文件或目录的存取权限
只有文件主或超级用户才有权用该命令改变文件或目录的存取权限
根据表示权限的方式不同,有两种用法:以符号模式改变权限和一绝对方式改变

  • 符号模式

    格式 chmod key 文件名
    key 组成:who 操作符 mode
    who 可以是下列任意字母或组合
    u 用户
    g 即和文件属主有相同的ID的所有用户
    a 所有用户
    o 其他用户
    操作符号
    + 添加某个权限
    - 删除某个权限
    = 赋予某个权限并取消其他权限
    mode
    r 读
    w 写
    x 执行
    u 与文件属主有拥有一样的权限
    t 保留程序的文本到交换设备上
    g 和文件属主同组用户有一样的权限
    o 和其他用户有一样的权限

  • 绝对方式

chmod 数字 文件名

chgrp:改变群组
chgrp [-R] dirname filename
chown:改变档案拥有者
chown [-R] 账号名称 目录或文件

文件种类和拓展名
  • 正规文件

    221

文件与目录
文件
  • 比较文件命令

    1. comm 对已排序文件比较
    2. diff 比较文件并找出不同
    
  • 复制,移动和删除文件

    1. cp 将源文件或目录复制到目标文件过目录中
      -i 如目标文件已经存在,在覆盖式会先询问动作
      -p 连同属性一起复制过去
      -r 递归复制,用于复制目录
      -a 复制目录时,相当于-dpR
      -f 若现存的文件不能打开就删除并重试
      -i 交互式复制
    2. rm 删除
      -f 忽略不存在的文件
      -i 删除前询问
      -r 递归删除
    3. mv 对文件或目录重新命名,或者移动一个文件
    
  • 文件内容统计

    wc 统计指定文件的字节数

  • 绝对路径和相对路径

    绝对路径:路径的写法『一定由根目录 / 写起』,例如: /usr/share/doc 这个目录
    相对路径:路径的写法『丌是由 / 写起』,例如由 /usr/share/doc 要到 /usr/share/man 底下
    时,可以写成: 『cd ../man』这就是相对路径的写法啦!相对路径意指『相对于目前工作目录
    的路径!』
    
目录
  • 创建和删除目录

    1. mkdir 创建目录
      -m 直接配置文件的权限
      如:mkdir -m 777 test1
      -p 将目录依次建立起来
      如:mkdir -p /home/bird/test1
    2. rmdir 删除目录
    
  • 改变工作目录和显示目录内容

1. cd 进入工作目录
  . 当前目录
  .. 上一级目录
  - 前一个工作目录
  ~ 目前用户身份的所在家目录
  ~account 代表这个用户的家目录
2. pwd 显示当前工作目录绝对路径
  -P 显示出正确的完整路径
3. ls 显示当前目录
  -a 显示该目录下所有的子目录和文件
  -A 显示指定目录下所有子目录和文件
  -c 按照文件修改时间
  -C 分成多列显示各项
  -d 参数为目录则,只显示名字
  -h 列出容量(B/KB)
    -F ,--classify 在列出的文件名后面加上不同的符号
      / 表示目录
      * 可执行文件
      @ 符号链接文件
      | 管道文件
      = 表示socket文件
    
其他命令
1. cat/tac/nl 由第一行开始显示文件内容/最后一行/显示内容时,打印行号
  -n 输出行号
2. head/tail 显示指定文件开头/末尾几行
3. touch 修改指定文件的时间标签或创建一个空文件
    -a 仅改变访问时间
    -c 仅修改档案,不创建任何文件
    -m 仅改变指定文件的修改时间
    -d 后面可以接想修订的日期
    -t 接想修改的时间,格式[YYMMDDhhmm]
4. grep 在文件中查找指定模式的词或短语
  -E 解释为扩展的正则表达式
  -F 单纯字符串
  -n 加上行号
5. sort 对文本文件的各行排序
6. uniq 从排好序的文本行中去除重复行
  -d/u 只显示重复行/不重复行
7. more/less 一页一页显示内容
  空格键 (space):代表向下翻一页;
  Enter :代表向下翻『一行
  /字符串:向上搜索该字符串
  ?字符串:向下搜索
  q:离开
8. head/tail显示前/后几行
9. od 以二进制显示
10. whereis 查找文件名
  -b :叧找 binary 格式的档案
  -m :叧找在说明文件 manual 路径下的档案
  -s :叧找 source 来源档案
  -u :搜寻不在上述三个项目当中的其他特殊档案
11. which 查找指令
联机帮助
man 命令格式化并显示某一命令的帮助手册页
  格式
  man 选项 命令名
help 查看所有内置命令信息
  
  
​
进程管理
ps 查看当前系统运行的进程信息
kill 终止一个进程
sleep 暂停一个进程
文件解压缩
gzip 压缩和解压缩

文本编辑

工具vi
模式
  • 以 vi 打开一个档案就直接迚入一般模式了(这是默讣的模式)。在这个模式中, 你可以使用『上下左右』按键来移劢光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以
    使用『复制、贴上』来处理你的文件数据。
  • 编辑模式:
    在一般模式中可以进行删除、复制、贴上等等的的作,但是却无法编辑文件内容! 要等到你
    按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,
    按下这些按键时,在画面的左下方会出现『 INSERT 戒 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
  • 指令列命令模式:
    在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。
    在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、
    显示行号等等的劢作则是在此模式中达成的!
操作
一般模式下
  • 光标移动,复制粘贴,搜寻取代
    移动
    方向键移动光标
    [ctrl]+f/b/d/u 屏幕向下一页/上/下半页/上
    G 移动到最后一行
    检索
    /模式+enter 向前检索
    ?模式+enter 向后检索
    n/N:重复检索同向/反向
    替换
    g/s1/p:打印文件中包含s1的所有行
    g/s1/s//s2/:用s2替换s1
    g/s1/s//s2/g:s2替换所有的s1
    删除
    x,X: x 为向后删除一个字符 (相当亍 [del] 按键), X 为向
    前删除一个字符
    dd:删除一整行
    yy:复制一整行
    p,P:p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!
    J :将光标所在列不下一列的数据结合成同一列
    u :复原前一个动作。
    [Ctrl]+r :重做上一个动作
    .:重做上一个动作
    
一般模式切换到编辑模式
  • 进入或取代
    按i进入输入模式,Esc退出到命令模式
    i/I:输入的内容在都插入在光标之前,按下enter键,就插入新的一行/在当前行,行首插入新增文本
    

a/A:输入的字符插入到光标之后/在当前行的行尾添加文本
o/O:进入插入模式o 为『在目前光标所在的下一行处插入
新的一行』/O 为在目前光标所在处的上一行插入新的一行!
r/R:进入取代模式 r 只会取代光标所在的那一个字符一次;R 会一直取代光标所在的文字,直到按下 ESC 为止
Esc:退出编辑模式




###### 指令列模式


- 指令列的储存,离开
​

先输入:
w:把数据放入硬盘
w!:强制写入
wq:把编辑器缓冲区的内容写到指定文件
ZZ:仅当修改过编辑内容的时,才写到指定文件上
x:等同于ZZ
q!:强制退出,直接退出不保存内容
w [filename] :将编辑的数据储存成另一个档案(类似另存新档)
r [filename]:在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
! command :暂时离开 vi 到指令列模式下执行 command 的显示结果!
set nu/nonu :显示行号,设定后,会在每一行的前缀显示该行的行号/取消行号


### shell

- 解释性语言
- b shell
- 利用shell和相关工具指令
- 文件名通常为*.sh
​
###### 写

- vi/vim
​
- 执行时从上到下,从左到右
- 忽略空白
- 读取到一个CR(enter)符号,就开始尝试执行命令
- 用`\[Enter]`来延伸下一行
- 注释`#`
​
###### 执行

- 直接下达命令  (有rx权限)
- 绝对和相对路径
- bash程序执行  `bash 文件名  , sh 文件名  , bash<文件名`
- 环境变量`$PATH=$PATH:.(把当前目录添加到path中)然后就可直接执行脚本`
​
##### 其他

- 查看历史命令
​

history
执行历史命令
!+该命令的序号





- 名称补全

- 在bash命令行下输入文件名或目录名开头几位,按tab键

- 别名
​

alias 别名=‘命令’
unalias 别名 取消别名





- 通配符
​
  • 匹配任意字符的0次或多次
    ?任意一个字符
    [] 字符组中任意一个字符
    !表否定




- 模式表达式
​

*(模式表) 匹配0次或多次出现的模式,各个模式以’|'分开
+() 一次或多次
?() 任何一种一次或0次
@() 给定出现一次的模式
!()否定2





- 引号
​

“” 除去$,`,\外都作为普通字符处理
‘’ 都作为普通字符
`` 解释为命令行




- 定向
​

< >输入输出重定向(从文件里输出/输入)

添加到文件后面


##### 变量

- 定义变量名 值
- 定义的默认变量类型为字符串
- 取消定义`unset name`
- 在长字符中用${变量名}
###### 命令替换
- 将一个命令执行的结果赋给变量
- 方式
- ``号
- $(命令)
​
###### 数组

- 读取格式`$echo ${city[0]}`
​
###### 变量引用

$name
$name{}
${name[n]}
${name[*]} ${name[@]}表示所有非空元素的值
${#@} KaTeX parse error: Expected '}', got '#' at position 2: {#̲*}值是@ $返回的参数的个数
${#name[i]} 值是数组第i个元素长度的值
${#name[
]} ${#name[@]} 返回已经设置的元素个数


###### 位置参数

- 通过命令行上对应的位置传值
​
- 引用
​
  `$echo $0 $1 $2 $3...${11}`
​
  $0 的值是命令名或脚本名
​
  后面一次是其他变量的值
​
- 设置值
​

set 值1 值2 值3…





- 移动位置参数
​
- 值的数量大于9时使用
​
`shift 要移动的位置数量 如:shift 4 即值左移4位`
​
$0 不会变化
​
###### 其他

- 在其他子程序内执行时,用`export PATH`
​
- env:列出目前shell环境下的环境变量和内容
​
- set:观察所有变量
​
- $:PID
​
- 预定义变量

- $# 表示命令行上参数个数,不包括脚本名本身
- $$ 当前的进程号 PID
​
- $?:上个执行指令的回传值
  - 0则执行成功
  - 非0则失败

- $!上一个后台进程号
- $- 有当前shell设置的执行标志名组成的字符串
- $* 实际给出的所有实参字符串
- $@同上

- read:读取来自键盘输入的变量
​

-p:后面可以接提示符
-t:后面可以接等待的秒数





- declare/typeset:宣告变量类型
​

-a 定义为数组
-i 整型
-x 环境变量
-r readonly





##### 条件语句

###### 语法

if 条件
then 满足条件执行
elif 第二条件
then 满足条件二时
fi 结束if


###### 条件测试

- 3种形式
​

test
[ ]有括号!!!
如:test -f “$1” = [ -f “$1” ]
[[条件表达式]]之间的词不能进行词分解和文件名生成





- 运算符
​
- 文件测试运算符,成立则真
​
  ```
  -r 可读
  -w 可写
  -x 可执行
  -f 普通文件
  -d 目录文件
  -p FIFO文件
  -b 块设备
  -c 字符设备
  -s 文件长度大于0
  -t 终端设备
  ```

  


- 字符串测试
​
  ```
  s1 不为空
  -z s1 长度为0
  -n s1 大于0
  s1 =/!=/>/<
  ```

  


- 数值
​
  ```
  n1 -eq n2 等
     -ne  不等
     -lt  小于
     -le  小等
     -gt  大于
     -ge  大等
  ```

  


### 网络管理与远程控制文件传输

- 网络配置配置
​
- ifconfig -a
​
  不带参数是查看所有网卡信息
​
  ifconfig eth0 查看网卡N的信息
​
  ifconfig eth0 up/down,ifdown/ifup  启用/禁用网卡,断开/连接
​
  ifconfig eth0 192.168.1.1 netmask 255.255.255.128 为网卡配置ip地址,重启后消失
  
- 手动重新动态获取地址

  dhclient

  -r 释放地址


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值