linux学习记录

Posted 木心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习记录相关的知识,希望对你有一定的参考价值。

录:

1、vim的使用
2、linux关机重启注销
3、linux用户管理
4、linux运行级别
5、linux常用指令
6、linux组管理和权限管理
7、linux任务调度
8、linux网络配置
9、linux进程管理和服务管理

 

学习 linux 的流程:

 

1、vim的使用   <--返回目录

1) vim的三种模式

  1.1、正常模式

  在正常模式下,可以使用快捷键。以vim打开一个文档后直接进入正常模式。在这个模式下,可以使用[上下左右]按键来移动光标,可以使用【删除字符】或【删除整行】来处理文档内容,也可以使用【复制、粘贴】来处理文档。

  1.2、插入(insert)模式

  在该模式下,可以输入内容编辑文档。正常模式下,按i、I、o、O、a、A、r、R等任何一个字母之后进入插入模式,一般来说按i即可。

  1.3、命令行模式

  在这个模式下,可以输入相关指令,完成读取、存盘、替换、离开vim、显示行号等功能。

  1.4、三种模式的相互切换

 

2) vim的常用快捷键

  2.1、拷贝当前行 yy,拷贝当前行及向下5行  5yy,并粘贴 p

  2.2、删除当前行 dd,删除当前行及向下的5行  5dd

  2.3、在文件中查找某个单词,命令行下"/" + 关键字,回车查找,输入n查找下一个

  2.4、设置行号,命令行模式:set nu,取消行号,命令行模式:set nonu

  2.5、正常模式下,G进到文件最末行,gg进到文件首行

  2.6、正常模式下,u可以撤销刚才的若干操作

  2.7、正常模式下,如何将光标快速切换到某个指定行:首先显示行号:set nu,切到正常模式,输入20,然后shift+g。

  

2、linux关机重启注销   <--返回目录

  1)shutdown

    shutdown -h now: 表示立即关机

    shutdown -h 1: 表示1分钟后关机

    shutdown -r now: 立即重启

  2)halt

    效果等于关机

  3)reboot

    重启系统

  4)sync

    把内存的数据同步到磁盘

    注意:当我们关机或重启时,应该先执行sync指令,把内存的数据写入磁盘,防止数据丢失。

 

3、linux用户管理   <--返回目录

  1)创建用户

    useradd [选项] 用户名

    1.1、useradd zs: 创建用户zs,并且自动创建与用户同名的家目录/home/zs

    1.2、useradd -d /home/zs1 zs: 创建用户zs,家目录为/home/zs1

 

  2)给用户指定或修改密码

    passwd 用户名

 

  3)删除用户

    userdel 用户名: 删除用户,但是保存家目录

    userdel -r 用户名:删除用户以及家目录

 

  4)查询用户信息

    id 用户名

    结果:用户id   组id   组名

 

  5)切换当前账号(用户)

    su root, 然后输入root用户的密码

    su - 用户名:切换到指定用户。当从高权限用户切换到低权限用户,无需密码,反之需要。

    exit:回到原来的账号

 

  6)创建组

    groupadd 组名

 

  7)删除组

    groupdel 组名

 

  8)创建用户时指定组

    useradd -g 组名 用户名

    id 用户名:查看用户信息,可以看到该用户所在的组

 

  9)修改用户的组

    usermod -g 新组名 用户名

 

  10)用户和组的三个相关文件

    用户信息:/etc/passwd

    每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:家目录:登录shell

 

    组信息:/etc/group

    每行的含义:组名:口令:组标识号:组内用户列表

 

  口令信息:/etc/shasow

  

4、linux运行级别   <--返回目录

  1)7种运行级别

    0:关机  1:单用户【找回丢失密码】  2:多用户状态没有网络服务  3:多用户状态有网络服务

    4:系统未使用保留给用户  5:图形界面  6:系统重启

 

  常用运行级别是3和5。

  要修改默认的运行级别可以改文件/etc/inittab的id:5:initdefault:这一行中的数字

 

  2)切换到指定运行级别

    init [0123456]

    init 0:关机

    init 5: 切换到图形界面

 

  3)linux系统启动过程

    开机 ->  Bios -> /boot -> init进程 -> 运行级别 -> 运行级别对应的服务

 

