Linux常用操作及理解之Centos

一、centos的文件和目录

Linux 没有盘符这个概念,只有一个根目录/, 所有文件都在它下面

/lsdt:    found系统修复用的
/bin:    二进制命令所在的目录
/boot:    系统引导程序所需要的文件目录,引导系统开机
/dev:    设备软件目录,磁盘,光驱, 
/etc:    系统配置,启动程序
/home:    普通用户的家,目录默认数据存放目录
/lib:     启动系统和运行命令所需的共享库文件和内核模块存放
/mnt:    临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用
/opt:    额外的应用软件包
/proc:    操作系统运行时,进程信息和内核信息存放在这里                       
/root:    Linux超级权限用户root的家目录
/sbin:    和管理系统相关的命令,【超级管理员用】
/tmp:    临时文件目录,这个目录被当作回收站使用
/usr:    用户或系统软件应用程序目录
/var:    存放系统日志的目录

二、常用快捷键

tab键:命令或者路径提示及补全;
ctrl+c:放弃当前输入,终止当前任务或程序;
ctrl+l:清屏;
ctrl+shift+c:复制;
ctrl+shift+v:粘贴;
alt+b :打开connet窗口;
alt+1/2/3/4/5 :切换会话窗口

三、Linux常用命令

1、常用Linux命令的基本使用

1.1、ls  查看当前目录下内容

  • -a  显示指定目录下所有子目录与文件, 包含隐藏文件
  • -l  以列表方式显示文件的详细信息
  • -h  配合-l以人性化的方式显示文件大小

1.2、pwd  查看当前所在文件夹

1.3、cd [目录名]    切换文件夹
  cd ..   切换到上级目录
  cd -    可以在最近的两次目录之间切换

1.4、touch [文件名]  如果文件不存在,新建文件

1.5mkdir [目录名]创建目录

  • -p 可以递归创建目录

1.6rm [文件名]  删除指定的文件名

  • -f  删除文件不提示
  • -r   递归地删除目录下的内容,删除文件夹时必须加此参数

1.7clear  清屏

1.8tree [目录名]  以树状图 列出目录中的内容

  • -d  只显示目录, 不显示文件
  • -L [n]  显示几层目录

  注:默认没安装tree
    yum -y install tree    安装tree组件
    yum -y remove tree    卸载tree组件

1.9cp [文件名]  拷贝文件

  • -r  递归复制目标目录的内容

1.10mv [文件名]  移动文件或重命名

1.11cat [文件名]  查看小文件内容

  • -n  显示行号
  • -b  非空行 显示行号

1.12nl [文件]  查看文件内容且非空行显示行号

1.13less [文件名]  分屏显示大文件内容

  • -N  显示文件内容且显示行号

1.14head [文件名]  查看文件的前一部分

  • -n  表示显示前几行内容
head -n2 5.txt   显示文本的前2行内容

1.15tail [文件名]  查看文件的最后部分

  • -n  显示文件的最后n行
  • -f  动态显示文档的最后内容
tail -n1 5.txt  #显示文本最后一行内容

1.16grep 关键字 文件名  根据关键词, 搜索文本文件内容

  • -n  显示匹配行和行号
  • -i  忽略大小写
  • -v  显示不包含关键字的所有行

  grep 正则 文件名
    ^a  行首,搜索以a开头的行
    ke$  行尾,搜索以ke结束的行

1.17echo [字符串]  将字符串输出到控制台
  命令 > 文件  重定向(覆盖) 将命令的成功结果覆盖指定文件内容
  命令 >> 文件  重定向(追加) 将命令的成功结果追加指定文件的后面
  命令 &>> 文件  重定向(追加) 将命令的失败结果追加指定文件的后面

echo 3333333 >> 01.txt 将3333333追加到01.txt文件

1.18|  管道

ls /etc/ | grep ^pro    #显示/etc/目录下pro开头的文件

1.19&&与||

  • 命令1 && 命令2   如果命令1执行成功了, 才执行命令2
  • 命令1 || 命令2   如果命令1执行失败了, 才执行命令2

1.20ln -s 目标文件绝对路径  快捷方式路径  给目标文件增加一个软链接, 通俗讲就是快捷方式

通配符

  • *   代表任意个数的字符
  • ?   代表任意一个字符, 且只能是一个
  • [abc]   匹配a、b、c中任意一个
  • [a-f]   匹配从a到f范围内的任意一个字符

2、查阅命令帮助信息

2.1、--help 帮助信息
  command --help
    说明:显示command命令的帮助信息

2.2、man手册 

说明:

  • 空格键   显示手册的下一屏
  • Enter键  一次滚动首页也得一行
  • b  回滚一屏
  • f  前滚一屏
  • q  退出
  • / word  搜索word字符串

