day17-Linux基础

day17-linux基础


一、复习补充:

缩进:

命令行模式:gg=G

可视化模式:v,上下键选中要对齐的代码,按=

底行模式:set nonumber 不显示行号,set number 显示行号




二、tar-归档和释放

tar
-c 创建归档文件
-v 显示归档或释放过程
-x 释放归档文件
-f 用户指定归档文件的文件名,否则使用默认名称
-j 以bzip2方式压缩
-z 以gzip方式压缩
tar -czvf 要压缩或归档之后的文件名 目标文件名
tar -xvf 目标文件名




三、diff

比较文件的不同




四、grep–查询

1
2
grep  查询的字符串 查询文件名---查询特定文件的内容
grep -r 查询的字符串 路径----查询一个路径下所有文件的内容

wc

1
2
3
4
wc 文件名: 行数 单词个数 单个字符个数 文件名
-l:只查看行数
-w:只查看单词个数(看空格)
-c:只查看单个字符个数



五、工具:

vi编辑器

gedit编辑器

gcc编译器

1.下载工具:

deb(常用的) —-Debian
rpm(小红帽)—-Redhat


(1)dpkg工具—-离线下载,没有依赖文件

sudo—-暂时赋予用户权限,密码初始都为1,但是不显示密码的输入,确保输出按回车就可以了

dpkg都要加sudo

sudo dpkg -i 安装包—下载
sudo dpkg -r 软件名—卸载


(2)apt工具—在线下载

下载:

sudo apt-get install sl–跑火车
sudo apt-get install frozen-bubble–泡泡龙
sudo apt-get install cmatrix–代码雨
sudo apt-get install fortune—-名人名言
sudo apt-get install fortunes-zh—-名人名言(中文)
sudo apt-get install lolcat—-有颜色显示
fortune | lolcat
卸载:sudo apt-get remove 软件名


(3)创建共享文件夹:

  1. 选择虚拟机左上菜单的虚拟机选项,点击设置
  2. 点击选项,找到共享文件夹,选择总是启用
  3. 点击添加,跟着下一步,选择主机(windows)的一个文件作为自己的共享文件夹
  4. 点击完成,点击确定,最后在/mnt/hgfs查看有没有

(4)网络配置:

ping–能不能网络通信

ping +IP地址

  1. 点击虚拟机菜单的编辑,选择虚拟网络编辑
  2. 点击更改设置(如果没有,直接选择桥接模式),选择桥接模式
  3. 在桥接模式下选择自己windos网络的描述名字,点击确定
  4. 点击虚拟机,选择设置,找到网络适配器,选择自定义模式,选择自己的网络名称(一般为VMnet0),点击确定
  5. 进入linux系统,断开重连网络(重启网络)

或者:在终端上输入:

sudo service network-manager restart

ifconfig—查看linux系统的IP地址
ipconfig—查看windows系统的IP地址




2.用户管理

(1) 超级用户:

su,开通了所有权限,我们一般不在这里工作,因为一旦删除,找不回来,也容易操作到内核上的东西
exit:退出超级用户

(2)查看

查看用户—vi /etc/passwd
查看用户组–vi /etc/group

(3)添加用户:

adduser 新添用户名
输入密码,不显示,确保输入按回车
su 用户名—-进入该用户

(4)删除用户
deluser 用户名,但是我们一般进入passwd和group这两个文件去删除 (加sudo)

(5)修改密码:passwd




3.进程管理

ps 查看前台的进程
ps -aux 查看所有进程
pstree—以树的形式展示进程
top—查看进程(从占用cpu最大开始展示),类似于任务管理器
kill -9 进程号 —-杀死进程




4.shell的特殊字符

(1)|—管道

指令1 | 指令2—-把指令1的输出作为指令2的输入

fortune | lolcat

(2)`   `—命令置换
指令1 `   ` 把命令置换里面的内容作为指令1的参数
echo `ls`

(3)echo–终端的输出

1
2
3
echo hello    world---会自动缩进空格字符串之间保留一个空格
echo 'hello world'---原样输出
echo "hello world"---原样输出

(4)输入输出重定向

>:
cat >1.c(覆盖输入)
>>:
cat >>1.c(追加输入)

注:输入都是读取的键盘输入

(5)通配符:

  • *—匹配所有字符串
  • {起始..结束}–可以创建起始到结束的文件
  • touch {1..10}.c—-创建1到10的.c文件
  • rm 【13579】.c—-删除了1.c 3.c 5.c 7.c 9.c
  • rm [1-5].c—-删除了1.c2.c3.c4.c5.c
  • rm [^8].c—-删除除了8.c的文件,也只能通配一个
  • ?—匹配一个字符串
    rm h?llo.c—删除hello.c hrllo.c

(6)其他

shutdown—关机

shutdown -r now—重启

vm上的快照–相当于备份




5.shell脚本:

(1)本质:shell命令的有序集合

解释型语言(python,shell脚本)

不会检查错误,但是会显示出错误,出现错误会继续执行后面的语句

需要一个解释器(shell的是bash)

编译型语言(c语言,c++)

编译会报错,一旦错误会停止进程

(2)怎么去写一个shell脚本:

  1. 创建一个.sh的文件(也可以没有后缀名)

  2. 写shell命令

  3. 执行:

    a. 通过bash这个解释器来执行,直接bash+要执行的文件

    b. 通过chmod给shell文件添加执行权限,然后再执行

注:第一行一般写:#!/bin/bash,我们解释器的路径

练习:复制上一级目录的1.c 2.c到当前目录下,然后把hello world写入1.c

1
2
3
4
5
6
7
1 #!/bin/bash
2
3 cd ../
4 touch 1.c 2.c
5 cp [12].c day2
6 echo "hello world" >day2/1.c

(3)shell变量

  • 自定义变量

没有数据类型,默认为字符串类型

赋值不能隔开

变量名=值

没有分号,换行就相当于分号

变量的调用需要加钱$

1
2
3
4
5
1 #!/bin/bash
2
3 a=12
4 echo $a

  • 位置变量

命令行参数的变量,即命令即后面的参数作为变量 从bash后面的那个开始为0

从终端传递参数给shell脚本

1
从$0开始到$9如果要打印9以后的变量需要加{},例如${12}
  • 环境变量

计算机定义好了的变量

env可以查看所有环境变量

调用需要加$

注:shell中0是真,1是假

预定义变量

计算机给一些特殊变量赋予特殊意义

1
2
3
4
$*--打印的是命令行参数的所有变量,不包括$0
$@--打印的是命令行参数的所有变量,不包括$0
$#--打印的是命令行参数的个数,不包括$0
$?--打印上一次的返回状态(0代表真,1代表假)
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2024 nakano-mahiro
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信