Linux的入门知识

380 阅读10分钟

一、 终端编辑工具: vi/vim、 emacs等

基本介绍: vim是vi的扩 展,被誉为终端编辑器之神
软件安装: yum install -y vim

工作模式:

1、正常模式

0、使用格式说明: vim filename
    若文件已存在,则直接打开
    若文件不存在,则会新建 (若不修改则不会创建新文件)
1、主要用来浏览或修改文本内容
2、使用vim打开文件的默认模式
3、在任意模式下按Esc按键即可进入该模式

2、编辑模式

主要用来向文本添加内容,也叫插入模式
正常模式下输入以下字符都可进入该模式

i:在光标所在字符前开始输入文字
I:在行首指第一一个非空白字符处开始输入文字
a:在光标所在字符后开始输入文字
A:在行尾开始输入文字
o:在光标所在行的下面单独开一新行来输入文字
O:在光标所在行的.上面单独开一新行来输入文字
s:删除光标所在的字符并进入插入模式
S:删除光标所在行并进入插入模式

3、 命令模式 主要用来管理文件或设置vim,如:保存,退出,放弃等,而不是修改文件内容 在正常模式下,输入':'即可进入命令模式,由于操作都是在一行完成,因此也叫单行模式

保存文件: w 
退出软件: q
保存退出: x 等价于wq,等价于正常模式下的   shift+zz
强制执行: !
放弃修改: e!

4、 可视模式

v: 可视块模式
V:可视行模式

5、 VIM使用技巧:可以大大提高开发效率

1、打开文件
   vim filename 
   打开文件,并将光标定位到文件开头
   1、若文件已存在,则直接打开
   2、若文件不存在,则新建文件(不做修改的文件不会创建)
   vim filename +n     打开文件,并将光标定位到文件第n行
   vim filename +      打开文件, 并将光标定位到文件末尾
2、光标定位
    gg:首行
    GG: 尾行
    ngg:第n行,等价于命令模式下的:n,然后敲回车
    0:
    行首
    ^: 首个非空字符
    $:行尾
    k:向.上
    j:向下
    h:向左
    1:向右
3、复制粘贴
    yy:复制光标所在行
    dd:
    剪切光标所在行
    p:粘贴缓冲区的内容:
    nyy:
    复制光标开始的n行
    ndd: 剪切光标开始的n行
4. 操作回退
  u: 撤销刚才的操作
  ctrl + r: 反撤销
5、查找替换
    命令模式~下操作
    : ?   查找内容,然后敲回车即可查找相关内容,n向前翻,N向后翻
    :行号s/查找内容/替换内容/[g],将查找到的内容替换,g表示全局替换,[]表示可选
    :起始行,结束行s/查找内容/替换内容/[g],替换从起始行到结束行查找到的内容,g功能同上
6、基本配置
    : set nu                        设置行号
    : set nonu                      取消行号
    :set tabstop=4I                 设置tab键为4个空格
    :set fileeccodings=utf-8, gkb   设置字符集
7、配置文件
    上面第6步在命令模式下的配置是单次的,退出vim后配置就无效了,
    要想一次配置,自动生效可以创建专门的配置文件
    在用户目录下,创建. vimrc文件,这个文件就是vim的配置文件,
    当该用户登录时就会生效,可以将vim相关的配置写入即可
    要想使配置文件生效可以重启系统,也可以使用命令: source ~/ . vimrc
    说明:
    文件未保存就关闭vim时,会产生临时文件,下 次打开时会提示恢复/删除等相关操作

6、文件内容査看:

cat:
作用:一次性順序显示文件的所有内容
格式: cat file 
tac:
作用:一次性倒叙显示文件的所有内容
格式: tac file 
head:
作用:显示文件开头的若干行内容:
格式: head -n file
n 为要显示的行数
tail:
作用:显示文件结尾的若干行内容
格式: tail -n file      n为要显示的行数
more:
作用:  分页显示其它命令执行的結果
格式:其它命令l more, 如:
cat filel more
说明:
1、当内容显示一屏时停止
2、空格向下翻更(只能向下)
3、回车鍵向下显示一行
4、q鍵退出(結束査看)
less: I
作用:分页显示其它命令执行的结果
格式:其它命令 | less, 如:
cat file | less
说明:
与more命令功能相同,多了    上下按键上下翻一行
more和less的前面可以是很多查询搜索等命令,如: ls、find