5、linux常用指令   <--返回目录

  5.1、帮助指令

    man 指令名

      指令名 --help

 

  5.2、pwd

    查看绝对路径

  

  5.3、ls 【选项】 【目录】

    ls -a: 查看当前目录下的内容,a表示包含隐藏文件

    ls -al: 查看当前目录下的内容,a表示包含隐藏文件,l表示以长列表展示

    ll: 查看当前目录下的内容,并以长列表展示

    ll -a: 查看当前目录下的内容,并以长列表展示, a表示包含隐藏文件

 

  5.4、cd 指定路径

    cd 指定路径:切换到指定目录

    cd ~: 回到家目录

    cd ..:切换到上一层目录

    cd ../../a: 切换到上上层目录的a目录

 

  5.5、mkdir 【选项】 要创建的目录

    mkdir x: 创建目录x

    mkdir -p ./a/b: 参数 -p 表示创建多级目录

 

  5.6、rmdir 【选项】 要删除的空目录

    如果目录下有内容,无法删除

 

  5.7、rm -rf 要删除的目录: 删除指定目录及该目录下的所有内容

    -r: 递归删除, -f: 强制删除不提示

    rm a.txt: 删除a.txt文件

 

  5.8、cp 【选项】 source dest

    cp -r a b: 递归拷贝当前a目录成b目录

 

  5.9、mv: 移动或重命名

    mv aa.txt bb.txt: 将aa.txt重命名为bb.txt

    mv aa.txt  /root: 将aa.txt移动到/root目录下

 

  5.10、cat 【选项】 文件

    cat -n a.txt: 浏览a.txt, -n显示行号

    cat -n a.txt | more: 分页浏览

  

  5.11、more 文件:浏览文件

    space键: 向下翻页

    enter键: 下一行

    ctrl + F: 下一屏

    ctrl + B: 上一屏

    q: quit

    =: 当前显示最后一行行号

    :f: 当前显示的文件及最后一行行号

  

  5.12、less: 分屏查看文件,在显示文件内容时,不是一次加载整个文件,而是根据显示需要加载内容。

    space键:向下翻页

    pagedown:向下翻页

    pageup: 向上翻页

    /字符: 向下查找【指定字符】,n 下一个匹配,N上一匹配

    ?字符: 向上查找【指定字符】,n 下一个匹配,N上一匹配

    q: quit

 

  5.13、重定向:>和>>

    ll -a > a.txt: 将数据source写到a.txt,旧内容被覆盖

    ll -a >> a.txt: 将数据source追加到a.txt

    echo \'aaa\' >> a.txt

    cat 1.txt 2.txt > 3.txt   合并多个文件到一个文件中

 

  5.14、echo

    env: 查看所有环境变量

    echo $PATH: 输出环境变量PATH

 

  5.15、head: 用于显示文件开头部分内容,默认显示文件前10行

    head -n 4 a.txt: 显示文件前4行

 

  5.16、tail: 用于显示文件末尾部分内容,默认显示文件最后10行

    tail -n 4 a.txt: 显示文件最后4行

    tail -f 文件:实时显示文件更新

 

  5.17、ln -s 【原文件或目录】 【软链接名】:软连接

     rm -rf 软链接名:删除软链接(软链接名后不带/)

    ln [文件或目录] 硬连接名:硬连接

 

  当文件的硬连接数为 0 时,文件才会真正删除。

 

  5.18、find指令:从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端

    基本语法:find [搜索范围] [选项]

    find /home -name a.txt: 在/home目录及子目录以文件名查找a.txt

    find /home -name *.txt: 在/home目录及子目录以文件名查找所有.txt文件

    find /home -user 用户名:查找指定目录下属于某个用户的文件或目录

    find / -size +100M: 查找大于100M的文件; 单位M、k; 小于-100M,等于100M

 

 

   5.19、locate a.txt,首先使用指令updatedb创建数据库

 

  5.20、管道符号 "|": 将前一个命令的处理结果输出给后面的命令处理。

 

  5.21、grep: 过滤查找

    基本语法:grep [选项] 查找内容 源文件

    选项-n 显示行号,-i忽略大小写

    grep -ni xxx a.txt

    cat a.txt | grep -ni xxx

    tail -f /home/xxx/log.log | grep xxx

    grep "^abc" a.txt   查找以 "abc" 开头的

    grep "abc$" a.txt    查找以 "abc" 的结尾的

 

  5.22、gzip和gunzip:压缩和解压缩文件(非目录)

    gzip 文件名: 将文件压缩成*.gz,源文件没了。

    gunzip 文件名.gz: 解压,*.gz没了。

    

  5.23、zip和gzip

    zip 【选项】 xx.zip 要压缩的文件或目录  

    zip ../b/b.zip aa.txt: 将当前的aa.txt压缩到../b目录下,命名为b.zip

    zip -r *.zip ../a: -r递归压缩

 

    gzip -d /home/aaa a.zip: 解压a.zip到/home/aaa目录下,-d指定目录directory

 

  5.24、tar 【选项】 xx.tar.gz 打包的内容

    -z 打包同时压缩

    -v 显示详细信息

    -f 指定压缩后的文件名

    -x 解包.tar文件

    -c 产生.tar打包文件

 

    tar -czvf a.tar.gz a.txt b.txt:将a.txt和b.txt压缩成a.tar.gz

    tar -xzvf a.tar.gz:解压到当前目录

    tar -xzvf a.tar.gz -C /usr/local:解压到指定目录

 

    tar -cjvf a.tar.bz2 *.txt  压缩

    tar -xjvf a.tar.bz2  解压

 

