Linux 常用命令笔记

一、目录与文件操作命令

1.1 显示目录文件 ls

语法:ls [-aAdfFhilnrRSt] [文件或目录]

# 显示所有文件或目录(包含隐藏)
[root@localhost /]# ls -a
# 显示详细信息
[root@localhost /]# ls -l
[root@localhost /]# ll
# 递归显示当前目录下所有目录文件
[root@localhost /]# ls -R
# 按修改时间排序(降序),最好搭配-l使用
[root@localhost /]# ll -t

1.2 切换目录 cd

语法:cd [相对路径或绝对路径]

# 切换到根目录
[root@localhost ~]# cd /
# 回到上一级目录
[root@localhost ~]# cd ..
[root@localhost ~]# cd ../
# 进入当前目录
[root@localhost ~]# cd ./
# 显示并回到上一次操作的目录
[root@localhost ~]# cd -
# 切换到当前用户的宿主(家)目录
[root@localhost ~]# cd ~
[root@localhost ~]# cd
# 进入到suetnay这个用户的宿主(家)目录,即/home/suetnay
[root@localhost ~]# cd ~suetnay

1.3 显示当前所在的目录 pwd

语法:pwd [-P]

# 显示当前工作目录,即/root
[root@localhost ~]# pwd
# 显示实际的目录路径,而非连接文件本身的路径
[root@localhost ~]# pwd -P

1.4 创建新目录 mkdir

语法:mkdir [-mp] 目录名

# 创建新目录
[root@localhost data]# mkdir test
# 创建多级目录
[root@localhost data]# mkdir -p test1/test2/test3/test4
# 同时创建多个目录
[root@localhost data]# mkdir test2 test3 test4
# 创建权限为rwx--x--x的目录
[root@localhost data]# mkdir -m 711 test5

1.5 复制目录与文件 cp

语法:cp [–adfilprsu] 源文件 目标文件

# 复制目录下的所有内容到另一个目录下
[root@localhost data]# cp -r ./a ./test
# 复制目录下的所有内容到另一个目录下,并保留文件属性
[root@localhost data]# cp -a ./a ./test
# 复制文件
[root@localhost data]# cp a.txt ./test
# 保留文件属性(包括源文件时间等)
[root@localhost data]# cp -p a.txt ./test
# 复制目录下的所有内容到另一个目录下
[root@localhost data]# cp -r ./a ./test
# 复制目录下的所有内容到另一个目录下,并保留文件属性
[root@localhost data]# cp -a ./a ./test

1.6 移动目录与文件、或更名 mv

语法:mv 源路径 目标路径

# 移动目录
[root@localhost data]# mv test3 test
# 同时移动多个目录(移动test1和test2到test下)
[root@localhost data]# mv test1 test2 test
# 重命名
[root@localhost test]# mv test1 test3
# 移动文件
[root@localhost data]# mv a.txt test
# 同时移动多个文件(移动a.txt和b.txt到test下)
[root@localhost data]# mv a.txt b.txt test
# 重命名
[root@localhost test]# mv a.txt b.txt

1.7 删除空目录 rmdir

语法:rmdir [-p] 目录名

# 删除空目录
[root@localhost data]# rmdir test5
# 连同上层空目录也一起删除
[root@localhost data]# rmdir -p test1/test2/test3/test4

1.8 删除目录 rm

语法:rm [-rf] 目录或文件名

# 删除目录(询问)
[root@localhost data]# rm -r test1
# 强制删除目录
[root@localhost data]# rm -rf test1
# 删除文件(询问)
[root@localhost data]# rm a.txt
# 强制删除文件
[root@localhost data]# rm -f a.txt

1.9 创建文件 touch

语法:touch [-acdmt] 文件名

# 创建空文件或更新已存在文件的时间(不会覆盖原文件)
[root@localhost data]# touch a.txt
# 同时创建多个文件
[root@localhost data]# touch b.txt c.txt d.txt

1.10 查看文件内容

1.10.1 显示文件内容 cat

语法:cat [-An] 文件名

# 显示文件内容
[root@localhost data]# cat a.txt
# 显示行号
[root@localhost data]# cat -n a.txt
# 显示所有内容,包括隐藏的字符
[root@localhost data]# cat -A /etc/resolv.conf

1.10.2 分页显示内容 more

语法:more 文件名

  • 空格键:向下翻动一页
  • Enter:向下滚动一行
  • /字符串:查询“字符串”这个关键字
  • :f:立刻显示出文件名以及目前显示的行数
  • q:立刻离开 more,不再显示该文件内容
  • b 或 [ctrl]-b:往回翻页,只对文件有用,对管道无用
