Linux常用命令

Linux系统目录结构介绍

/ --------------------------------------- 根目录,所有目录文件的起始位置
/bin -> usr/bin ---------------------- 存放命令文件 二进制文件
/sbin -> usr/sbin ------------------- 存放命令文件 超级管理员可以的执行命令
/lib --> usr/lib ----------------------- 存放程序服务会加载的一些库文件 32位
/lib64 --> usr/lib64 ---------------- 存放程序服务会加载的一些库文件 64位
/usr ----------------------------------- 磁盘发展历史过程中,产生的新的挂载点目录
/boot --------------------------------- 存放系统运行启动文件信息
/dev ---------------------------------- 存储设备文件信息
/etc ----------------------------------- 保存系统服务或者第三方服务程序配置文件
/home ------------------------------- 普通用户家目录
/root --------------------------------- 管理员用户家目录
/mnt --------------------------------- 临时挂载点目录
/opt ---------------------------------- 存放第三方程序安装数据信息
/proc -------------------------------- 内核文件信息 进程文件 系统状态信息
此目录中存储数据信息都是默认存储在内存中
/tmp --------------------------------- 临时目录 可充当回收站
/var ---------------------------------- 存储经常变化的数据信息 日志文件

基础操作

Linux 命令行基本介绍
[root@centos7 ~]# 叫做命令提示符,root为用户名,@为分隔符,centos7为主机名,~ 表示家目录,当前所在目录,# 表示该用户为root用户,还有另外一个提示符若 # 的位置为 $ ,表示当前登录用户为普通用户。

命令行的常用快捷方式

  1. ctrl + a 快速移动光标到命令行行首
  2. ctrl + e 快速移动光标到命令行行尾
  3. ctrl + u 将光标之前所有内容剪切
  4. ctrl + k 将光标之后所有内容剪切
  5. ctrl + y 将剪切信息进行粘贴
  6. ctrl + w 将光标前的一个字符串信息进行剪切
  7. ctrl + c 中断某些命令操作过程
  8. ctrl + L 清屏操作
  9. ctrl + s 表示锁定xshell远程连接窗口
  10. ctrl + q 退出窗口锁定模式
  11. esc + . 将上一个命令最后操作的对象信息进行快速调取
  12. tab 命令补全功能

获取命令帮助方式

  1. man ls 使用 man 来获取命令的帮助手册
  2. help cd 通过 help 获取Linux内置命令的帮助信息
  3. ls --help 使用命令的帮助信息可以获取命令的简要帮助

关机重启命令

  • 关机命令
  1. shutdown -h now 立即关机
  2. shutdown -h +5 5分钟后关机
  3. poweroff 关闭电源,立即关机
  • 重启命令
  1. shutdown -r now 立即重启
  2. shutdown -r +5 5分钟后重启
  3. reboot 立即重启

关于目录

  1. pwd 查看当前所在目录

当前登录用户为 root ,他的家目录为 /root

[root@test-201 ~]# pwd
/root
  1. ls 查看指定目录中的内容

常用参数

  1. -l 查看目录中内容的属性信息,如权限等
  2. -a 查看目录中全部文件,包括隐藏文件(Linux中的隐藏文件名是以点开头的)
  3. -d 列出目录本身,而不是目录中的内容
  4. -h 以人可读的方式显示文件大小,和-l一起使用
  5. -s 以文件大小排序
  6. -t 以时间排序
  7. -r 反向排序
  8. - -time-style=long-iso 以长时间格式显示目录内容信息
  • Linux中一个命令有多个参数时,短命令时,多数可以合并到一起,而且没有前后次序关系
  • 如:ls --lath --time-style=time-iso    == ls -l -a -t -h --time-style=time-iso
[test@centos7 ~]$ ls -lath --time-style=long-iso
总用量 12K
drwx------. 7 test root 169 2020-09-25 19:06 .
-rw-r--r--. 1 test root   0 2020-09-25 19:06 file1
-rw-r--r--. 1 test root   0 2020-09-25 19:06 file2
-rw-r--r--. 1 test root   0 2020-09-25 19:06 file3
drwxr-xr-x. 2 test root   6 2020-09-25 19:06 test2
drwxr-xr-x. 2 test root   6 2020-09-25 19:06 test3
drwxr-xr-x. 2 test root   6 2020-09-25 19:06 test1
drwxr-xr-x. 3 test root  18 2020-09-25 17:28 .config
drwxr-xr-x. 3 test root  18 2020-09-25 17:28 .cache
drwxr-xr-x. 4 root root  45 2020-09-25 17:27 ..
-rw-r--r--. 1 test root  18 2020-04-01 10:17 .bash_logout
-rw-r--r--. 1 test root 193 2020-04-01 10:17 .bash_profile
-rw-r--r--. 1 test root 231 2020-04-01 10:17 .bashrc

