一篇文章带你学完linux基础!

基础命令

1.shell窗口(终端)

1.1 我们先从Hello world! 开始


$ echo Hello world!


将会把Hello,打印在终端屏幕上。

1.2查看一个文件


$ cat file1


  • 查看一个文件
  • 也可以一下看多个文件

1.3 标准输入输出

  • Ctrl + d 终止一个没有输入命令行
  • Ctrl + c 终止一个命令无论有输入还是没有输入

1.4 基础命令

1.4.1 ls


$ ls -a -l -h


  1. a是看隐藏文件
  2. l是变成列表形式
  3. h是更好的看大小

1.4.2 cp


$ cp file1 file2
$ cp file1 file2 dir


  • 复制一个或多个文件到某一个地方去

1.4.3 mv


$ mv file1 file2
$ mv file1 file2 dir


  • 移动一个或多个文件到某一个地方去

1.4.4 touch


touch file


  • 创建一个文件(如果已有文件则会更新该文件)

1.4.5 rm


$ rm file -r -f


  • 删除文件
    • r 是彻底删除 用来删除有文件的文件夹
    • f 是强制删除

1.4.6 echo


$ echo Hello again!


  • 是一个标准的输出

1.4.7 cd


cd file


  • 进入该文件夹,更改你当前的工作目录

1.4.8 mkdir和rmdir

  • -p 递归创建
  • -v 显示创建完成

$ mkdir file1
$ mkdir file1/file2/file3 -vp
$ rmdir file2


  • 高级
  • 创建多个分支结构的文件夹,并且用tree查看

$ mkdir -vp shiyanlou/{lib/,bin/,doc/{info,product}}
$ tree shiyanlou/


  • 创建一个空文件夹
  • 删除一个空文件夹

2.1 shell 通配符

  • *是一个或多个任意字符
  • ?是一个任意字符
  • 要想打一个真正的 * 号,需要‘ * ’,用单引号,来引起来

2.2 中间命令

2.2.1 grep

  • 就是查看文件中匹配的行

$ grep root /etc/passwd


  • 查看passwd中有root的行
  • 重要参数
    • -i 忽略大小写        -v 是匹配反转
    • 在grep 中 .* 表示匹配多个字符      . 表示匹配一个字符 [相当于正则表达式]

2.2.2 查看文件less


$ grep ei /etc/passwd | less


  • b 上一屏
  • 空格 下一屏
  • q 退出

2.2.3 pwd

  • 查看当前目录

2.2.4 diff

  • 比较文件的不同

$ diff file1 file2


2.2.5 file命令

  • 查看文件格式 可以一下查看多个

$ file file


2.2.6 find 和locate 命令

  • 在两个命令中如果你想用通配符,必须用一对单引号来包围住星号
  • -name 是通过文件的名字来寻找的
  • -print 是打印出来

$ find dir -name file -print
$ locate /etc/sh


  • locate是通过索引查找不常用
  • locate 搜索/etc中以sh开头的文件

2.2.7 head和tail 命令


$ head file
$ tail file


  • -n 设置显示行数
  • +n 从第几行开始显示

2.2.8 sort 命令


$ sort file -r -n


  • -r 是反转
  • -n 是排序那些按照数字开头的文件

2.3 更改密码


$ passwd


2.4 dot文件

  • 以点开头的文件就是dot文件 (隐藏文件)
  • ls -a 可以查看隐藏文件

2.5 环境变量和shell变量

  • shell变量
    • 上边分别是赋值和打印 打印的时候一定要有 $

$ shell1=‘Hello shell!’
$ echo $shell1


  • shell 变量针对当前的shell程序,而环境变量可以被所有的Linux的进程使用
  • 如果想使一个shell变量变成环境变量就要

$ export shell1


2.6 命令路径

  • 查看路径 不同路径使用:分离

$ echo $PATH


  • 临时添加一个路径 关闭之后就非常恢复到以前的时候了

$ PATH=dir:$PATH


  • 将路径加入到最前面

$ PATH=$PATH:dir


  • 将路径加入到最后面

2.7 特殊字符

