基本知识

$:当前登录用户为普通用户
#:当前登录用户为系统管理员
/ :斜杠表示根目录
~:为属主目录
文件名前面有 . 代表隐藏文件
颜色:
白色 普通文件 例如:txt、word等
蓝色 目录文件 例如:目录
红色 压缩文件 例如:qq.zip
青色 链接文件 例如:快捷方式
绿色 可执行文件 例如:exe文件
创建隐藏文件,文件前面+
Linux严格区分大小写

快捷键

  • Tab键 自动完成未输入完的名称,如果输入的字符能够匹配到多个对象则需要再按一下Tab键列出能匹配到的所有文件
  • ↑键:返回上一个命令
  • ↓键:返回下一个命令
  • clear或者Ctrl+l 清屏
  • 就到这吧,太多了。

文件类命令

su(switch user)切换用户:

  • 管理员切换到普通用户不需要密码**
  • 切换用户输入密码是不显示的
#切换账号到HW用户
[root@localhost /]# su HW
#切换到管理员用户
[HW@localhost /]$ su root
密码:
[root@localhost /]#

ls(list files):列出指定目录下的内容

  • -a,-all
  • -l,-long:
#显示所有文件包括隐藏文件
[root@localhost ~]# ls -a
#显示文件的详细属性信息,可用ll简写
[root@localhost ~]# ls -l

centos vi怎么复制一行内容_运维

pwd(print working directory):显示当前所在路径

#显示当前所在路径
[root@localhost ~]# pwd
/root

cd(change directory):切换目录

  • 绝对路径:从根目录出发,到目标位置的路径,例如:cd /home/HW
  • 相对路径:从当前目录出发,到目标位置的路径,例如:cd install/tomcat_aeaicrm_v1.0.3
#绝对路径,切换到根目录下的home目录下的HW目录里
[root@localhost ~]# cd /home/HW
[root@localhost HW]#
#相对路径,从当前目录切换到install目录下的tomcat_aeaicrm_v1.0.3目录中
[root@localhost ~]# cd install/tomcat_aeaicrm_v1.0.3
[root@localhost tomcat_aeaicrm_v1.0.3]#

mkdir(make directory):创建目录

  • mkdir 目录1 目录2 目录3,可以同时创建多个目录,用空格隔开
  • mkdir -p 目录1/目录2,在目录1中创建目录2
    -p 创建子目录,如果父目录不存在则创建父目录
#在当前目录新建dir1 dir2 dir3三个目录
[root@localhost test]# mkdir dir1 dir2 dir3
#在当前目录新建层级目录,层级为test1下有test2下有test3
[root@localhost test]# mkdir -p test1/test2/test3

注:可以用tree命令来查看层级目录,如下:输入后显示未找到命令。则输入yum install tree来下载。等待一会,会显示Is this ok [y/d/N]:输入y即可下载成功!

[root@localhost test]# tree
-bash: tree: 未找到命令
[root@localhost test]# yum install tree
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                           | 3.6 kB  00:00:00
extras                                                         | 2.9 kB  00:00:00
updates                                                        | 2.9 kB  00:00:00
(1/2): extras/7/x86_64/primary_db                              | 243 kB  00:00:00
(2/2): updates/7/x86_64/primary_db                             |  13 MB  00:01:07
Determining fastest mirrors
 * base: mirrors.bupt.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 tree.x86_64.0.1.6.0-10.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

======================================================================================
 Package          架构               版本                      源                大小
======================================================================================
正在安装:
 tree             x86_64             1.6.0-10.el7              base              46 k

事务概要
======================================================================================
安装  1 软件包

总下载量:46 k
安装大小:87 k
Is this ok [y/d/N]: y
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm                                   |  46 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
** 发现 2 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
2:postfix-2.10.1-6.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit)
2:postfix-2.10.1-6.el7.x86_64 有缺少的需求 libmysqlclient.so.18(libmysqlclient_18)(64bit)
  正在安装    : tree-1.6.0-10.el7.x86_64                                          1/1
  验证中      : tree-1.6.0-10.el7.x86_64                                          1/1

已安装:
  tree.x86_64 0:1.6.0-10.el7

完毕!
[root@localhost test]# tree
.
├── dir1
├── dir2
├── dir3
└── test1
    └── test2
        └── test3

6 directories, 0 files

rmdir(remove directory):删除目录

  • -p是当前子目录被删除后使它也空目录的话,则顺便一并删除
  • rmdir只能删除空目录