ls -l 命令输出结果
第一列 -rw-r–r--. 中,第一个字符,- 表示文件,d表示目录,l表示链接文件(类似于windows中的快捷方式),后面的字符表示权限,以3个字符一组,分别表示,所属主权限,所属组权限,其他权限,r表示读权限,w表示写权限,x表示执行权限
第三列test表示所属主
第四列root表示所属组
第五列表示文件大小
第六列表示文件内容修改时间
最后一列表示文件名

  1. cd 切换目录

切换目录的几种方式:

  1. 通过绝对路径切换
    绝对路径,即从根目录开始编写的路径
  2. 通过相对路径切换
    相对路径,即相对于当前目录位置编写的路径

使用 cd 命令的小技巧:
cd .. 表示切换到上级目录,Linux中../ 表示上级目录,该上级目录可以一直编写,直到达到更目录才不会继续返回上级目录
cd - 表示切换到上一次执行cd命令时所在目录
cd ~ 表示切换到家目录,~ 表示当前登录用户的家目录

[test@centos7 ~]$ cd test1    相对路径切换方式
[test@centos7 ~/test1]$ cd /etc/sysconfig/network-scripts/   绝对路径切换方式
[test@centos7 /etc/sysconfig/network-scripts]$ cd -  返回到上次所在的路径
/home/test/test1
[test@centos7 ~/test1]$ cd ../   返回上级目录
[test@centos7 ~]$ cd ../../../../../etc
[test@centos7 /etc]$ pwd   查看当前目录
/etc
  1. 创建目录

mkdir 创建目录

  • 常用参数:
  1. -p 递归创建目录,可一次性创建多个不同层级的目录
[test@centos7 ~]$ ls
test
[test@centos7 ~]$ mkdir a b c
[test@centos7 ~]$ ls
a  b  c  test
[test@centos7 ~]$ mkdir -p d/a/c/d
[test@centos7 ~]$ tree
.
├── a
├── b
├── c
├── d
│   └── a
│       └── c
│           └── d
└── test

7 directories, 1 file

  1. 删除目录

rmdir 删除空目录
rm 删除文件和目录

  1. -r 递归删除目录
  2. -i 删除前询问
  3. -f 强制删除,不询问
[test@centos7 ~]$ ll     ll == ls -l
总用量 0
-rw-r--r--. 1 test root 0 9月  25 19:06 file1
-rw-r--r--. 1 test root 0 9月  25 19:06 file2
-rw-r--r--. 1 test root 0 9月  25 19:06 file3
drwxr-xr-x. 2 test root 6 9月  25 19:06 test1
drwxr-xr-x. 2 test root 6 9月  25 19:06 test2
drwxr-xr-x. 2 test root 6 9月  25 19:06 test3
[test@centos7 ~]$ ls -l test1
总用量 0
[test@centos7 ~]$ ls -l test2
总用量 0
-rw-r--r--. 1 test root 0 9月  25 19:42 file
[test@centos7 ~]$ ls -l test3
总用量 0
[test@centos7 ~]$ rmdir test1
[test@centos7 ~]$ ls
file1  file2  file3  test2  test3
[test@centos7 ~]$ rmdir test2
rmdir: 删除 "test2" 失败: 目录非空
[test@centos7 ~]$ rm -r test2
[test@centos7 ~]$ ls
file1  file2  file3  test3
  1. 查看目录文件层级划分

tree 可以以树形结构显示指定目录文件层级划分
tree 默认在centos7 上没有安装,需要先安装才可以使用
执行 yum install -y tree 进行安装

  • 常用参数:
  1. -L 指定查看目录层级,最多查看到第几层目录中的内容
  2. -d 只显示目录
  3. -F 在目录的名称后边添加 / 显示
  4. -f 显示完整的目录或文件路径
  5. -i 不显示树形分支,常和 -f 一起使用
[test@centos7 ~]$ tree -L 2
.
├── a
├── b
├── c
├── d
│   └── a
└── test

5 directories, 1 file

关于文件

  1. 创建文件

创建文件的几种姿势
touch file
echo > file 将内容输出到file中,> 表示重定向,将数据重定向到指定文件中,并且会将文件内容覆盖,>> 追加重定向,将数据重定向到指定文件,以追加方式追加到文件尾
cat >file3<<EOF
文件内容
EOF   EOF可以替换为其他ABC等,但是必须前后对应,将文件内容输出到file中,若没有写文件名,则将内容输出到屏幕