3、搜索命令 find

  find [路径]  -name '*.txt'     查找指定路径下扩展名是 .txt的文件, 包括子目录

find / -name '*.txt'

4、解压缩命令

4.1、打包
tar -cvf 打包名.tar   被打包的目录

  • c  生成档案文件, 创建打包文件
  • v   像唐僧 一样报告进度
  • f  指定档案的文件名称, f后面一定是 `.tar` 文件, 所以必须放到最后

4.2、解包
tar -xvf 打包名.tar -C 解包路径位置

  • x  解包
  • C (大写C)  默认保存到当前目录, 通过`-C` 更改解压目录, 注意: 解压目录必须存在

4.3、压缩
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录
4.4、解压
tar -zxvf 打包文件.tar.gz -C 目录路径
  注:z    gzip 使用gzip压缩和解压缩
    j   bzip2 使用bzip2压缩和解压缩

四、VI编辑器

vim = vi improved是vi的升级版,后来将vi作为了vim的快捷方式,vim 文件名 +行数 如果只带上+ 而不指定行号, 会直接定位到文件末尾
VI有三种工作模式
  命令模式
    打开文件首先进入命令模式, 是使用vi的入口,通过命令对文件进行常规的编辑操作, 例如定位 翻页 复制 粘贴 删除...,在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在命令模式下实现
  末行模式

    执行保存 退出等操作,要退出 vi 返回到控制台, 需要在莫行模式下输入命令,末行模式是 vi 的出口
  编辑模式 

    正常的编辑文字

1、末行模式命令

1.1、常用操作

  • :w  保存
  • :w 文件    另存为
  • :q  退出,如果没有保存,不允许退出
  • :q!  强行退出,不保存退出
  • :wq  保存且退出
  • :x  保存并退出
  • :ZZ  保存并退出

1.2、查找 

/str   查找str

  • n  查找下一个
  • N  查找上一个
  • *  向后查找当前光标所在单词
  • #  向前查找当前光标所在单词

1.3、查找并替换
:%s/旧文本/新文本/gc

  • y   -yes 替换
  • n   -no 不替换
  • a   -all 替换所有
  • q   -quit 退出替换
  • l   -last 最后一个, 并把光标移动到行首
  • ^E   向下滚屏
  • ^Y   向上滚屏

2、命令模式

2.1、移动

  • h   向左
  • j   向下
  • k   向上
  • l   向右

2.2、行内移动

  • w   向后移动一个单词
  • b   向前移动一个单词
  • 0   行首
  • ^   行首, 第一个不是空白字符的位置
  • $   行尾

2.3、行数移动

  • gg   文件顶部
  • G   文件末尾
  • 数字gg   移动到 数字 对应行数
  • 数字G   移动到 数字 对应行数
  • : 数字    移动到数字对应的 行数

2.4、屏幕移动

  • Ctrl + b   向上翻页
  • Ctrl + f   向下翻页
  • H   屏幕顶部
  • M   屏幕中间
  • L   L部

2.5、括号切换
  %    括号匹配及切换

2.6、 标记

  • mx  添加编辑x, x是a~z 或者 A~Z的任意一个字母
  • 'x    直接定位到标记x所在的位置

2.7、选中文本

  • v  可视模式 从光标位置开始按照正常模式选择文本
  • V  可视化模式 选中光标经过的完整行
  • Ctrl + v  可视块模式 垂直方向选中文本

2.8、撤销和恢复撤销

  • u   撤销上次的命令
  • Ctrl + r   恢复撤销的命令

2.9、删除文本

  • x  删除光标所在的字符,或者选中的文字
  • d(移动命令)   删除移动命令对应的内容
  • dd  删除光标所在行, 可以ndd删除多行
  • D   删除至行尾

删除命令可以和移动命令连用, 以下是常见的组合命令:

  • dw   从光标位置删除到单词末尾
  • d0   从光标位置删除到一行的起始位置
  • d}   从光标位置删除到段落末尾
  • ndd   从光标位置向下连续删除 n 行
  • d'a   从光标所在行 删除到 标记a 之间的所有代码

2.10、复制和剪切

  • y  复制
  • yy   复制一行,可以nyy复制多行
  • d   剪切
  • dd  剪切一行, 可以 ndd 剪切n行
  • p   粘贴

2.11、替换

  • r   替换当前字符
  • R   替换当前行光标后的字符

2.12、缩排和重复执行

  • >>    向右增加缩进
  • <<    向左减少缩进
  • .    重复上次命令

2.13、插入命令(重要)

  • i   在当前字符前插入文本
  • I   在行首插入文本
  • a   在当前字符后添加文本
  • A  在行末添加文本
  • o    在当前行后面插入一空行
  • O    在当前行前面插入一空行

五、用户和权限的基本概念