[root@localhost test]# rmdir -p test1/test2/test3
[root@localhost test]# tree
.
├── dir1
├── dir2
└── dir3
3 directories, 0 files

touch:新建文件

# 新建一个叫file1.txt的文件
[root@localhost test]# touch file1.txt
[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 12月 28 06:51 dir1
drwxr-xr-x. 2 root root 6 12月 28 06:51 dir2
drwxr-xr-x. 2 root root 6 12月 28 06:51 dir3
-rw-r--r--. 1 root root 0 12月 29 03:52 file1.txt

rm(remove):删除文件

  • -r 递归处理,删除目录的同时也删除目录中的子文件
  • -f 强制执行
# 删除file1.txt文件
[root@localhost test]# rm file1.txt
rm:是否删除普通空文件 "file1.txt"?y

# 直接删除test1目录下的file1.txt文件,但不会删除test1目录
[root@localhost test]# rm test1/file1.txt
rm:是否删除普通空文件 "test1/file1.txt"?y

# 删除test1目录下的file1.txt文件,顺便也可以删除test1目录
[root@localhost test]# rm -r test1
rm:是否进入目录"test1"? y
rm:是否删除普通空文件 "test1/file1.txt"?y
rm:是否删除目录 "test1"?y

# 强制删除test1目录
[root@localhost test]# rm -rf test1

vi:文档编辑器

  • 一般模式,只能看不能写
  • 按a/i/o进入编辑模式
  • 按Esc退出编辑模式,回到命令行模式
  • 输入:进入命令行模式(w保存,q退出,!强制执行)
  • vi文件名,如果文件存在,则直接打开文件
  • vi文件名,如果文件不存在,则先新建文件,再打开文件
  • vi 则先打开一个临时文件,需要在退出时给出文件名。

使用vi、vim编辑文件,实际是先copy一份临时文件并映射到内存里进行编辑,所以你编辑的是临时文件,不是源文件,直到你输入:w命令后才保存临时文件到源文件;输入:q退出才删除临时文件
这个你们自己操作就可以了

cp(copy):复制文件

  • cp 源文件 目标文件 目标文件不存在,复制源文件生成目标文件
    目标文件是目录,复制源文件到目录中,生成同名文件
    目标文件是存在的文档,复制源文件,覆盖目标文件
  • cp a b c … … z 把前面所有的文件都复制到目录中
  • -r 递归处理,复制目录的同时复制目录中的子文件
# 复制一个test1.txt文件为test2.txt文件,test2.txt不存在
[root@localhost test]# cp test1.txt test2.txt
# 复制test1.txt文件到dir目录里,生成同名文件
[root@localhost test]# cp test1.txt dir
# 使用test1.txt的文档覆盖掉test2.txt文档的内容
[root@localhost test]# cp test1.txt test2.txt
cp:是否覆盖"test2.txt"? y

# 将test1.txt test2.txt都复制到dir目录里
[root@localhost test]# cp test1.txt test2.txt  dir

# 复制目录
[root@localhost test]# cp -r dir dir2

mv(move):移动文件

  • mv 源文件 目标文件 目标文件不存在,重命名
    目标文件是目录,把源文件移动到目标中
    目标文件是文件,把源文件内容移动替换到目标文件中,进行覆盖
  • mv a b c … … z 把前面所有的文件都移动到目录z中
# xiaowang.txt不存在,将xiaozhang.txt重命名为xiaowang.txt
[root@localhost test]# mv xiaozhang.txt xiaowang.txt
# 将xiaowang.txt移动到dir目录中
[root@localhost test]# mv xiaowang.txt dir
# 目标文件是文件,把源文件的内容移动到替换到目标文件中,进行覆盖[root@localhost test]# mv test1.txt test2.txt
mv:是否覆盖"test2.txt"? y

# 将test1.txt test2.txt移动到dir目录中
[root@localhost test]# mv test1.txt test2.txt dir

reboot

  • 重新启动

shutdown

  • 关机
  • shutdown -r now(重新启动)

man和 – help

  • 帮助命令
    [root@localhost ~]# man ls
    [root@localhost ~]# ls --help

cat:显示文件的所有内容

  • -n 显示行号
  • 一般比较适用于文件内容较少的情况
[root@localhost test]# cat -n hello.txt
     1  hello world

more:分页显示文件内容

  • 空格 下一页
  • b 上一页
  • q 退出
  • +n 从第n行开始显示
  • -n 每页显示n行
  • more如果查看到最后一行后会回到命令行
# 从第2行开始显示每页显示3行
[root@localhost test]# more +2 -3 hello.txt
2
3
4
--More--(29%)

less:分页显示文件内容
相比较于more来说更强大,可以用pagedown和pageup逐行显示,也可以使用/的搜索功能

  • ↑ 上一行
  • ↓ 下一行
  • shift + g 可以直接翻页到文本的最下方
  • less如果查看到最后一行后不会回到命令行
  • 搜索使用/后面接你要搜索的内容
  • -N 显示行号
  • 搜索后按q键退出,回到命令行
# 直接跳到hello.txt文档中内容为10的位置
[root@localhost test]# less -p "10" hello.txt

head -x 文件名,显示文件前x行内容(默认10行)

# 显示hello.txt文件前10行的内容
[root@localhost test]# less -p "10" hello.txt

tail 显示文件后面的内容

  • tail -x 文件名,显示文件后x行内容(默认10行)
  • -f 实时刷新
  • tail -f 命令常用于实时打印日志
# 默认显示hello.txt文件的后10行
[root@localhost test]# tail hello.txt

文件权限管理

  • 权限分为9个字母
    前3位 所有者 u user
    中3位 所属组 g group
    后3位 其他用户 o other
  • r读4,w写2,x执行1

chmod:改变文件权限

# 改变hello.txt文件权限为所有角色都可读可写可执行
[root@localhost test]# chmod u=rwx,g=rwx,o=rwx hello.txt
# 第二种方法,r+w+x=7
[root@localhost test]# chmod 777 hello.txt
[root@localhost test]# ll hello.txt
-rwxrwxrwx. 1 root root 27 12月 30 03:02 hello.txt

chown:改变文件的所有者和所属组

  • chown x:y 文件名,把文件所有者改为x,所属者改为y
  • chown x 文件名,把文件所有者改为x
  • chown :y 文件名,把文件所属组改为y
  • -R 修改目录同时修改目录里的所有者和组
# 把hello.txt文件的所有者和所属组都改为HW
[root@localhost test]# chown HW:HW hello.txt
-rwxrwxrwx. 1 HW HW 27 12月 30 03:02 hello.txt

# 把hello.txt文件的所有者改为root
root@localhost test]# chown root hello.txt
-rwxrwxrwx. 1 root   HW   27 12月 30 03:02 hello.txt

