Linux实操篇——实用指令

Linux实用指令

运行级别

基本级别

常用运行级别是3和5,也可以指定默认的运行级别,使用init[运行级别] 来切换运行级别

  • 0:关机
  • 1:单用户(找回丢失密码)
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务
  • 系统未使用保留给用户
  • 图形界面
  • 系统重启

运行级别相关指令

multi-user.target相当于运行级别3

graphical.target相当于运行级别5

# 查看当前运行级别 : systemctl get-default  
[yellowstar@yellowstarEdu01 ~]$ systemctl get-default
graphical.target
# 设置默认运行级别为3 : systemctl set-default 
[root@yellowstarEdu01 ~]$ systemctl set-default multi-user.target

重置root用户密码

面试中经常会问到root账户密码忘记了怎么办?此时我们就需要使用切换到运行级别1来修改

不同的Linux系统修改的方式不一样,小黄使用的是centos7.6,找了一个博主的帖子,大家可以参考如何重置root密码

centos7 忘记root密码,如何进行重置root密码?

帮助指令

  • man : 获得帮助信息

    # 查看ls指令的使用方法
    man ls
    
  • help : 获取shell内置命令的帮助信息

    # 查看cd指令的使用方法
    help cd
    

文件目录指令

pw

查看当前工作目录的绝对路径

[root@yellowstarEdu01 home]# ls
yellowstar
[root@yellowstarEdu01 home]# pwd
/home
[root@yellowstarEdu01 home]# cd yellowstar/
[root@yellowstarEdu01 yellowstar]# pwd
/home/yellowstar

cd

cd 目录  # 进入该目录
cd ~ # 进入当前用户的家目录
cd .. # 进入当前目录的上级目录,如果是根目录,则还是根目录

mkdir

创建目录,创建多级目录需使用-p

[root@yellowstarEdu01 home]# mkdir tom
[root@yellowstarEdu01 home]# ls
tom  yellowstar
[root@yellowstarEdu01 home]# mkdir -p jack/name
[root@yellowstarEdu01 home]# ls
jack  tom  yellowstar
[root@yellowstarEdu01 home]# cd jack
[root@yellowstarEdu01 jack]# ls
name

rmdir

删除目录

[root@yellowstarEdu01 home]# rmdir tom
[root@yellowstarEdu01 home]# ls
jack  yellowstar
# 删除多级目录需要使用 rm -rf
[root@yellowstarEdu01 home]# rm -rf jack
[root@yellowstarEdu01 home]# ls
yellowstar

touch

创建空文件

[root@yellowstarEdu01 home]# mkdir tom
[root@yellowstarEdu01 home]# cd tom
[root@yellowstarEdu01 tom]# touch whoami.txt
[root@yellowstarEdu01 tom]# ls
whoami.txt

cp

拷贝文件

# 拷贝单个文件
[root@yellowstarEdu01 tom]# cp whoami.txt /home/yellowstar
[root@yellowstarEdu01 tom]# cd ..
[root@yellowstarEdu01 home]# cd yellowstar
[root@yellowstarEdu01 yellowstar]# ls
whoami.txt  公共  模板  视频  图片  文档  下载  音乐  桌面
# 递归拷贝整个文件夹
[root@yellowstarEdu01 home]# cp -r tom yellowstar
[root@yellowstarEdu01 home]# cd yellowstar/
[root@yellowstarEdu01 yellowstar]# ls
tom  whoami.txt  公共  模板  视频  图片  文档  下载  音乐  桌面
# 拷贝文件并强制覆盖
# 使用普通的cp命令会逐个问你是否需要覆盖,使用\cp代表全部覆盖
[root@yellowstarEdu01 tom]# cp whoami.txt /home/yellowstar
cp:是否覆盖"/home/yellowstar/whoami.txt"? y
[root@yellowstarEdu01 tom]# \cp whoami.txt /home/yellowstar

rm

删除文件或目录

[root@yellowstarEdu01 home]# cd yellowstar/
[root@yellowstarEdu01 yellowstar]# ls
tom  whoami.txt  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@yellowstarEdu01 yellowstar]# rm whoami.txt 
rm:是否删除普通空文件 "whoami.txt"?ls^H^H^H
[root@yellowstarEdu01 yellowstar]# ls
tom  whoami.txt  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@yellowstarEdu01 yellowstar]# rm whoami.txt 
rm:是否删除普通空文件 "whoami.txt"?y
[root@yellowstarEdu01 yellowstar]# rm tom
rm: 无法删除"tom": 是一个目录
# -r 递归删除整个文件夹, -f 不带提示
[root@yellowstarEdu01 yellowstar]# rm -rf tom
[root@yellowstarEdu01 yellowstar]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面

