欢迎光临散文网 会员登陆 & 注册

【小白入门 通俗易懂】2021韩顺平 一周学会Linux

2022-11-08 19:48 作者:Ctrl_CVa  | 我要投稿

Linux重点笔记

linux的方向:

1. linux运维

2. linux嵌入式开发

3. 在linux下做各种程序开发


应用领域

1. 个人桌面领域

2. 服务器领域(java c++程序部署到linux服务器)

3. 嵌入式(运行稳定,内核小可达到几百kb,机顶盒,物联网)

tips:

CPU的架构

两种主要的cup架构:RISC(精简指令集)和CISC (复杂指令集)


Linux系统使用的是目录树架构,但我们的文件放置在磁盘分区当中,这样就引入了“mount(挂载)”


linux分区

boot分区(1GB)  交换分区(2GB)虚拟内存   根分区(剩余内存)


在Linux当中,默认root的提示字符为 # ,而一般身份使用者的提示字符 为 $


[Ctrl] + [Alt] + [F2]~[F6] 打开图形化界面

[Ctrl] + [Alt] + [F1] :图形接口桌面


重命名目录或文件

```

`mv aaa bbb` //将目录aaa重命名为bbb

`mv aaa.txt bbb.txt`  //将aaa文件重命名bbb

```

touch 新建文件


`vim vi`  编辑文件


cat  打开文件


`cd ..` 上一级

`cd /` 根目录

`cd ~ `home界面

`cd ../..` 返回上两级目录


`cp -a` 复制文件夹

echo   重定向


tar 打包文件

zip 压缩文件

unzip 解压


useradd 创建用户


文件打包和压缩


打包和压缩的区别

打包是指将一大堆文件按或目录变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件

(主要是linux压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另外的工具将文件打包成一个包)

命令:tar/unzip/zip

`tar -zcvf` 打包压缩后的文件名 要打包的文件可以多个

z 调用gzip压缩命令进行压缩

c 打包文件

v 显示运行过程

f 指定文件名

-C 解压到指定路径


`tar - cvf ab.tar 1.txt      //将1.txt文件打包名为ab.tar`

`tar -zcvf ab.tar.gz 1.txt 2.txt //将1.txt 2.txt 压缩打包为ab.tar.gz`

`tar -zxvf abc.tar.gz -C abc/aabb   //将abc.tar.gz 解压到指定的目录`

查找命令

grep

`grep title note.md`

`grep -n` 显示行数

`grep -i`  不区分大小写

`grep -ni` 显示行数 不区分大小写

`grep -v `  显示剩余的内容


查看占用资源情况

`ps -au` 占用的资源

`ps ef` 查看所有的进程

`ps -aux` 查看系统中所有的进程数据

`ps -ef|grep liu` 查看与liu相关的进程


file命令

用于判断file命令后的文件的基本数据

`file test.txt`



改变文件的属性与权限

`chgrp`:改变文件所属群组

`chown`:改变文件拥有者

eg:`chown root:liushuping(拥有者:群组) file.txt`  改变文件的拥有者和群组

`chmod`:改变文件的权限

各个权限对照表r4 w2 e1

`chmod -rw------ test.txt`

`chmod 600 test.txt`  

X 权限是执行的意思 表示可以进入这个目录


du 查看使用空间

`du -h` 以易读的方式显示空间


fdisk是linux的磁盘分区表操作工具

gcc命令

linux下执行一个可执行文件的四个步骤

预处理-编译-汇编-链接

1. 预处理

`g++ -E test.cpp -o test.i`

2. 编译

`g++ -S test.i -o test.s`

3. 汇编

`g++ -c test.s -o test.o`

4. 链接

`g++ test.o -o test`


简单的指令

`g++ test.cpp -o test`


远程登录

1. linux服务器是开发小组共享

2. 正式上线的项目运行在公司

远程操作 Xshell  远程文件传输 Xftp


Xshell 远程登陆登录到Linux操作的软件


强大的安全终端模拟软件,支持ssh1 ssh2


远程登录到linux服务器


1. VMware登录centos 打开终端

`ifconfig` 查看linux 地址


`ping 192.168.xxx` 测试

2. 打开Xshell输入 域名地址(192.168.xxx)

用户名 密码


✳✳vim编辑器

一般模式下


|命令|功能

---|:--:|

h|左

j|上

k|下

l|右

yy|复制

4yy|复制四行

4dd|删除4行

p|粘贴

/hello|查找hello

n|对查找切换

set nu|显示行号

set nonu|隐藏行号

G|末行

gg|首行

u|撤销

:sp|上下分屏

:vsp|左右分屏

Ctrl + ww|切屏

Ctrl + v|块选择

gg=G|自动缩进

set autoindent|自动缩排



多文件编辑


vim name1 name2 name3