# 把hello.txt文件的所属组改为root
[root@localhost test]# chown :root hello.txt
-rwxrwxrwx. 1 root root 27 12月 30 03:02 hello.txt

硬链接和软链接

  • ln [参数] 源文件
  • -d 硬链接 作用:备份
  • -s 软链接 作用:创建一个快捷方式
  • 硬链接于源文件是同一个文件,软链接仅是一个快捷方式
  • 目录不能创建硬链接只能创建软链接
# 创建软链接,test3.txt不能存在
[root@localhost dir]# ln -s test1.txt test3.txt
-rw-r--r--. 1 root root  9 12月 30 02:51 test1.txt
lrwxrwxrwx. 1 root root  9 12月 30 04:02 test3.txt -> test1.txt
# 创建硬链接,test4.txt不能存在,test4.txt中的内容会随着test1.txt的内容改变而改变
[root@localhost dir]# ln -d test1.txt test4.txt
-rw-r--r--. 2 root root  9 12月 30 02:51 test1.txt
-rw-r--r--. 2 root root  9 12月 30 02:51 test4.txt

网络
ping:测试网络连接情况

  • -c ping的次数
  • 按Ctrl + c终止,不然会一直执行
# ping 5次百度
[root@localhost ~]# ping -c 5 www.baidu.com

ifconfig:配置网络信息

  • 查看IP地址,也可以使用ip addr

netstat 查看计算机当前的网络连接 | 进程连接 | 端口占用

  • 选项
    -a:展示监听和建立状态的进程信息
    -t:tcp协议
    -p:显示链接的程序名
    -l:监听
    -n:显示ip地址和端口号
    o:包含和网络通讯的时间
# 常用下面两个
[root@localhost ~]# netstat -anop
[root@localhost ~]# netstat -tpln
  1. 如果你的计算机中的6060端口被进程占用了,应该怎么处理。
  2. 把连接了我的CentOS系统的人踢下线
  3. netstat -tpln|grep :6060
  4. kill -9 pid