7、文件整体操作:

touch:
作用:创建普通文件
格式: touch file1 [file2]
cp:
作用: I拷贝文件
格式: cp 源文件目标文件
rm:
作用:删除文件
格式:rm文件
mv :
作用:移动文件
格式:mv源文件目标文件
mkdir: 
作用:创建目录文件
格式: mkdir dir1 [dir2]
rmdir:
作用:删除空的目录文件
格式: rmdir dir
说明:
1、删除文件时会有提示,若不想提示可以添加参数'-f'
2、删除或拷贝目录时需要添加参数'-r'
ln: 作用:创建链接文件
格式:ln [-s] 源文件 目标文件
硬链接: 不加'-s'选项时,简答理解为一一个文件有多个名字
    1、不占用实际空间
    2、不允许给目录创建
    3、只能跨文件系统
软链接:添加'-s'选项时,简单理解为-一个文件的内容是另一-文件的路径
    1、类似于windows的快捷方式
    2、可以对目录创建
    3、可以跨文件系统

8、 文件的搜索定位

文件搜索定位
grep:
作用: General Regular Expression Parser, 通用规则表达式分析程序,
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
格式: grep [选项] pattern [文件名]
选项:
    -i:字母不区分大小写
    -n: 显示行号
说明:
    1、pattern为所要匹配的正则表达式字符串
    2、要用好grep这个工具,其实就是要写好正则表达式
实例:
grep ftp /etc/passwd
在/etc/passwd文件~下查找包含'ftp'字符的行:
grep 'test' d*
显示所有以d开头的文件中包含'test'的行。
ls /bin | grep '^m'
通过管道过滤ls /bin输出的内容,只显示以m开头的行。
grep -i 'hello world' menu.h main.c
显示在menu.h和main.c文件中匹配'hello world' 的行,忽略大小写。
find:
作用:  最常见和最强大的查找命令,你可以用它找到任何你想找的文件.
格式:  find [目录]  [条件]  [动作]
    目录:所要搜索的目录及其所有子目录。默认为当前目录。
    条件:所要搜索的文件的特征。
    动作:对搜索结果进行特定的处理。
选项:
    -name:  指定文件名,可以通过*模糊匹配
    -type:  指定文件类型(b/c/d/p/l/f)
    -size:  指定文件大小,单位可以为K/M/G, +表示大于,-表示小于
    -user:  指定用户
    -group: 指定组
    -mtime/atime/ctime:指定修改/访问/创建时间,单位为天,+表示几天前,-表示几天内
    -amin/mmin/cmin: 功能同上,单位为分钟
    说明:如果你要寻找一一个普通文件,使用find会是一一个不错的主意。
    由于find在寻找数据的时候相当的耗资源,所以没事情不要使用find
    有更棒的指令可以取代,那就是whereis与which
whereis
作用:只能用于程序名的搜索
格式: whereis  命令
实例: whereis grep
结果: grep:   /bin/grep       /usr/share/man/man1/grep.1.gz
       名称:  二进制文件路径   帮助文档路径
which:
作用:在$PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个
格式: which 命令
PATH:
说明:环境变量,与windows中(我的电脑>高级系统设置>高级>环境变量>系统变量)的Path类似
打印: echo $PATH .
导出:
    方式1:一次性 的设置
        export PATH=$PATH:dir1[ :dir2]
    方式2:永久性的设置,所有用户有效,需要重启生效或使用source命令
        将方式1的导出操作添加到文件/etc/profile的末尾
    方式3:永久性的设置,只针对一个用户,需要重启生效或使用source命令,优先级高于2
    将方式1的导出操作添加到文件~/.bashrc的末尾

9、 文件压缩解压

gzip:
作用:压缩文件,只能是单个文件,不能是多个,也不能是目录
格式: gzip file
说明:执行命令会生成file.gz,删除原来的fileI
选项: -d等价于gunzip .
gunzip:
作用:解压使用gzip压缩生成的文件
格式: gunzip file.gz
说明:解压file.gz文件, 生成file, 删除原来的file.gz
bzip2 /bunzip2:
说明:
1、用法与gzip/gunzip相同,只是多了'-k'参数,压缩或解压后保留原文件
2、使用bzip2压缩的文件后缀为bz2,而使用gzip压缩的文件后缀为gz
tar :
说明: gzip/ gunzip/bzip2/bunzip2命令指适应于单个文件,
而tar则可以将多个文件或目录进行压缩打包
选项:
-c: 压缩
-x: 解压
-z: 使用gzip
-j: 使用bzip2
-f: 指定处理文件
-v: 显示(压结角解压过程的)详细信息
-C: 指定解压后存放文件的目录
实例: 
tar -zcvf 123.tar.gz 1 2 3
使用gzip把1,2,3压缩成123.tar.gz
tar -zxvf 123.tar.gz [-C /tmp]
使用gzip将123.tar.gz解压[至/tmp 目录]