# 分页显示内容
[root@localhost data]# more /etc/wgetrc

1.10.3 分页显示内容 less

语法:less 文件名

  • 空格键:向下翻动一页
  • d:向后翻半页
  • u:向前翻半页
  • Enter:向下滚动一行
  • [PageDown]:向下滚动一行
  • [PageUp]:向上滚动一行
  • /字符串:向下查询“字符串”
  • ?字符串:向上查询“字符串”
  • n:重复前一个查询(与 / 或 ? 有关)
  • N:反向重复前一个查询(与 / 或 ? 有关)
  • q:离开 less
# 分页显示内容
[root@localhost data]# less /etc/wgetrc

1.10.4 查看文件前几行 head

语法:head [-n] 文件名

# 查看文件前几行,默认显示 10 行
[root@localhost data]# head /etc/wgetrc
# 查看文件前 20 行
[root@localhost data]# head -20 /etc/wgetrc
[root@localhost data]# head -n 20 /etc/wgetrc
# 不显示文件后面的 100 行
[root@localhost data]# head -n-100 /etc/wgetrc

1.10.5 查看文件后几行 tail

语法:tail [-fFn] 文件名

  • -f :依据inode号跟踪,如果目标文件被重命名,则新创建的同名文件不会被跟踪
  • -F:依据路径名跟踪,如果目标文件被重名,然后创建了同名的新文件,则会继续跟新文件
# 查看文件后几行,默认显示 10 行
[root@localhost data]# tail /etc/wgetrc
# 查看文件前 20 行
[root@localhost data]# tail -20 /etc/wgetrc
[root@localhost data]# tail -n 20 /etc/wgetrc
# 只显示文件 100 行以后的内容
[root@localhost data]# tail -n+100 /etc/wgetrc
# 只显示第 11 到第 20 行
[root@localhost data]# head -n 20 /etc/wgetrc | tail -n 10
# 持续检测文件内容(按 [ctril]-c 离开tail)
[root@localhost data]# tail -f /etc/wgetrc

1.11 查找命令

1.11.1 查找系统命令所在路径 which

作用:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
语法:which 命令

# 查找 cd 命令所在路径
[root@localhost data]# which cd

1.11.2 查找特定命令 whereis

作用:查找与命令有关的文件位置
语法:whereis [-bmsu] 命令

# 把和 ls 文件相关的文件都查找出来
[root@localhost ~]# whereis ls

1.11.3 查找文件或目录:find

语法:find [选项] [操作]
如果没有指定搜索路径,默认从当前目录查找。

选项含义
-name根据文件名查找
-perm根据文件权限查找
-prune该选项可以排除某些查找目录
-user根据文件属主查找
-group根据文件属组查找
-mtime -n | +n根据文件更改时间查找
# 按名称查找,精确查找
[root@localhost ~]# find /etc -name sudo
# 按名称查找,模糊查找
# *:匹配所有
# ?:匹配单个字符
[root@localhost ~]# find /etc -name "sudo???"
# -ls 以详细信息展示
[root@localhost ~]# find /etc -name "*.conf" -ls
# 按文件大小查找(找出大于 200MB 的文件)
# +:大于
# -:小于
# 不写:等于
[root@localhost ~]# find /etc -size -204800
# 按文件类型查找
# f:二进制文件
# l:软链接文件
# d:目录
# c:字符文件
[root@localhost data]# find -type d
# 查找 /root/ 目录下权限为600的文件
[root@localhost data]# find /root/ -perm 600

1.11.4 查找文件内容 grep

作用:在文件中搜寻字串匹配的行并输出,在命令的输出中搜索内容。
语法:grep [-cinv] "关键词" 文件名

# 查找文件内容并显示包含关键字的所在行
[root@localhost data]# grep "love" a.txt
# 显示匹配行的次数(以行为单位,而不是出现的次数)
[root@localhost data]# grep -c love" a.txt
# 忽略大小写
[root@localhost data]# grep -i "Love" a.txt
# 显示匹配行及行号
[root@localhost data]# grep -n "love" a.txt
# 反向选择,显示不包含匹配文本的所有行
[root@localhost data]# grep -v "love" a.txt

二. 压缩和解压文件、打(解)包目录和文件

2.1 压缩文件 gzip

作用:压缩(解压)文件,压缩文件后缀为 .gz。gzip 只能压缩文件,不能压缩目录;不保留原文件。
语法:gzip 文件名

# 压缩单个文件
[root@localhost data]# gzip a.txt
# 同时压缩多个文件
[root@localhost data]# gzip b.txt c.txt