mv

移动整个文件或目录,如果在同一目录下相当于重命名

# 在同一目录下代表重命名
[root@yellowstarEdu01 home]# cd tom
[root@yellowstarEdu01 tom]# ls
whoami.txt
[root@yellowstarEdu01 tom]# mv whoami.txt iamtom.txt
[root@yellowstarEdu01 tom]# ls
iamtom.txt
# 移动到另外一个目录
[root@yellowstarEdu01 tom]# mv iamtom.txt /home/yellowstar
[root@yellowstarEdu01 tom]# ls
[root@yellowstarEdu01 tom]# cd /home/yellowstar/
[root@yellowstarEdu01 yellowstar]# ls
iamtom.txt  公共  模板  视频  图片  文档  下载  音乐  桌面

cat

查看文件内容

# 相较于vim来说,cat更加安全,因为无法编辑文件内容
[root@yellowstarEdu01 tom]# cat mydate.txt 
hello,tom
# -n 显示行号
[root@yellowstarEdu01 tom]# cat -n mydate.txt 
     1	hello,tom

more

用于交互,不全部显示在页面上,可以通过回车键显示显示下一行,通过空格键显示下一页

less

作用和more相似,适合查看大文件,他是动态加载的,只有当你需要看下一页的时候,才加载下一页的数据

echo

输出内容到控制台,可以输出环境变量、字符串等

[root@yellowstarEdu01 home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@yellowstarEdu01 home]# echo $HOSTNAME
yellowstarEdu01
[root@yellowstarEdu01 home]# echo "hellolinux"
hellolinux

head

用户查看文件头几行的内容,-n指定行数,默认显示前10行

tail

查看文件尾几行的内容,默认10行,-n指定行数,-f实时更新

>和>>

>:重定向,相当于覆盖文件内容

>>:追加

# 重定向
[root@yellowstarEdu01 tom]# cat mydate.txt 
hello
tom
[root@yellowstarEdu01 tom]# echo "my name is tom" > mydate.txt 
[root@yellowstarEdu01 tom]# cat mydate.txt 
my name is tom
# 追加
[root@yellowstarEdu01 tom]# echo "hello tom" >> mydate.txt 
[root@yellowstarEdu01 tom]# cat mydate.txt 
my name is tom
hello tom

ln

给指定文件夹创建一个软连接

# ln -s 原文件目录 软链接名		如果软连接名不存在则创建
[root@yellowstarEdu01 tom]# ln -s /root /home/tom/myroot
[root@yellowstarEdu01 tom]# ls
mydate.txt  myroot
[root@yellowstarEdu01 tom]# cd myroot/
[root@yellowstarEdu01 myroot]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面

history

查看已执行的历史指令

# 查看所有
[root@yellowstarEdu01 home]# history
# 查看最近10条
[root@yellowstarEdu01 home]# history 10
  102  ln /home/tom/myroot /root
  103  ln /root/ /home/tom/myroot
  104  ln -s /root /home/tom/myroot
  105  ls
  106  cd myroot/
  107  ls
  108  pwd
  109  cd ..
  110  history
  111  history 10
# 再次执行曾经执行过的某行指令,如我们再次执行以下108行 pwd
[root@yellowstarEdu01 home]# !108
pwd
/home

时间日期指令

date

# 获取时间
[root@yellowstarEdu01 /]# date
20211222日 星期三 18:58:51 CST
# 以自定义格式获取时间,这里的日期格式与Java中的不太一样,千万不要搞混了
[root@yellowstarEdu01 /]# date "+%Y-%m-%d %H:%M:%S"
2021-12-22 19:01:28
# 设置时间
date -s "2021-12-22 19:02:05"

cal

# 获取当月日历
[root@yellowstarEdu01 /]# cal
     十二月 2021    
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
# 获取某年年历
[root@yellowstarEdu01 /]# cal 2021
                               2021                               

        一月                   二月                   三月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
                1  2       1  2  3  4  5  6       1  2  3  4  5  6
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    7  8  9 10 11 12 13
10 11 12 13 14 15 16   14 15 16 17 18 19 20   14 15 16 17 18 19 20
17 18 19 20 21 22 23   21 22 23 24 25 26 27   21 22 23 24 25 26 27
24 25 26 27 28 29 30   28                     28 29 30 31
31
        四月                   五月                   六月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
             1  2  3                      1          1  2  3  4  5
 4  5  6  7  8  9 10    2  3  4  5  6  7  8    6  7  8  9 10 11 12