10、 文件权限管理

chmod: 
作用:修改文件的权限
说明: ls -l 中的第一列就是权限相关的信息,下面对其中的11个字符进行说明
    1:文件类型(b/c/d/l/s/p/-)
    2/3/4:文件所有者的读(r) /写(w) /执行(x)权限,- 表示不具有该权限
    5/6/7:文件所有者所属的组的读/写/执行权限
    8/9/10:其它用户的读/写/执行权限
    11: .表示启用了selinux, 空表示没有开启selinux 
参数:
r: 可读
w: 可写
x: 可执行,在linux 系统中没有后缀的概念,文件的类型及权限不以后缀区分.
+: 添加权限
-: 去掉权限
=: 设置权限
u: 用户
g: 组
o: 其它
数值表示:
    Linux中的权限以一组数据来表示,所有者/组/其它的权限分别以3位二进制表示,
    然后再将其写成8进制进OK了,如: 755 => 111 101 101,
    结果就是:所有者拥有读/写/执行权限,同组拥有读/执行权限,其它拥有读、执行权限
实例:
chmod +x file     给文件添加可执行权限
chmod -w file     去掉文件的可写权限
chmod u+x file    给文件的所有者添加可执行权限
chmod g-w file    给文件同组去掉可写权限
chmod u=rwx,g=rx,o=rx file 所有者读写执行,同组读写,其它读写
chmod 0755 file功能同上
umask:
作用:查看或设置umask的指,umask用来确定创建文件的默认权限
格式: umask [value ]
说明:
1、若后面没有跟指表示查看,后面有指表示设置
2、创建的普通文件默认没有执行权限
实例: umask为 0022:=> 000 010 010
创建的目录文件权限      rwx r-x r-x
创建的普通文件权限      rW- r-- r--
配置:
所有用户: /etc/profile
单个用户: ~/ .profile或者~/ .bash_ profile
lsattr:
作用:查看使用chattr设置的文件属性
格式: lsattr
chattr :
作用:修改文件的属性,可以提高系统的稳定性
格式: chattr [选项] 文件
选项: i:表示忽略,+表示添加,-表示去掉.  添加了i,任何人都不能删除

11、 用户及用户组

whoami :
    作用:查看当前登录的用户
    格式: whoami
/etc/passwd:
    说明:该文件存放了系统中所有的用户,每一- 行的每一列如下
    用户名:密码:描述:用户ID/UID:组ID/GID:用户家目录:shel1 I
useradd:
作用: 添加(创建)用户
格式: useradd用户名
选项:
    -d: 指定用户 /home 目录
    -u: 指定用户ID,必须大于500(小于500都已被系统占用)
    -s: 指定用户执行的shell,若用户已经创建可以使用以下方式禁止登录
    chsh 用户名 -s /sbin/nologin
userdel :
    作用:删除指定用户
    格式: userdel 用户名
    说明:彻底删除用户还需要删除'/home/用户名'目录和'/var/mail/用户名'目录
passwd:
    作用:设置用户密码
    格式: passwd [用户名]
说明:
    1、修改指定用户的密码,若不指定则修改当前登录的用户密码.
    2、查看所有用户的密码/etc/ shadow
su:
    作用:切换用户
    格式: su [用户]
说明:切换到指定用户,若不指定则切换到root用户
sudo:
说明:
    1、若只想简单的执行一个超级用户的命令,不想切换用户
    2、格式是在原来命令的前面加上sudo即可
特殊标识: 
#: 超级用户
$: 普通用户
~: 表示用户/home目录
/etc/group: 查看系统中所有的组
groupadd:
    作用:添加用户组,
    格式: groupadd 组名
groupdel :|
    作用:删除用户组
    格式: groupdel 组名