2.2 解压文件 gunzip

语法:gzip -d 文件名gunzip 文件名

# 解压单个文件
[root@localhost data]# gzip -d a.txt.gz
# 同时解压多个文件
[root@localhost data]# gzip -d b.txt.gz c.txt.gz

2.3 打(解)包目录和文件 tar

作用:打(解)包文件或目录会保留源文件
语法:tar [-zcf] 压缩后文件名 文件或目录

  • -c:建立一个压缩文件的参数指令,后缀是 .tar
  • -x:解开一个压缩文件的参数指令
  • -z:以 gzip 命令压缩/解压缩,文件格式 .tar.gz(.tgz)
  • -j:以 bzip2 命令压缩/解压缩 ,文件格式 .tar.bz2
  • -v:压缩的过程中显示文件
  • -f:file 指定文件名,必选项
# 单独打包文件或目录
[root@localhost data]# tar -cvf a.tar a.txt
[root@localhost data]# tar -cvf test.tar test
# 同时打包多个文件
[root@localhost data]# tar -cvf abc.tar a.txt b.txt c.txt
# 追加文件到打包文件中
[root@localhost data]# tar -rvf a.tar d.txt
# 以 gzip 压缩打包文件
[root@localhost data]# gzip a.tar
# 一步到位,打包文件并以 gzip 进行压缩
[root@localhost data]# tar -zcvf abc.tar.gz a.txt b.txt c.txt
# 解压打包文件
[root@localhost data]# tar -xvf a.tar
# 一步到位,解压 .tar.gz 文件
[root@localhost data]# tar -zxvf abc.tar.gz
# 解压到指定目录下
[root@localhost data]# tar -zxvf abc.tar.gz -C test

三、VI编辑器(VIM)

在这里插入图片描述

3.1 插入命令

命令作用
a在光标后附加文本
A(shift + a)在本行行末附加文本 行尾
i在光标前插入文本
I(shift+i)在本行开始插入文本 行首
o在光标下插入新行
O(shift+o)在光标上插入新行

3.2 定位命令

命令作用
:set nu设置行号
:set nonu取消行号
gg到第一行
G(shift+g)到最后一行
nG到第n行
:n到第n行

3.3 保存和退出命令

命令作用
:w保存修改
:w new_filename另存为指定文件
:w >> a.txt内容追加到a.txt文件中 文件需存在
:wq保存修改并退出
:wq!保存修改并强制退出(文件所有者可忽略文件的只读属性)
shift+zz(ZZ)快捷键,保存修改并退出
:q!不保存修改退出
ctrl+z快捷键,将命令挂起在后台

注意:将 vi 命令挂起至后台后,在列表里会出现一个隐藏文件 .swp。输入 fg 进入 vi 编辑器重新修改,修改完成,.swp 文件会自动被删除。

3.4 删除命令

命令作用
x删除光标所在处字符 nx 删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
:n1,n2d删除指定范围的行(eg :1,3d 删除了123这三行)
dG删除光标所在行到末尾的内容
D删除从光标所在处到行尾

3.5 复制和剪切命令

命令作用
yy、Y复制当前行
nyy、nY复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在行下 或行上

3.6 替换和取消命令

命令作用
r取代光标所在处字符
R(shift + r)从光标所在处开始替换字符,按Esc结束
uundo,取消上一步操作
ctrl+rredo,返回到undo之前

3.7 搜索和替换命令

命令作用
/string向后搜索指定字符串 搜索时忽略大小写 :set ic
?string向前搜索指定字符串
n搜索字符串的下一个出现位置,与搜索顺序相同
N(Shift + n)搜索字符串的上一个出现位置,与搜索顺序相反
:%s/old/new/g全文替换指定字符串
:n1,n2s/old/new/g在一定范围内替换指定字符串
# % 指全文,s 指开始,g 指全局替换,c 询问确认
# 全局替换,把所有的 love 替换为 hate
:%s/love/hate/g
# 从第 3 到第 4 行,把 love 替换为 hate,询问是否替换
:3,4s/love/hate/c
# 同上,不询问
:3,4s/love/hate/g
# 把 /user 替换为 /usr
:%s/\/user/\/usr/g
# 把 /usr/bin 替换为 /usr/bash
:%s#/usr/bin#/usr/bash
# 在 1~2 行行首添加 # 号注释
:1,2s/^/#/g
# 在所有行的行首添加 # 号注释
:% s/^/#/g

四、权限管理

4.1 用户管理

4.1.1 添加用户

语法:useradd [-cdgGsu] 用户名

# 添加用户
[root@localhost ~]# useradd suetnay