[test@centos7 ~]$ touch file1
[test@centos7 ~]$ ls
file1
[test@centos7 ~]$ echo > file2
[test@centos7 ~]$ ls
file1  file2
[test@centos7 ~]$ cat >file3<<EOF
> abc
> EOF
[test@centos7 ~]$ ls
file1  file2  file3
  1. 查看文件

cat 命令会将文件内容一次性全部输出,所以适合查看文件内容少的小文件

  • 常用参数:
  1. -n 显示行号
  2. -E 显示文件中的换行符,Linux中文件为$,Windows的文件为^M$
  3. -T 显示文件中的制表符^I
  4. -v 除LFD和TAB之外,使用“^”和“M-”引用
  5. -A 相当于-vET
[test@centos7 ~]$ cat test 
hello world
BayBay My Baby
test	file
[test@centos7 ~]$ cat -nET test
     1	hello world$
     2	BayBay My Baby$
     3	test^Ifile$

more 可以分页显示文件内容

  • 常用查看命令(more文件后查看时使用):
  1. b 显示上一分屏
  2. f 显示下一分屏
  3. q 退出
[test@centos7 ~]$ more /etc/services 

less 加载文件速度比more块,不一次性加载文件全部内容

  • 常用参数:
  1. -N 显示行号
  2. -m 显示进度百分比
  • 常用查看命令(more文件后查看时使用):
  1. / 从上到下查找指定字符串
  2. ? 从下到上查找指定字符串
  3. n 查下一个指定字符串
  4. N 查找上一个指定字符串
[test@centos7 ~]$ less -Nm /etc/services 
      1 # /etc/services:
      2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
      3 #
		...(中间内容省略)
     22 
     23 tcpmux          1/tcp       # TCP port service 
    
     /etc/services 0%

head 查看指定文件前几行信息,默认显示头10行信息

  • 常用参数:
  1. -n 指定查看文件前几行的信息,或者可以直接 -3,来查看前三行信息
  2. -c 指定查看文件前几个字节
[test@centos7 ~]$ cat test
hello world
BayBay My Baby
test	file
[test@centos7 ~]$ head -1 test
hello world
[test@centos7 ~]$ head -c 3 test
hel

tail 查看文件末尾几行信息,默认查看文件末尾10行内容

  • 常用参数:
  1. -n 指定查看末尾几行信息
  2. -c 指定查看末尾几个字节信息
  3. -f 不断刷新文件内容
  4. - -retry 配合- f 使用,若文件不存在,不断重试打开查看文件
  5. - -pid 配合 -f 使用,指定某进程pid,成为该进程守护进程,当指定pid进程结束时,停止查看文件
[test@centos7 ~]$ tail -c 4  test
ile
[test@centos7 ~]$ cat -A test
hello world$
BayBay My Baby$
test^Ifile$
  1. 文件编辑修改

Linux 中修改文件可以使用强大的 vi / vim 编辑器进行编辑文件,当然还有一个简单的编辑器 nano 也可以实现编辑功能。
它们的关系就如同Widows系统中 notepad(记事本) 和 notepad++ 一样,vim / vi 编辑器功能强大更好用,但是需要学习一些操作方式才可以熟练的上手编写文件,而 nano 操作就简单了特别多了,但是功能一般,就如同一个简单的记事本。

如图为 nano 编辑器界面:
在这里插入图片描述
如图为vim编辑器界面:
在这里插入图片描述

  • nano 上手即可使用,操作简单,下面重点介绍vim的操作方式

vi命令编辑文件命令 --> 升级vim yum install -y vim
vi/vim三种模式:
命令模式: 进入一个文件中之后所处的模式,可以输入一些快捷键,完成某些操作需求
编辑模式: 可以编辑文件信息
底行模式: 输入:之后将光标移动到屏幕最下面,进行保存退出等操作

  • vim 编辑器的使用
    三种模式切换方式如图所示:
    在这里插入图片描述
  • 命令模式的快捷方式
  • 移动光标位置
  1. 输入 G ----------------------------------------快速移动光标到最后一行
  2. 输入 gg -------------------------------------- 快速移动光标到首行
  3. 输入100G/100gg -------------------------- 移动光标到指定100行
  4. ^ / 0 ------------------------------------------- 将光标快速移动到行首
  5. $ ----------------------------------------------- 将光标快速移动到行尾
  6. ctrl + 方向左右键 ---------------------------按词移动光标,词以空格分割
  • 快速复制粘贴和剪切(删除)
  1. yy ----------------------------------------------复制光标所在行
  2. nyy --------------------------------------------复制光标后n行数据
  3. p -----------------------------------------------向光标下一行粘贴
  4. P -----------------------------------------------向光标上一行粘贴
  5. np ----------------------------------------------向光标下粘贴n行信息
  6. dd ----------------------------------------------删除/剪切光标所在行
  7. ndd ---------------------------------------------删除/剪切光标下n行
  8. dgg ---------------------------------------------删除/剪切到文件首行
  9. dG ----------------------------------------------删除/剪切到文件尾行
  • 其他实用功能
  1. u ----------------------------------------------- 撤销操作
  2. ctrl + r -----------------------------------------取消撤销操作
  • 底行模式操作命令