6、linux组管理和权限管理   <--返回目录

  6.1、在linux中每个文件有所有者、所在组、其他组的概念

    所有者:一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者

    查看文件的所有者:ls -lha 文件名或目录名

 

     a.txt所有者为oy,所在组为oy

 

  修改文件的所有者:chown 用户名 文件名:

 

  修改文件所在组:chgrp 组名 文件名

  修改文件所有者和所在组: chown [-R] newowner:newgroup file, -R递归修改

  

  6.2、改变用户所在的组

    usermod -g 组名 用户名:改变用户所在的组

    usermmod -d 目录名 用户名:改变用户登录的初始目录

 

  6.3、文件和目录的权限

    -rwxr--r--:第一位是文件的类型 ;-普通文件,d 目录,l 软连接,c 字符设备键盘鼠标,b 块文件 硬盘

    第2-4位表示所有者的权限,第5-7位表示所在组的权限,第8-10位表示其他组的权限。

    r=4,w=2,x=1,所有rwx=4+2+1=7

 

 

    6.4、chmod修改权限

 

  例子:

 

 

 

 

7、linux任务调度   <--返回目录

  7.1、crontab 【选项】

    -e: 编辑

    -l: 查询

    -r: 删除

  快速使用:

    1)crontab -e

    2)输入 */1 * * * * ls -l /home >> /tmp/a.txt

  5 个占位符的含义:

 

 

  7.2、执行脚本

    1) 编写test.sh

date >> /home/oy/桌面/test.txt

    2) 设置文件权限 chmod 744 /home/oy/桌面/test.sh

    3) crontab -e

*/1 * * * *  /home/oy/桌面/test.sh

 

  7.3、查看crond服务或重启

 

  7.4、查看linux发行版本

 

8、linux网络配置   <--返回目录

  8.1、原理图

 

  8.2、查看网络IP和网关

 

 

 

   查看网关

 

  8.3、linux网络环境配置

  1)自动获取ip

  linux启动后会自动获取ip,每次自动获取的ip地址可能不一样。这种配置不适用于做服务器,因为服务器的ip需要是固定的。

  系统->首选项->网络连接->System etho编辑,选中"自动连接"

 

  2)修改配置文件指定ip

  配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

 

 

 

   修改后:

 

9、linux进程管理和服务管理   <--返回目录

  9.1、ps -aux

    ps -ef: 可以查看ppid某个进程的父进程

 

  9.2、kill [-9] 进程号pid

    killall 进程名:可以使用通配符,kill某个进程及子进程

 

  9.3、pstree

 

  9.4、服务管理

    服务本质就是进程,运行在后台,通常会监听某个端口,等待其他程序的请求。因此又称为守护进程。

    service 服务名 start/stop/status/restart/reload

    centos7.0使用systemctl

 

    service iptables start/stop

    service iptables status

 

   9.5、查看某个端口是否打开

    比如在windows平台上使用xshell连接linux系统后

    1)linux指令ifconfig查看ip 

    2)telnet ip port

 

  打开某个端口:vim /etc/sysconfig/iptables

 

  9.6、windows启动telent客户端

  控制面板-> 打开或关闭windows功能

 

   9.7、查看系统有哪些服务

  cd /etc/init.d

 

  9.8、通过chkconfig指令可以给每个服务的各个运行级别设置自启动/关闭

    查看服务chkconfig --list | grep xxx

    chkconfig 服务名 --list

 

  chkconfig --level 5 服务名 on/off;注意:重新设置是否自启动后要重启系统reboot才能生效。

 

 

   9.9、进程的监控 top [选项]

    top指令会更新正在运行的进程

    选项-d 秒数:指定top命令每隔几秒更新。默认是3秒

    选项-i:不显示闲置或僵死进程

    选项-p:通过指定进程ID来仅仅监控某个进程的状态

 

    动态交互选项:

    P: 按cpu使用率排序,默认就是此选项

    M: 以内存使用率排序

    N: 以PID培训

    q: 退出top

 

  监视特定用户:top交互界面,按u, 输入用户名,回车

 

  top交互界面,按k,输入pid,可以终止指定进程

 

   9.10、查看系统网络情况 netstat -anp

    选项-an: 按一定顺序排列输出

    选项-p: 显示哪个进程在调用

 

  显示正在监听22端口,服务名为sshd

---

以上是关于linux学习记录的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

QT 实用代码片段

linux学习:Nginx--常见功能配置片段与优化-06

CSP核心代码片段记录

记录C#常用的代码片段

Linux学习记录