4.1.2 修改用户

语法:

4.1.3 修改密码

语法:passwd 用户名

# 修改密码
[root@localhost ~]# passwd suetnay

4.1.4 删除用户

语法:userdel [-fr] 用户名

  • -f:强制删除用户,即使用户当前已登录
  • -r:删除用户的同时,删除与用户相关的所有文件
# 删除用户
[root@localhost ~]# userdel -r krystal

4.1.5 查询用户所属组

语法:groups 用户名

# 查询 suetnay 所属用户组(用户组默认与用户名一样)
[root@localhost ~]# groups suetnay

4.2 用户组管理

4.2.1 查询用户组下的用户

语法

4.2.2 新增用户组

语法:groupadd [-go] 用户组

# 新增用户组
[root@localhost ~]# groupadd developer

4.2.3 修改用户组

语法:groupmod [-gno] 用户组

  • -n:修改用户组的名字
# 将组 developer 修改为 it-group
[root@localhost ~]# groupmod -n it-group developer

4.2.4 删除用户组

语法:groupdel 用户组

# 删除用户组 it-group
[root@localhost ~]# groupdel it-group

4.2.5 管理用户组中的用户

# 查看用户组 it-group 中的所有用户
[root@localhost ~]# grep "it-group" /etc/group
# 将用户 developer1 添加到组 it-group
[root@localhost ~]# gpasswd -a developer1 it-group
# 从 it-group 组中删除用户 developer3
[root@localhost ~]# gpasswd -d developer3 it-group

五、文件或目录属性与权限管理

5.1 更改文件或目录所属用户组 chgrp

语法:chgrp [-R] 用户组 文件名或目录名

# 将 a.txt 的所属组修改为 it-group
[root@localhost data]# chgrp it-group a.txt
# 递归修改目录下所有目录文件的所属组
[root@localhost data]# chgrp -R it-group a

5.2 更改文件或目录所有者 chown

语法:chown [-R] 用户名[:用户组] 文件名或目录名

# 将 a.txt 的所属用户修改为 developer1
[root@localhost data]# chown developer1 a.txt
# 递归修改目录下所有目录文件的所属用户
[root@localhost data]# chown -R developer2 a
# 将 a.txt 的所属用户和所属组修改为 root
[root@localhost data]# chown root:root a.txt
# 递归修改目录下所有目录文件的所属用户和所属组
[root@localhost data]# chown -R developer2 a

5.3 更改文件或目录权限 chmod

语法:chmod [{ugoa}{+-=}{rwx}] [文件名或目录名]chmod [mode=421] [ 文件或目录]

  • u:该文件的所属用户
  • g:该文件的所属组
  • o:其他用户
  • a:全部用户
  • +:增加权限
  • -:取消权限
  • =:唯一设定权限
  • r:可读权限 4
  • w:可写权限 2
  • x:可执行权限 1
# 修改 a.txt 的权限为 [-rwxr-xr--]
# 数字权限
[root@localhost data]# chmod 754 a.txt
# 符号权限
[root@localhost data]# chmod u=rwx,g=rx,o=r a.txt
# 去掉 a.txt 文件所有人的可读权限
[root@localhost data]# chmod a-r a.txt
# 修改目录权限
[root@localhost data]# chmod 711 a
# 递归修改目录下所有目录文件的权限为 777
[root@localhost data]# chmod -R 777 a

六、系统管理

6.1 切换用户 su

# 切换用户
[root@localhost ~]# su suetnay
# 退出返回原使用者
[suetnay@localhost root]$ exit

6.2 关机与重启命令

# 立即关机
[root@localhost ~]# shutdown -h now
# 1分钟后关机
[root@localhost ~]# shutdown
# 指定1分钟后关机,1分钟关机并显示警告信息
[root@localhost ~]# shutdown -h 1 "1分钟后关机"
# 立即重启
[root@localhost ~]# reboot
# 指定1分钟后重启,并显示警告信息
[root@localhost ~]# shutdown -r 1 "1分钟后关机重启"
# 取消正在进行的关机或重启动作
[root@localhost ~]# shutdown -c

6.3 查看内存及交换空间使用状态 free

语法:free [-kmg]

  • -k:以 KB 为单位显示(默认)
  • -m:以 MB 为单位显示
  • -g:以GB为单位显示
  • -h:人性化显示
[root@localhost ~]# free -k
[root@localhost ~]# free -m
[root@localhost ~]# free -g
[root@localhost ~]# free -h
# 清除缓存命令
[root@localhost ~]# echo 1 > /proc/sys/vm/drop_caches

…持续增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值