:set nu ---------------------------------显示行号信息
:set nonu ------------------------------取消行号显示
:wq --------------------------------------保存退出
:q ----------------------------------------退出
:wq! -------------------------------------强制保存退出
:q! ---------------------------------------强制退出
: s#oldboy#HQ#g -------------------只替换光标所在行内容
: s#oldboy#HQ# ---------------------只是将一行中找到的第一个内容进行替换, 不会全局都替换
:n,ms#oldboy#HQ#g ----------------将指定行匹配的信息做替换

  1. 文件及目录的复制移动与重命名
  • 文件及目录的复制

cp 复制文件

  • 常用参数:
  1. -r 递归复制目录及其文件。用来复制目录
  2. -p 复制文件或目录的属性信息,备份常用
  3. -d 只复制符号链接本身
  4. -a 相当于 -rpd
[test@centos7 ~]$ tree
.
├── a
├── b
├── c
└── test

3 directories, 1 file
[test@centos7 ~]$ cp test a/
[test@centos7 ~]$ tree
.
├── a
│   └── test
├── b
├── c
└── test

3 directories, 2 files
[test@centos7 ~]$ cp a b/    没有加-r参数,无法复制目录
cp: 略过目录"a"
[test@centos7 ~]$ cp -r a b/
[test@centos7 ~]$ tree
.
├── a
│   └── test
├── b
│   └── a
│       └── test
├── c
└── test

4 directories, 3 files
  • 文件及目录的移动与重命名

mv 移动或重命名文件目录
当移动位置和当前文件是同一位置时,重命名该文件,否则移动该文件到指定目录

[test@centos7 ~]$ tree
.
├── c
└── test

1 directory, 1 file
[test@centos7 ~]$ mv test ./test_1
[test@centos7 ~]$ ls
c  test_1
[test@centos7 ~]$ mv test_1 ./c/
[test@centos7 ~]$ tree
.
└── c
    └── test_1

1 directory, 1 file
  1. 压缩文件处理
  • tar 压缩与解压缩

tar 压缩及解压缩 tar 格式的压缩包

  • 常用命令:
  1. -cvf 创建一个 tar 压缩包,若有指定压缩格式,可man tar进行查看具体参数
  2. -tf 预览压缩包中的文件
  3. -xvf 解压压缩包
  4. -C 指定解压缩位置
[test@centos7 ~]$ ls
c  PHP.7z  PHP.png  PHP.zip  test
[test@centos7 ~]$ tree
.
├── c
│   └── test_1
├── PHP.7z
├── PHP.png
├── PHP.zip
└── test

2 directories, 4 files
[test@centos7 ~]$ tar -cvf test.tar c PHP.png      指定压缩包文件名后的参数都作为加入压缩包的文件
c/
c/test_1
PHP.png
[test@centos7 ~]$ ls
c  PHP.7z  PHP.png  PHP.zip  test  test.tar
[test@centos7 ~]$ tar -tf test.tar
c/
c/test_1
PHP.png
[test@centos7 ~]$ tar -xvf test.tar -C test
c/
c/test_1
PHP.png
[test@centos7 ~]$ tree
.
├── c
│   └── test_1
├── PHP.7z
├── PHP.png
├── PHP.zip
├── test
│   ├── c
│   │   └── test_1
│   └── PHP.png
└── test.tar

3 directories, 7 files
  • zip 压缩与解压缩

zip 常见 zip 压缩包

  • 常用参数:
  1. -v 显示命令执行过程信息
  2. -r 递归操作目录
  3. -d 删除压缩包中指定文件
  4. -g 将文件压缩后添加到既有压缩文件中而无需创建新文件
    0
[test@centos7 ~]$ zip -vr test.zip c test
  adding: c/	(in=0) (out=0) (stored 0%)
  adding: c/test_1	(in=4) (out=4) (stored 0%)
  adding: test/	(in=0) (out=0) (stored 0%)