进程管理
ps:查看进程信息

  • 进程是正在运行中的程序
  • 常用命令
    -a 查看所有前台进程 命令行输入的命令,和Linux交互的进程
    -x 查看所有后台进程 守护进程,启动了一个服务,它自己在后台运行
    -u 显示这个进程是由哪个用户产生的
  • 前台进程:是在终端中运行的命令,那么该终端就位进程的控制终端,一旦这个终端关闭,这个进程也随之消失
  • 后台进程:也叫守护进程,是运行在后台的一种特殊进程,不受终端控制,他不需要终端的交互;Linux的大多数服务器就是使用守护进程实现的。
    **主要关注pid,进程名称,MEM,CPU
# 查看系统中的所有进程
[root@localhost ~]# ps -aux

USER      // 该进程是由哪个用户产生的
PID       // 进程的ID号
%CPU      //进程占用的CPU百分比,占用越高,进程越耗费资源
%MEM      //占用内存的百分比,占用越高,进程越耗费资源
VSZ      //该进程使用的虚拟內存量(KB) 
RSS      //该进程占用的实际物理內存量(KB)
STAT      //进程的状态,常见状态有:R:运行,S:睡眠,T:停止,s:包含子进程,+:位于后台
START    //该进程被触发启动时间 
TIME      //该进程实际使用CPU运行的时间
COMMAND   //产生此进程的命令名

top:查看系统健康状态

  • P:以CPU使用率排序
  • M:以内存使用率排序
  • N:以PID排序
  • q:退出

centos vi怎么复制一行内容_目标文件_02

管道

  • 符号是 “|” ,将两个命令隔开,符号左边命令的输出就作为右边命令的输入

# 查看mysql的进程网络状态
[root@localhost ~]# netstat -tpln | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      1503/mysqld

grep

  • 基于正则表达式查找满足条件的行
    -v 显示不被pattern匹配到的行
    -i 忽略字符的大小写
    -n 显示匹配的行号
    -c 统计匹配的行数
    -o 仅显示匹配到的字符串
    -E 使用扩展正则表达式
# 查询test.txt文件里hello出现了多少次
[root@localhost ~]# grep -c hello test.txt

# 查询mysql进程的网络状态
[root@localhost ~]# netstat -tpln | grep mysql

# 查找abc字符并忽略大小写
[root@localhost ~]# echo "ABC" | grep -i abc

# 查询进程 | 以bash过滤 |过滤不包含grep字符的进程
[root@localhost ~]# ps -ef | grep bash | grep -v grep
root      2451   653  0 16:54 tty1     00:00:00 -bash
root      2640  2634  0 17:31 pts/0    00:00:00 -bash

# 仅匹配第一个数字是0到9第二个数字是4或者是数字76的数
[root@localhost ~]# echo "1234 7654" | grep -oE "[0-9]4|76"
34
54

文件查找

  • find “路径” -name 字符串(查找当前目录下的文件不用加路径)
    查找文件所在的位子
    find -name “.*”:查找当前面录下子目录以及子目录中所有的隐藏文件的路径
  • whereis 查看程序所在的位置
# 查找当前目录下test子目录下的test.txt文件
[root@localhost ~]# find test/ -name test.txt
test/test.txt

文件的压缩与解压

  • gzip
    gzip -n 文件名
    n可以取1-9,分别代表不同级别的压缩,1压缩包大速度快,9压缩包小速度慢
    只能压缩单个文件,不能压缩目录
    压缩后的文件是"文件名.gz"
    gzip -d 文件名,解压.gz的压缩包
  • tar
    -z 使用gzip工具进行压缩
    -c 创建文件包
    -x 解开文件包
    -v 打包和解包时,显示详细过程
    -f 打包的内容是文件
    tar -zcvf 打包并压缩
    tar -zxcf 解压
    注:f不能在前面
  • zip
    zip xxx.zip a b c 把文件a b c 添加到压缩包xxx.zip中
# 压缩
[root@localhost /]# gzip -1 hello.txt
# 解压
[root@localhost /]# gzip -d hello.txt.gz 

# 打包并压缩
[root@localhost /]# tar -zcvf hello.txt.tar.gz hello.txt
# 解压
[root@localhost /]# tar -zxvf hello.txt.tar.gz

#把hello1.txt hello2.txt hello3.txt添加到压缩包hello.zip中
[root@localhost ~]# zip hello.zip hello1.txt hello2.txt hello.txt 
#解压
[root@localhost ~]# unzip hello.zip

就到这里了!bye!