- 运行 runlevel 可以查看当前系统的运行级别
- 输入: clear 或者 ctrl + l ,表示清屏
- pwd命令: 显示当前的目录路径
默认比较重要的目录
-
/bin: 存放的是 系统的命令,比如 cd,ls…
-
/etc: 存放的是项目的配置文件, 比如mysql的 配置文件 my.cnf
-
/home
-
如果是超级用户root,那么root用户进入系统的默认路径是 /root
-
如果是普通用户,那么/home目录下面会创建一个和用户名称一样的目录,该用户进入系统的默认路径就是 当前目录
比如: peter 普通用户, 默认的路径就是 /home/peter
-
规范:把 当前用户的 项目资料, 存放在 这个用户的 家目录下面
-
-
/root: 超级用户的家目录
-
/sbin: 里面的命令只有超级用户root可以执行
-
/usr: 把安装的软件存放在这个目录
命令
-
cd: 表示进入到某一个目录
.
: 表示当前目录, 一般不是配合cd使用. .的用法一般用来执行shell脚本..
: 表示当前路径的 上一级 目录. 如果 路径以 . 或者 … 开头都表示 相对路径~
: 表示用户家目录, 不管当前在哪个目录,只要执行 cd ~,就直接跳转到 当前用户的家 目录. cd 后面不加任何字符,也表示跳转到用户家目录/
: 表示 根目录, 路径如果是以 / 开头表示 绝对路径-
: 表示 用户 上一次 所在的目录
-
ls: 查看当前目录下面所有的 文件和 文件夹
-
ls 命令格式:
ls -al 文件名
- -al 表示选项, 选项的字符可以是多个, 顺序没有要求
- 如果不加文件名,那么是显示当前文件下面所以的文件
- 如果加了文件名,那就只显示这个文件的详情
-
ls -l : 表示列出所有文件的详细信息
- 包含7部分
-rwxr-xr-x | 1 | root | root | 45784 | 8月 20 2019 | uniq
-
第一部分
-rwxr-xr-x
: 表示当前文件的权限-
第一个字符:表示文件类型
-
: 表示文件- d: 表示文件夹
- l : 表示软连接, 相当于window的快捷方式
-
后面的9个字符表示文件权限: 前面3个字符表示当前用户权限, 中间3个字符表示所属组的用户权限,最后3个字符表示其他用户权限
-
:没有权限- r: 有可读权限
- w:有可写权限
- x:有可执行权限
-
-
第二部分
1
:- 如果是文件夹: 表示当前文件夹里面有几个文件夹, ls -al 是显示隐藏的文件和文件夹
- 如果是文件:表示当前文件的硬链接,硬链接表示两个文件同时指向硬盘的同一个区域
-
第三部分 root: 哪个用户创建的这个文件
-
第四部分 root: 这个用户所属的用户组
-
第五部分 45784: 表示文件大小 (单位是字节)
-
第六部分
8月 20 2019
: 表示当前文件修改时间 -
第七部分: 表示文件的名称
-
ls -a : -a这个参数表示显示所有隐藏的文件和文件夹
- 所有的隐藏文件和文件夹 都是 以 . 开头
-
ls -lh: -h这个参数表示把 文件大小 默认的字节(byte) 用 比较容易 看的方式(k,M,G) 显示
-
touch: 创建一个或者多个文件
- 格式: touch 文件名1 <文件名2 文件名3…>
-
mkdir:创建目录
- 格式: mkdir 目录1 <目录2 目录3>, 如果没有 -p 选项,只能创建 一级 的文件夹
- 加了 -p 选项: mkdir -p a/b/c, 表示 可以 创建 嵌套的 a/b/c 的目录
-
命令后面在 空格 --help, 表示查看当前命令有哪些选项可以使用, 会显示 这些 选项详细的使用说明
- 比如: ls --help
-
rmdir: 删除空目录,不能删除文件和非空目录
-
rm命令: 删除文件个文件夹命令
- -r : 递归的删除一个目录下面所有的文件和文件夹
- -f : 不提示信息,强制删除
- 通常的用法: rm -rf 文件名
- 特殊用法: rm -rf c*, 表示删除c字符开头的所有的文件,. *是一个通配符,能匹配所有的字符
-
cp命令: 赋值或者拷贝文件或者文件夹
- 格式: cp 源文件路径 目标文件路径
- 如果目标路径是一个目录, 那么会原样拷贝源文件到目录中
- 如果目标路径是一个文件名,那么会把源文件名重新命名成新的文件名
- 如果拷贝的是文件夹,那么 需要加 -r 参数, 表示递归拷贝: 比如 cp -p a aaa
- 格式: cp 源文件路径 目标文件路径
-
选项 可以放到 命令的后面,也可以放在 整个命令的后面
- 例如: cp -r a aaa 和 cp a aaa -r 的结果是一样的
-
mv命令: 重命名或者剪切文件
- 格式 mv 源文件名 目标文件名
- 如果 目标文件名是一个 目录,那么 直接把源文件移动到该目录下
- 如 目标文件一个文件名, 移动之后,会重新命令成新的文件名
- 格式 mv 源文件名 目标文件名
-
cat命令: 把文件的内容全部显示出来
- 格式: cat 文件名称
-
tac命令: 从后往前把文件的内容全部显示
- 格式: tac 文件名称
-
head 命令: 显示文件开头某几行
- 格式: head -n 文件名
- 如果没有执行 -n 多少行, 那么默认显示 10行
- 如果执行 -n 是 20行, 比如: head -20 文件名 , 那么显示文件的 前20行数据
-
tail命令: 显示文件末尾的某几行
- 格式: tail -n 文件名
- 如果没有 -n , 默认显示 文件末尾 的 10行
- 如果加了 -n, 表示 显示末尾的 n 行, 比如 tail -5 文件名,就是显示后面5行数据
- 特殊用法: 实时监控当前文件有没有新的内容写入
- 格式 tail -f 文件名: 它是一个阻塞的状态,如果有新的内容写入, 会立刻显示新写入的内容
tree命令: 显示当前目录的结构层次. 注意:需要安装 yum install tree
history: 显示当前用户 之前输入过的 所有的命令
echo命令: 通常的用法是 在一个文件中 追加少量的内容
- 格式 echo “字符串” >或者>> 文件名
- 如果是一个 > : 表示 新写入的 内容会覆盖 文件中的所有内容
- 如果是两个 >: 表示 把新写入的内容 追加到 文件末尾
nl命令:
- 格式: nl 文件名: 显示所有文件内容,并显示每一行的行号
wc命令: 显示一个文件的 行数, 单词数, 字符数
- 格式: wc 文件名
- 如果想单独显示行数,单词数,字符数. 需要在wc命令后面加选项
- -l 表示行数: wc -l a.txt
- -w表示单词数: wc -w a.txt
- -m 表示字符数: wc -m a.txt
more / less 命令: 可以一屏或者一行显示文件中的内容
- 格式: more/less 文件名
- enter: 按行查看
- 空格:按屏来查看
- q键:退出查看的内容
- more查看到文件最后会自动退出, less不会,需要点击q键
- less可以点击 上下键,进行按行查看
- 特殊用法: 如果一个文件夹下面有很多文件,为了不把所有的文件全部显示,只想一屏一屏查看,可以通过加 | more命令查看,这样这个文件夹下面所有的文件都是按照一屏一屏的输出
- 例如一屏一屏查看/bin目录下所有的文件,命令首相 cd /bin , 然后 ls -l | more , 管道 | 的意义,是 把前面命令的输出的内容,当做后面命令的输入内容
vim的三个模式: 格式vim 文件名
- 命令模式: 使用vim 文件名, 默认进入的就是命令模式. 不能直接去写数据,只能通过命令对文件内容进行增删改查
- 插入模式(编辑模式): 相当于在编辑器中对文件内容进行修改.
- 进入到插入模式的方法
- 由命令模式进入插入模式: 点击 i 键
- 由编辑模式进入插入模式: 先点击 ESC 键 进入 命令模式, 然后点击 i 键进入 插入模式
- 进入到插入模式的方法
- 编辑模式(末行模式): 表示当操作完文件之后,需要对文件进行保存或者退出.
- 如果当前模式是命令模式: 直接点击 shift + : , 后加加上保存或者退出的按键, 例如 (:w 保存) (:q退出)
- 如果当前模式是插入模式
- 首先由插入模式进入到命令模式: 按 ESC 键
- 由命令模式进入到编辑模式: 点击 shift + : , 进行对文件的保存或者退出
命令模式常用的一些操作
- shift + z + z : 保存并退出当前文件
- vi a.txt +3: 表示进入到命令模式, 光标定位在 第三行
- vi a.txt +: 表示 光标定位在 最末行
- G: 定位到文件最末行
- gg: 定位到文件首行
- ngg: 表示从任何其他行,定位到第n行. 比如 5gg, 表示定位到第5行. 如果还想继续从当前行往下偏移5行,点击 5,然后点击enter
- shift + 4: 表示定位到 当前行 最末尾的字符
- shift + 6 或者 0数字: 表示定位到 当前行 最开始的字符
- yy: 复制当前行
- nyy: 复制由当前行开始往下的n行, 比如当前行在第2行, 如果执行3yy,表示 复制第2行到第4行的内容
- p: 在当前行处,粘贴之前复制的内容
- ctrl + f : 下翻一页
- ctrl + b: 上翻一页
- ctrl + d: 下翻半页
- ctrl + u : 上翻 半页
- x : 表示 删除光标 右边的一个字符
- nx: 表示 删除 光标 右边 n 个字符
- X (shift + x): 表示 删除光标 左边的一个字符
- nX (3 + shift + x): 表示 删除光标 左边的 3个字符
- dd: 表示 删除当前行
- ndd: 表示删除当前行 下面的 n 行
- u: 表示 撤销上一次的操作, 可以连续点击 u, 表示 撤销上n次的操作
- ctrl + r : 表示反撤销
在三种模式中,如果是非正常退出. 比如点击 ctrl + z 退出,或者电脑死机. 那么这种情况会生成一个 名称为 .文件名.swp的交换文件. 比如 .a.txt.swp . 如果生成这种交换文件. 那么下一次 用vim 打开文件, 会出现提示信息,需要点击 enter 才能继续编辑. 通常的做法都是把这个隐藏的交换文件删除掉.就是执行 rm -rf .a.txt.swp
由 命令模式 进入 插入模式 常用的按键
- i : 在当前光标插入
- I : 在当前行 非空字符处 插入
- a : 在光标的下一个字符处 插入
- shift + a (A): 在当前行的末尾插入
- o : 在当前行的下一行的空行处插入
- shift + o (O): 在当前行的上一行的空行处插入
- s : 删除光标所在字符,并进入输入模式
- shift + s (S): 删除光标所在的行,并进入输入模式
编辑模式(末行模式) 常用的按键
-
:w
: 表示保存文件不退出 -
:q
: 表示 退出, 一般有两种用法. 要么 是:wq
保存退出. 要么是:q!
不保存文件强制退出 -
:wq
:表示 保存文件并退出 -
:x
: 表示 保存文件并退出 -
:q!
: 表示强制退出,不保存修改 -
:w 新文件名称
: 文件修改之后,保存一个新的文件 -
:set nu
: 显示文件内容的 行号 -
:set nonu
: 隐藏文件内容的 行号 -
[:]/关键字
: 这个:
可以写 也可以不写, 输入完字符后, 点击 回车, 会从开头去找第一个匹配到的关键字.- 如果想继续 往下 找相同的关键字,那么点击 n
- 如果想 往上 找相同的关键字,点击 shift + n (N)
-
[:]?关键字
: 从文件末尾查找匹配的关键字- N: 从上往下找匹配的关键字
- n: 从下往上找匹配的关键字
-
:ns/查找的字符/替换的字符[/g]
- n表示第几行
- /g表示是否全局替换
- 例如
5s/hello/HELLO
,表示的意思: 把第5行 第一次匹配到的 hello 改写成 HELLO - 例如
5s/hello/HELLO/g
表示的意思: 把 第5行 所有匹配的的 hello 全部改写成 HELLO
-
:m,ns/查找的字符/替换的字符[/g]
- 查找第m行到第n行的数据,并且替换,
/g
的用法和上面是一样的
- 查找第m行到第n行的数据,并且替换,
-
:%s/查找的字符/替换的字符[/g]
- 查找所有行进行替换,
/g
的用法和上面是一样的
- 查找所有行进行替换,
-
:n
表示将光标定位到第 n 行
在终端输入命令,如果想从命令开头跳到命令末尾,快捷键是 ctrl + e
如果想从命令末尾跳到命令开头,快捷键是 ctrl + a
用户管理的命令
-
whoami: 查看当前的登录用户
-
useradd: 添加用户
- 格式 useradd 用户名: 会自动在/home目录下面创建一个同名的文件夹,如果用这个用户登录,默认的进入系统的路径就是/home/用户名
- 有一些参数只需要了解
- -d : 指定一个路径作为 这个用户的 家目录, 一般不会添加这个参数
- -m: 老版本需要加入这个参数,表示在/home目录下面创建一个同名的家目录. 老版本中如果不加,就不会创建家目录
- -s: 表示当前用户登录系统的 shell脚本. 老版本中需要指定 -s /bin/bash, 意思是能够登录系统. 如果 -s 指定的是 /sbin/nologin 表示这个用户不能登录系统
-
passwd: 设置用户密码
- passwd 用户名: 给这个用户名设置密码
- passwd 没有用户名: 给当前登录用户重新设置密码
-
userdel: 删除指定的用户
- userdel 用户名: 删除指定用户, 但是不会删除这个用户的家目录
- userdel -r 用户名: 删除指定用户的同时 ,删除这个用户的家目录
-
su: 切换用户
- su 非root的用户名: 表示切换到非root的用户, 由root用户切换到其他用户,不需要输入密码
- su 或者 su - : 表示切换到root用户, 需要输入root用户的密码
-
sudo: 给jack用户赋予管理员的权限
-
步骤:
- 用root用户, 把jack用户加入到 /etc/sudoers 文件中
-
# 在101 行加入 如下的代码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jack ALL=(ALL) ALL
-
切换到jack用户: su jack
- 在所有执行的命令前加入 sudo命令. 比如 编辑 /etc/vimrc, 那么命令是
sudo vi /etc/vimrc
- 在所有执行的命令前加入 sudo命令. 比如 编辑 /etc/vimrc, 那么命令是
-
visudo: 直接编辑 /etc/sudoers 文件. 等同于 vi /etc/sudoers