11 12 13 14 15 16 17    9 10 11 12 13 14 15   13 14 15 16 17 18 19
18 19 20 21 22 23 24   16 17 18 19 20 21 22   20 21 22 23 24 25 26
25 26 27 28 29 30      23 24 25 26 27 28 29   27 28 29 30
                       30 31
        七月                   八月                   九月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
             1  2  3    1  2  3  4  5  6  7             1  2  3  4
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    5  6  7  8  9 10 11
11 12 13 14 15 16 17   15 16 17 18 19 20 21   12 13 14 15 16 17 18
18 19 20 21 22 23 24   22 23 24 25 26 27 28   19 20 21 22 23 24 25
25 26 27 28 29 30 31   29 30 31               26 27 28 29 30

        十月                  十一月                 十二月       
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
                1  2       1  2  3  4  5  6             1  2  3  4
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11
10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18
17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25
24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31
31

查找搜索类

find

# 在home目录下搜索名称为mydate.txt的文件
[root@yellowstarEdu01 tom]# find /home/ -name mydate.txt
/home/tom/mydate.txt
# 在当前目录下搜索指定用户名的文件
[root@yellowstarEdu01 tom]# find -user root
.
./myroot
./mydate.txt
# 在系统中搜索文件大小大于200M的文件  + 代表大于 - 代表小于 无符号代表等于
[root@yellowstarEdu01 tom]# find / -size +200M
/run/media/root/CentOS 7 x86_64/LiveOS/squashfs.img

locate

效果与find相同,但是查询的速度比find快,因为他是从数据库中查找,查找前,必须使用updatedb来构建数据库

which

查找指令所属目录

[root@yellowstarEdu01 tom]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

grep

在文件中查找符合要求的内容,-n显示行号,-i忽略大小写

# 第一种写法:结合cat和管道符
[root@yellowstarEdu01 tom]# cat mydate.txt 
my name is tom
hello tom
yes
tom
ok
myname
ilove
tom
[root@yellowstarEdu01 tom]# cat mydate.txt | grep -n "tom"
1:my name is tom
2:hello tom
4:tom
8:tom
# 第二种写法:直接使用grep
[root@yellowstarEdu01 tom]# grep -n "tom" mydate.txt 
1:my name is tom
2:hello tom
4:tom
8:tom

压缩与解压缩

gzip和gunzip

这两种指令只适用于文件,不适用于文件夹

gzip:压缩文件,压缩格式为.gz

gunzip:解压缩

# 压缩
[root@yellowstarEdu01 tom]# ls
mydate.txt
[root@yellowstarEdu01 tom]# gzip mydate.txt 
[root@yellowstarEdu01 tom]# ls
mydate.txt.gz
# 解压
[root@yellowstarEdu01 tom]# gunzip mydate.txt.gz 
[root@yellowstarEdu01 tom]# ls
mydate.txt
# 尝试压缩文件夹
[root@yellowstarEdu01 home]# gzip tom
gzip: tom is a directory -- ignored

zip和unzip

既适用于文件,也适用于文件夹,压缩后格式为zip

# zip -r(递归压缩) 压缩后文件名 压缩目录
[root@yellowstarEdu01 home]# zip -r mytom.zip /home/tom/
  adding: home/tom/ (stored 0%)
  adding: home/tom/mydate.txt (deflated 17%)
[root@yellowstarEdu01 home]# ls
mytom.zip  tom  yellowstar
[root@yellowstarEdu01 home]# mkdir /opt/test1/
# unzip -d(目录) 解压缩的位置 压缩的文件
[root@yellowstarEdu01 home]# unzip -d /opt/test1/ mytom.zip 
Archive:  mytom.zip
   creating: /opt/test1/home/tom/
  inflating: /opt/test1/home/tom/mydate.txt  
[root@yellowstarEdu01 home]# cd /opt/test1/
[root@yellowstarEdu01 test1]# ls
home
[root@yellowstarEdu01 test1]# cd home
[root@yellowstarEdu01 home]# ls
tom

tar

既可以压缩,也可以解压缩,是打包指令,最后打包的文件是.tar.gz的文件

选项

  • -c:产生.tar打包文件
  • -v:显示详细信息
  • -f:指定压缩后的文件名
  • -z:打包同时压缩
  • -x:解包.tar文件