gpas swd:
    作用:向用户组添加或删除用户
    格式: gpasswd [选项]用户名组名
    选项:
    -a:将指定的用户加入指定组
    -d:将指定用户从指定组删除
chgrp:
    作用:设置文件所属的组
    格式: chgrp 组名文件名
    说明:修改文件所属的组
chown: 
    作用: 设置文件的所有者
    格式: chown 用户[:组名] 文件名
    说明:修改文件的所有者[及组名]
说明:
1、修改用户及组的时候,可以使用UID或GID
2、加上-R参数可以递归修改子目录的用户及组
网络相关设置:
ping:
    作用: 通常用于检测网络设备的连通性
    格式: ping IP/域名
    选项: -c,指定方式测试数据包的次数
ifconfig:
    作用:查看或设置网卡信息
    实例:
    ifconfig:查看活动网卡信息
    ifconfig eth0 down: 关闭网卡,等价于i fdown eth0
    ifconfig eth0 up: 开启网卡,等价于ifup eth0
    服务: 
    /etc/init.d/network start|stop|restart 开启|关闭|重启网络服务
    service network start|stop|restart     开启|关闭|重启网络服务
网卡配置文件: /etc/ sysconfig/ network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=00:1C:42:51:74: 18DDR= =
    TYPE=Ethernet
    UUID=b3de21de-5cc9-472d-ac0d-3e81 98988ddd
    ONBOOT=yes
    NM_CONTROLLED= =yes
    ROOTPROT0= dhcp
添加域名服务器(dns)地址: /etc/ resolv. conf 
    8.8.8.8
    114.114.114.114 
添加本地域名解析服务: /etc/hosts
    127.0.0.1   www. hello. com

12、 服务以及进程:

vmstat:
结果:
procs---memory---------- swap-- ----- io----system——————cpu-----
r b swpd free buff cache si sO bi bo in cs us sy id wa st
说明:
procs:进程
    r表示运行队列(就是说多少个进程真的分配到CPU)
    b表示阻塞的进程数
memory:内存
    swpd  虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了
    free  空闲的物理内存的大小
    buff  用来存储,目录里面有什么内容,权限等的缓存
    cache 直接用来记忆我们打开的文件,给文件做缓冲
swap:交换
    si 每秒从磁盘读入虛拟内存的大小
    so 每秒虚拟内存写入磁盘的大小
io:块设备
    bi块设备每秒接收的块数量
    bo块设备每秒发送的块数量
system:系统
    in 每秒CPU的中断次数,包括时间中断
    cs 每秒.上下文切换次数
cpu: 中央处理器
    us 用户cpu时间
    sy 系统CPU时间
    id 空闲CPU时间,一般来说,id+sy+us = 100
    wa 等待IO的CPU时间
    st 虚拟机占用的时间百分比,一般不用关心
W:
作用: what的筒写,当前系統在千什幺
結果:
    19:05  up 2 days,  3:18, 2 users, load averages: 2.44 2.28 2.25
    USER     TTY      FROM              LOGIN@  IDLE WHAT
    rys      console  -                Fri15   2days -
    rys      s000     -                19:05       - w
说明:
    第一行:系統当前时间 开机持续时间,登录用戸个数,平均负载(1/5/10分钟)
    其它行:用戸|終端|来源|登录时间|空闲时间|使用时间|当前进程时间|正在做
top:
使用:
1、w的详细显示,每3秒刷新一次,
2、shift+m可以按照所占内存排序
3、q退出监测
结果:

说明:
第一行: 功能同w
第二行: 任务信息
第三行: CPU信息
第四行: 内存信息
第五行: 交换分区
其它行:
    PID:进程号
    USER:用户
    PR:优先级
    NI: NICE
    VIRT:虚拟内存总量
    RES:虚拟内存中,未被交换的物理内存
    SHR:共享内存大小
    S: 进程状态
    %CPU: CPU占用百分比
    %MEM: 内存占用百分比
    TIME+: CPU使用时间
    COMMAND:进程名/命令
free :
    说明:查看内存使用
    选项: -h人 性化的显示
ps :
    说明:查看进程
选项:
    a: 显示控制终端的所有进程
    u: 显示用户信息
    x: 显示没有控制终端的进程
实例: ps aux 
kill :
    说明:杀死一一个进程
    选项: -9, 强制结束
实例:
    kill -9 PID