字符 名称 用途
* 星号 通用字符
. 句点 当前目录
! 感叹号 历时命令,逻辑非运算符
| 管道 命令管道
/ 斜线 目录分隔符
\ 反斜线 常量,宏
$ 美元符号 变量符号,行尾
单引号 字符串常量
` 反引号 命令替换
双引号 半字符串常量
^ 脱字符 逻辑非运算符,行头
波浪字符 逻辑非运算符,目录快捷方式
# 井号 注释,预处理,替换
[ ] 方括号 范围
{ } 大括号 声明块,范围
_ 下划线 空格的简易替代
  • 注解 控制键,我们通常用^表示,如^C代表CTRL-C

2.8 命令行编辑

按键 操作
CTRL-B 左移光标
CTRL-F 右移光标
CTRL-P 查看上一条命令(等于上移光标)
CTRL-N 查看下一条命令(等于下移光标)
CTRL-A 移动光标至行首
CTRL-E 移动光标至行尾
CTRL-W 删除前一个词
CTRL-U 删除至行首
CTRL-K 删除至行尾
CTRL-Y 粘贴已删除的文本

2.9 文本编辑器

  • 如果你想要一个万能的,在哪里都可以用的请试试Emacs
  • 如果你想要一个快捷高效的,请试试vim

2.10 获取在线帮助

  1. man 手册

$ ls man


  1. 利用搜索引擎

2.11 shell 的输入输出

  1. shell 的输出默认是在终端,你可以使用重定向字符 > :

$ command > file


  • 这个会先清空文件,如果想要防止被清理可以使用-C
  1. 重定向追加

$ command >> file


  • 使用两个 >> 符号就可以了
  1. 使用管道命令将输出指向另一个命令

$ head /proc/cpuinfo | tr a-z A-Z


2.12 标准错误输出

  • 在重定向中 > 是重定向标准输出的 2> 是重定向标准错误输出的

$ ls /asdfklajsdlf > f


  • 这样将会在你的终端屏幕上报错

$ ls /aksdlfja;f 2> f


  • 这样将会把你的错误信息,重定向到你的f文件中

2.13 标准输入重定向(了解)

  • 基本上不常用 ,因为没有<符号,我们的

$ head < /proc/cpuinfo


2.14 后台进程

  • 你想在终端解压一个文件,但是你还不想等待,你就需要把解压的进程分配到后台了

$ gunzip file.gz &


  • CTRL+L 清空屏幕
  • CTRL+U 清空当行

2.15 用户权限

  • 使用ls -l 查看
  • 除第一位,
    1. 前三位代表这用户的权限 u
    2. 中间是组的权限 g
    3. 最后是其他人的权限 o
  • 每一位的意义
    1. r 文件可读
    2. w 文件可写
    3. x 文件可执行
    4. - 无

2.16.1 更该文件权限

  • 给其他用户和组内的人加上可读的权限

$ chmod go+r file


2.16.2 软链接(符号链接)

  • 相当于Windows中的快捷方式

2.16.3 创建一个软链接

  • 使用ln -s来创建一个软链接

$ ln -s target linkname


  • ! 运行这个命令时请反复确认target 和 linknam这两个参数的位置是否一样
  • target 是要指向的目标路径,linkname 是符号链接的名称
  • 注意: target的路径一定要是绝对路径
  • 注意: 不要忘记-s -s 是创建软链接用的,没有-s就是创建硬链接

2.17 归档和压缩文件

2.17.1 gzip命令

  • 压缩 gzip file
  • 解压 gunziip file.gz
  • 注意他只能压缩单个文件

2.17.2 tar命令

  • 压缩文件

$ tar cvf archive.tar file1 file2 …


  • 解压文件

$ tar xvf archive.tar


  • 压缩是cvf,解压是xvf

2.17.3 压缩归档文件 (.tar.gz)

  1. 先gunzip解压一次,再tar解压一次而已

$ gunzip file.tar.gz
$ tar xvf file.tar


2.18 linux目录结构基础

一篇文章带你学完linux基础!_第1张图片

  • /bin 目录中放的是可执行文件,包括大部分基础命令(ls、cp),和一些shell脚本
  • /dev 设备文件
  • /etc 重要的系统配置文件(如用户密码,启动文件,设备,网络等等)
  • /home 用户个人文件
  • /lib可执行程序使用的各种代码库
  • /proc 是一个伪文件系统,它只存在内存当中,而不占用外存空间。(我也不太清楚)
  • /sys 类似于proc目录,里面是设备和系统的信息
  • /sbin root用户的可执行文件
  • /tmp 无关紧要的临时文件
  • /usr 存放这许多linux的系统文件
  • /var 是程序运行时信息存放的地方(如系统日志,用户信息,缓存)

2.18.1 root目录下的其他目录

  • /boot 存放内核加载文件,在linux第一次启动时才出现,并且而后不会更改了
  • /media 加载可移除设备,比如可移动硬盘
  • opt 存放第三方软件

2.18.3 内核位置

  • linux 系统的内核通常在/valiumz 或者 /boot/vmlinuz 中

2.20 以超级用户的身份运行命令

  • su 命令 输入密码就能启动 root 命令行,但是有几个缺点
  1. 必须输入root密码
  2. 无法访问普通的shell环境
  3. 对上述命令的用户身份没有记录
  4. 对更改系统的命令没有记录信息

2.20.1 sudo命令

  • sudo pacman -S XXXX
  • 运用一次管理员身份去运行一个命令

2.20.2 /etc/sudoers

  • 更改配置文件使一些用户不用输入超级用户的密码,以超级用户的权限运行命令

User_Alias ADMINS = user1,user2
ADMINS ALL = NOPASSWD:ALL
root ALL=(ALL)ALL


  1. 给用户组起别名
  2. 赋值给他们权限
  3. root用户能够在任何主机上执行任何命令

Congratulate you!

you are very good!

你现在以及看完了所有的linux基础命令!

你可能感兴趣的:(linux)