# 压缩
[root@yellowstarEdu01 tom]# ls
dog.txt  mydate.txt  pig.txt
[root@yellowstarEdu01 tom]# tar cvfz animal.tar.gz /home/tom/dog.txt /home/tom/pig.txt 
tar: 从成员名中删除开头的“/”
/home/tom/dog.txt
/home/tom/pig.txt
[root@yellowstarEdu01 tom]# ls
animal.tar.gz  dog.txt  mydate.txt  pig.txt  z
# 解压缩
[root@yellowstarEdu01 tom]# ls
animal.tar.gz  home
[root@yellowstarEdu01 tom]# tar -zxvf animal.tar.gz 
home/tom/dog.txt
home/tom/pig.txt
[root@yellowstarEdu01 tom]# ls
animal.tar.gz  home
[root@yellowstarEdu01 tom]# cd home/
[root@yellowstarEdu01 home]# ls
tom
[root@yellowstarEdu01 home]# cd tom
[root@yellowstarEdu01 tom]# ls
dog.txt  pig.txt

组管理和权限管理

查看文件的所有者

# ls -ahl 或 ll
[root@yellowstarEdu01 home]# ll
总用量 12
			   #所有者		所在组
drwx------.  3 jack       jack       4096 1223 15:44 jack
-rw-r--r--.  1 root       root          0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar

修改文件所有者

# chown 用户名 文件名
[root@yellowstarEdu01 home]# chown jack my.txt 
[root@yellowstarEdu01 home]# ll
总用量 12
drwx------.  3 jack       jack       4096 1223 15:44 jack
-rw-r--r--.  1 jack       root          0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar
# 也可以通过 chown 用户名:组名 文件名  同时修改所有者和所在组(前提是两者都得存在)
[root@yellowstarEdu01 home]# chown marry:wudang my.txt
[root@yellowstarEdu01 home]# ll
总用量 16
drwx------.  3 jack       jack       4096 1223 15:44 jack
drwx------.  3 marry      marry      4096 1223 15:48 marry
-rw-r--r--.  1 marry      wudang        0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar

创建组

groupadd 组名

修改文件所在组名

# chgrp 组名 文件名
[root@yellowstarEdu01 home]# chgrp mojiao my.txt 
[root@yellowstarEdu01 home]# ll
总用量 16
drwx------.  3 jack       jack       4096 1223 15:44 jack
drwx------.  3 marry      marry      4096 1223 15:48 marry
-rw-r--r--.  1 marry      mojiao        0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar

修改用户所在组

# usermod -g 组名 用户名
[root@yellowstarEdu01 home]# id jack
uid=1001(jack) gid=1001(jack)=1001(jack)
[root@yellowstarEdu01 home]# usermod -g wudang jack
[root@yellowstarEdu01 home]# id jack
uid=1001(jack) gid=1002(wudang)=1002(wudang)
# 补充:用户登录时,进入的默认目录是该用户的家目录,可以对其进行修改
# usermod -d 目录名 用户名

修改文件或目录的权限

我们先来看一下查看文件或目录显示的一长串代表什么意思

#drwx------:一共10个字符数字代表文件类型,d代表目录,-代表普通文件,l代表链接,c代表鼠标键盘等文件信息,b代表块文件	
#之后9个九个字符,三个为一组,r代表可读,w代表可写,x代表可执行;第一组是所有者权限,第二组是所在组权限,第三组是其他人权限
			 #代表文件下有多少个子目录和文件
               						 #文件大小,文件夹显示4096
               #所有者		所在组      	  最后修改时间	文件名
drwx------.  3 jack       jack       4096 1223 15:44 jack
-rw-r--r--.  1 root       root          0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar

看一下我们修改my.txt的权限

[root@yellowstarEdu01 home]# chmod u=rwx,g=rx,o=rx my.txt 
[root@yellowstarEdu01 home]# ll
总用量 16
drwx------.  3 jack       wudang     4096 1223 15:44 jack
drwx------.  3 marry      marry      4096 1223 15:48 marry
-rwxr-xr-x.  1 marry      mojiao        0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar
# =表示给予权限,+代表添加权限,-代表删除权限
# 比如我们将my.txt的所在组的执行权限删除,为其他人权限添加可写
[root@yellowstarEdu01 home]# chmod g-x,o+w my.txt 
[root@yellowstarEdu01 home]# ll
总用量 16
drwx------.  3 jack       wudang     4096 1223 15:44 jack
drwx------.  3 marry      marry      4096 1223 15:48 marry
-rwxr--rwx.  1 marry      mojiao        0 1223 15:45 my.txt
drwxr-xr-x.  3 root       root       4096 1222 19:31 tom
drwx------. 16 yellowstar yellowstar 4096 1222 16:44 yellowstar

rwx作用于文件夹时

  • x:表示可以进入到该目录,比如cd
  • r:表示可以对该目录进行ls,显示目录下的内容
  • w:表示可以再该目录下删除或创建文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值