total bytes=4, compressed=4 -> 0% savings
[test@centos7 ~]$ ls
c  PHP.png  test  test.zip
[test@centos7 ~]$ unzip -l test.zip 
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  09-26-2020 17:55   c/
        4  09-25-2020 20:55   c/test_1
        0  09-26-2020 18:27   test/
---------                     -------
        4                     3 files

[test@centos7 ~]$ zip -g test.zip test2
  adding: test2 (stored 0%)
[test@centos7 ~]$ unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  09-26-2020 17:55   c/
        4  09-25-2020 20:55   c/test_1
        0  09-26-2020 18:27   test/
        0  09-26-2020 18:40   test2
---------                     -------
        4                     4 files

unzip 解压缩 zip 压缩包

  • 常用参数:
  1. -t 测试压缩包是否有错误
  2. -l 查看压缩包中的内容
  3. -x 解压文件
  4. -d 指定解压后存放的目录
[test@centos7 ~]$ tree
.
├── c
│   └── test_1
├── PHP.png
├── test
├── test2
└── test.zip

2 directories, 4 files
[test@centos7 ~]$ unzip -x test.zip -d test
Archive:  test.zip
   creating: test/c/
 extracting: test/c/test_1           
   creating: test/test/
 extracting: test/test2              
[test@centos7 ~]$ tree
.
├── c
│   └── test_1
├── PHP.png
├── test
│   ├── c
│   │   └── test_1
│   ├── test
│   └── test2
├── test2
└── test.zip

4 directories, 6 files

其他命令

查找文件目录

find 查找文件命令
命令格式:find 查找范围 查找条件

  • 常用参数:
  1. -name 按名称查找
  2. -size 按大小查找
  3. -atime 按访问时间查找
  4. -ctime 按文件内容修改时间查找
  5. -mtime 按文件属性权限修改时间查找
  6. -type 按文件类型查找(文件类型有 f 文件,d 目录,l 链接文件)
  7. -user 按文件所属主查找
  8. -group 按文件所属组查找
  9. -prem 按权限查找
  10. -exec ls -l {} ; 对匹配到的内容执行的命令 ,{}指匹配到的内容
  11. -maxdepth 指定查找的最大目录层级 类似于tree -L 2
  • 命令说明:以上命令,-size ,-atime,-ctime,-mtime 指定大小的方式,+ n表示大于n值,-n表示小于n值,n表示等于n值
find / -size +12K    遍历根下所有文件,查找文件大小大于12K的文件
find / -prem 777     遍历根下所有文件,查找文件权限为777的文件
find / -name passwd -exec  ls -l {} \;   遍历根下所有文件,查找文件名为passwd的文件,并对他执行ls -l命令

文本过滤查找

grep 过滤文本命令

  • 常用参数:
  1. -o 只输出匹配到的内容
  2. -v 输出和规则不匹配的行
  3. -n 输出匹配内容的行号
  4. -m 匹配 n 次后停止
  5. -i 忽略大小写
  6. -r 对目录下所有文件执行匹配操作查找指定内容
  7. -E 使用 egrep 扩展,如 | 需要 -E 参数才可以正确使用
  8. -B 同时显示筛选内容的前 n 行内容
  9. -A 同时显示筛选内容的后 n 行内容
  10. -C 同时显示筛选内容的前后 n 行内容
  • 常用正则表达式符号
  1. ^xxx 以xxx开始的字符串;
  2. xxx$ 以xxx结尾;
  3. a|b 匹配a或者b;
  4. . 匹配任意字符;
  5. * 匹配前一个字符0或无数次;
  6. + 匹配前一字符1次或无数次;
  7. {n,m} 匹配前一字符n~m次;
  8. ? 匹配前一个字符0或1次,非贪婪匹配,当只需要匹配到第一个匹配的字符串就停止时可用使用;
  9. [a-z] 匹配a-z任意字符;
  10. ^$ 表示空行
[test@test-201 ~]$ ls
test
[test@test-201 ~]$ cat test
hello world!

hello Mary!

Bay Bay Baby!
[test@test-201 ~]$ grep "hello" test
hello world!
hello Mary!
[test@test-201 ~]$ grep -v "^$" test
hello world!
hello Mary!
Bay Bay Baby!
[test@test-201 ~]$ grep "^b" test
[test@test-201 ~]$ grep -i "^b" test
Bay Bay Baby!
[test@test-201 ~]$ cat test
hello world

hello Mary

Bay Bay Baby
[test@test-201 ~]$ grep "^h.*d$" test
hello world
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值