1、基本概念  

  • 读   read   r   4
  • 写   write   w  2
  • 执行  execute  x  1
  • 无权限          0

ls -l 可以查看文件夹下文件的详细信息, 从左到右 依次是:

  • 权限, 第一个字符如果是 `d` 表示目录
  • 硬链接数, 通俗的讲就是有多少种方式, 可以访问当前目录和文件
  • 拥有者, 家目录下 文件 / 目录的拥有者通常都是 当前用户
  • 组, 在linux中, 很多时候, 会出现组名 和 用户名 相同的情况
  • 大小
  • 时间
  • 名称

2、chmod 简单实用(重要)

chmod +/- rwx 文件名|目录名     修改 用户/组对文件/目录的权限

3、组管理 终端命令

  • groupadd 组名   添加组
  • groupdel 组名    删除组
  • cat /etc/group    确认组信息
  • chgrp 组名 文件/目录名    修改文件/目录的所属组

4、用户管理 终端命令

  • useradd -m -g 组 新建用户名   添加新用户
  • passwd 用户名    设置用户密码
  • userdel -r 用户名    删除用户
  • cat /etc/passwd \| grep 用户名    确认用户信息
  • usermod -g 组 用户名    修改用户的主组
  • usermod -G 组 用户名    修改用户的附加组
  • usermod -s /bin/bash    修改用户登录 Shell
  • usermod -G sudo 用户名    将用户添加到 `sudo` 附加组中

  which(重要)
    which 命令可以查看执行命令所在位置, 例如
    which ls 查看ls命令的位置

5、切换用户

  • su - 用户名    切换用户,并且切换目录
  • exit    退出当前登录用户

 6、修改用户权限

  • chown    修改拥有者
  • chgrp    修改组
  • chmod    修改权限

  常用数字组合有(u表示用户/ g表示组/ o表示其他)
    777 ===> x=rwx, g=rwx, o=rwx
    755 ===> u=rwx, g=rw, o=rx
    644 ===> u=rw, g=r, o=r

六、系统相关命令

1、时间和日期

  • cal    查看日历, -y选项可以查看一年的日历
  • date    查看系统时间

2、磁盘信息

  • df -h   显示磁盘剩余空间
  • du -h [目录名]    显示目录下的文件大小

3、进程信息

ps a|u|x查看进程的详细情况

  • a   显示终端上的所有进程,包括其他用户的进程
  • u   显示进程的详细状态
  • x   显示没有控制终端的进程
 ps -ef|grep java     查看java进程

top    动态显示运行中进程并且排序
kill [-9] 进程代号    终止指定代号的进程 -9 表示强行终止

七、管道相关命令

1、cut  以某种方式按照文件的行进行分割

  • -b   按字节选取 忽略多字节字符边界,除非也指定了 -n 标志
  • -c   按字符选取
  • -d   自定义分隔符,默认为制表符。
  • -f   与-d一起使用,指定显示哪个区域。

范围控制:

  • n  只有第n项
  • n-  从第n项一直到行尾
  • n-m  从第n项到第m项(包括m)

例 vi 1.txt

111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii
head -2 1.txt | cut -c 5   #截取出1.txt文件中前2行的第5个字符
head -2 1.txt | cut -d ':' -f 1-3   #截取出1.txt文件中前2行以”:”进行分割的第1,2段内容

2、sort

  将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

  • -u   就是在输出行中去除重复行
  • -r   降序
  • -n   按照数字进行排序,默认是按照字符进行排序

3、wc命令

  • -c或--bytes或--chars   只显示Bytes数
  • -l或--lines   只显示行数
  • -w或--words   只显示字数
  • --help     在线帮助
  • --version   显示版本信息
wc 1.txt         #依次会显示文件的行数、单词数、文件字节数

 ls / | wc -w    #显示根目录下有多少个文件

4、uniq

  该命令用于检查及删除文本文件中重复出现的行,一般与 sort 命令结合使用

cat 1.txt | sort | uniq   排序并去重
cat 1.txt | sort | uniq -c 统计文本中每行内容出现的次数,-c 统计行数

5、tee

  和 >类似,重定向的同时还在屏幕输出

  tee -a 内容追加 和 >> 类似

6、tr

  用于转换或删除文件中的字符

echo "zhc" | tr 'z' 'Z'      #将zhc中z转为大写
echo "zhc" | tr '[a-z]' '[A-Z]'      #将字符均转为大写
echo 'abc1d4e5f' | tr -d '[0-9]'    # 删除abc1d4e5f中的数字,-d, --delete:删除指令字符

7、split

  该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件

  • -b<字节> : 指定每多少字节切成一个小文件
  • -l<行数> : 指定每多少行切成一个小文件