:n 编辑下一个文件


:N 编辑上一个文件


:files 列出所有文件


linux账户管理

linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统



跟使用者帐号有关的有两个非常重要的文件,一个是管理使用者 UID/GID重要参数的`  /etc/passwd `,一个则是专门管理密码相关数据的 `/etc/shadow`    `/etc/group`


`/etc/passwd`  中有几行就代表几个账号

`root:x:0:0:root:/root:/bin/bash`  七个字段 账号名称:密码:UID:GID:使用者信息说明栏:主文件夹:shell


添加用户

`useradd -d /home/test king`    添加一个名称为king在/home/test目录下

添加用户到指定的组

`useradd -g zkhx lisi`  将lisi添加到zkhx这个组里面

指定/修改密码

passwd 用户名  


删除用户

userdel 用户名

删除用户 保留家目录

删除用户  不保留家目录

userdel -r tom


查询用户信息

id liushuping


当前登录用户

whoami


转换组

`# usermod -g ali zhangsan` 转换zhangsan到ali这个组



用户组

类似于角色,系统对有共性的多个用户进行统一的管理

* 新增组

groupadd


进程管理

每个执行的程序都叫做进程,每个进程都有PID  


程序run之后 会加载到内存 就成为一个进程

程序是一个静态的概念   进程是一个动态的概念

后台(Mysql tomcat)   前台

一般系统的服务器以后台进程的方式存在,而且常驻系统中,直到关机结束


ps -aux 查看进程详细信息

> a 显示当前终端的所有进程信息

  u 以用户的合适显示进程信息

  x 显示后台进程运行的参数

TTY 终端机号

STAT   进程状态 s 代表休眠 r代表正在运行状态


ps -ef以全格式显示当前进程

-e 全部进程 -f以全格式


终止进程 kill和killall

`kill + 进程号`(通过进程号终止进程)

`killall + 进程名`(所以子进程也将终止)

`kill -9` 强制中止进程


pstree 进程树

`pstree -p` 显示进程的pid

`pstree -u` 显示进程用户


服务管理

服务(service) 本质就是进程,但是运行在后台,通常都会监听某个端口,等待其他程序的请求,比如(mysql,sshd,防火墙等)守护进程


**service管理指令**

start stop restart reload status

centos7以后很多服务用 systemctl

查看服务名

ls -l /etc/init.d/

setup (所有系统服务)


服务运行级别(runlevel)


0:系统停机状态

2

3:多用户状态 无界面

4:

5:图形界面

开机的流程

开机->BIOS->/boot->systemd进程号为1->运行级别->运行级别

**修改centos静态ip**

root权限下

vim /etc/sysconfig/network-scripts/ifcfg-ens33


将箭头的部分改成`static`


**设置主机名**

`vim /etc/hostname`


**配置linux主机名称映射hosts文件**

`vim /etc/hosts`


shell编程

shell是一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统的内核服务。


shell脚本 可以在脚本中执行命令行 命令


新建一个shelltest.sh的脚本 chmod 修改可执行文件的权限


`vim shelltest.sh `


`chmod 777 shelltest.sh`


```shell

#!/bin/bash

cd /opt/software


mkdir leecode


touch file1.txt


```

`./shelltest.sh`


> 解释: 进入/opt/software 在其中新建一个leecode文件夹,并建立一个file1.txt文件


1. BASH

bash是绝大多数Linux系统默认的shell

```shell

$! /bin/bash

echo "helloworld"

```

`#!` 是一个约定的标记,告诉系统这个脚本需要什么解释器来执行

`echo` 像窗口输出文本

2. shell变量

* 局部变量

* 环境变量

* shell变量


shell 字符串

```shell

you_name="liushuping" 

unset you_name  #删除变量

m_name="zhangsan"

str="lala\"${m_name}\"!\n"

echo ${you_name}

echo "helloworld!"

echo -e $str

~      

```

双引号的优点

  1. 可以有变量
  2. 可以出现转义字符


1. 获取字符串的长度

`echo ${#m_name}`

2. 提取字串

`echo ${m_name:1:4}`


2. 数组

```shell

array[0]=1;

array[1]=2;

array[2]=3;

array[3]=4;

echo ${array[2]} #读取数组2的元素


echo ${#array[*]} #读取全部


```


shell基本运算符

`expr`是一款表达式计算工具,使用它能完成表达式的求值操作

* 表达式和运算符之间要有空格,2 + 2

* 完整的表达式要被` `包含

```shell

#! /bin/bash


a=10

b=20


val= `expr $a + $b`

echo "a+b:$val"

val=`expr $b - $a`

echo "a-b:$val"


```


【小白入门 通俗易懂】2021韩顺平 一周学会Linux的评论 (共 条)

分享到微博请遵守国家法律