8、awk

  处理文本文件的命令,是一个强大的文本分析工具。但是比较复杂,不过功能比sed更加的强大,它支持分段。默认每行按空格或TAB分割。-F 指定输入文件折分隔符

vi 5.txt

aaa 111 333
bbb 444 555
ccc 666 777 888
ddd 999 222 999
awk '{print $1"#"$2"#"$3}' 5.txt     #打印出5.txt的第1,2,3段,并且使用#号连接
awk '{OFS="#"}{print $1,$2,$3}' 5.txt    #使用段连接符
awk -F ':' '{print $1}' 2.txt       #指定分隔符
awk '{print $0}' 5.txt       #打印所有段
awk '/cc/' 5.txt     #匹配包含cc的内容
awk  '$1 ~ /cc/' 5.txt    #匹配第一段包含cc的内容
awk '/aaa/ {print $1,$3} /ccc/ {print $1,$3,$4}' 5.txt     #匹配到aaa就打印第1,3段,如果匹配到ccc,就打印第1,3,4段
awk '/aaa|ddd/ {print $0}' 5.txt     #匹配到aaa或者ddd就打印全部内容
awk '$3==222 {print $0}' 5.txt     #如果第3段等于222就打印所有内容
awk '$1=="ccc" && $2==666 {print $0}' 5.txt    #如果第1段等于ccc,并且第2段匹配666就打印全部
awk '$3<$4 {print $0}' 5.txt     #如果第3段小于第4段就打印全部
awk '{print NR " : " $0}' 5.txt   #打印全部内容显示行号
awk '{print NF " : " $0}' 5.txt   #打印全部内容显示段数

打印5.txt前2行,并显示行号 (用三种不同的方式实现)

nl 5.txt | head -2
nl 5.txt | sed -n -e '1,2p'
awk 'NR<=2 {print NR " " $0}' 5.txt

分段求和
  awk脚本,我们需要注意两个关键词BEGIN和END。
    BEGIN{ 这里面放的是执行前的语句 }
    {这里面放的是处理每一行时要执行的语句}
    END {这里面放的是处理完所有的行后要执行的语句 }

awk 'BEGING{}{total=total+$2}END{print total}' 5.txt

9、sed

  该命令是来处理文本文件。sed也可以实现grep的功能,但是要复杂一些。它的强大之处在于替换。并且对于正则也是支持的。
参数说明

  • -n 仅显示处理后的结果
  • -e 以选项中指定的脚本来处理输入的文本文件
  • -f 以选项中指定的脚本文件来处理输入的文本文件

动作说明

  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
  • d :删除
  • a :新增,内容出现在下一行
  • i :插入, 内容出现在上一行
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
  • s :取代,可以直接进行取代的工作!通常这个 s 的动作可以搭配正规表示法!
  • = :显示行号

10、rpm

该命令是RPM软件包的管理工具

  • -a:查询所有套件;
  • -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
  • -c:只列出组态配置文件,本参数需配合"-l"参数使用;
  • -d:只列出文本文件,本参数需配合"-l"参数使用;
  • -e<套件档>或--erase<套件档>:删除指定的套件;
  • -f<文件>+:查询拥有指定文件的套件;
  • -h或--hash:套件安装时列出标记;
  • -i:显示套件的相关信息;
  • -i<套件档>或--install<套件档>:安装指定的套件档;
  • -l:显示套件的文件列表;
  • -p<套件档>+:查询指定的RPM套件档;
  • -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
  • -R:显示套件的关联性信息;
  • -s:显示文件状态,本参数需配合"-l"参数使用;
  • -U<套件档>或--upgrade<套件档>:升级指定的套件档;
  • -v:显示指令执行过程;
  • -vv:详细显示指令执行过程,便于排错。
rpm -ivh tree           #直接安装tree
rpm --force -ivh tree   #忽略报错,强制安装tree
rpm -ql tree          #查询tree及安装位置
rpm -e  tree          #卸载tree
rpm -qa             #列出所有安装过的包

rpm -qf `which sshd`       #返回软件包ssh的全名
rpm -qlf `which sshd`      #返回软件包的文件列表
rpm -qif `which sshd`      #返回软件包的有关信息

11、yum常用命令

yum check-update    #列出所有可更新的软件清单
yum update        #更新所有软件
yum install <包名>   #仅安装指定的软件
yum update <包名>   #仅更新指定的软件
yum list         #列出所有可安裝的软件清单
yum remove <包名>     #删除软件包命令
yum search <关键字>   #查找软件包
yum clean packages   #清除缓存目录下的软件包
yum clean headers   #清除缓存目录下的 headers
yum clean oldheaders #清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) #清除缓存目录下的软件包及旧的headers

八、Shell

-----待完善

 

posted @ 2022-03-01 19:21  卩s丶Eric  阅读(345)  评论(0编辑  收藏  举报