美文网首页
Linux命令(1)- 基础指令篇

Linux命令(1)- 基础指令篇

作者: _小毛驴 | 来源:发表于2021-01-12 11:26 被阅读0次

学习到韩顺平的Linux教程,把遇到的Linux命令做一个记录,方便日后查看。
由于课程较长,做笔记的过程中,发现文章是越来越长,所以,就把这个教程的笔记分拆开来。
这篇笔记的主要内容包含了Linux的基础指令,用户管理,权限管理,文档操作,压缩/解压缩等一些基础指令。

关机

  shutdown - h now 
  poweroff

重启

  reboot

切换用户

前提条件:为了方便说明,我们以切换到zhangsan用户来举例。Linux的命令要格外注意每个指令之间的空格,有些指令之间需要空格,有些又不需要。这些需要仔细的观察,也需要经验的积累才能够发现而不致于报错,我曾经就是在网上找文章,拷贝原来的命令,报字符错误,自己手动输入,又不知道是否要加空格,导致被坑死。这里又不得不吐槽那些文章真的分享的太垃圾了。

su - zhangsan

创建用户

  useradd -d /home/test zhangsan

-d 参数是指定用户的家目录,还可以添加其他参数

给用户设置密码

  passwd zhangsan

注意:passwd指令后面必须跟用户名称,否则就是设置root用户的密码,带来的后果很麻烦的。其次,设置密码的过程中,可能会提示密码无效,不符合条件等等吓人的提示,可以一概无视,不会影响我们设置的密码生效,这对于我们做测试练习非常有效。当然,在实际生产环境,你可以把密码设置的越复杂越好。

删除用户

  # 删除用户,但是保留用户家目录,实际工作中比如离职员工,保留他的工作内容。
  userdel milan
  # 删除用户apple以及用户的家目录
  userdel -r apple

查询用户信息

  # 查询milan用户的信息
  id milan

查看当前登录用户

  who am i 

新增用户组

  # 新增用户组wudang
  groupadd wudang
  # 新增用户zwj,并添加到用户组wudang
  useradd -g wudang zwj 

删除用户组

  groupdel wudang

修改用户组

  # 新增用户组mojiao
  groupadd mojiao
  # 修改用户zwj到mojiao用户组下
  usermod -g mojiao zwj

说一下,Linux中与用户,用户组相关的文件
/etc/passwd : 用户的配置文件。
/etc/shadow :口令的配置文件。
/etc/group :用户组配置文件。

Linux运行级别

0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启

  # 进入图形界面
  init 5
  # 查看当前运行级别
  systemctl get-default

帮助指令

  # 查看ls命令的帮助文档
  man ls
  # 查看cd命令的帮助文档
  help cd

more指令 - 查看文档

空白键: 向下翻一页
回车键: 向下翻一行
q :退出
CTRL + F :向下滚动一屏
CTRL + B : 向上滚动一屏
= : 输出当前行的行号
:f : 输出文件名和当前行的行号

  more apple.txt

less指令 - 比more更好用,更强大的查看文档的指令

【pagedown】: 下一页。
【pageup】:上一页。
/+ 要搜索的内容 :搜索字符串;点击小n,查找下一个。点击大N,查找上一个。

echo指令 - 输出内容到控制台

  # 输出主机名
  echo $HOSTNAME
  # 输出 字符串
  echo "hello world ~"

head指令 - 查看文档头部内容

  head -n 5 apple.txt

tail指令 - 查看文档尾部内容

  tail -n 5 apple.txt

>指令和>>指令

> : 输出内容重定向并覆盖原有内容。
>> : 追加内容。

ln指令 - 软链接:相当于快捷方式

  # 给root目录创建软链接,注意:删除软链接和删除文件是一样的。
  ln -s /root/ /home/myroot

history指令 - 查看历史命令

  # 查看所有历史命令
  history
  # 查看最近10条历史指令
  history 10
  #执行编号658的指令
  !658

date指令 - 查看日期

  # 查看日期
  date
  # 设置日期
  date -s "2020-01-01 11:11:11"

cal指令 - 查看日历

  # 查看本月日历
  cal
  # 查看全年日历
  cal 2020

find指令 - 搜索查找指令

  # 根据文件名称查找/home目录下的hello.txt文件
  find /home -name hello.txt
  # 根据用户查找/opt目录下的文件,用户名称为nobody
  find /opt/ -user nobody
  # 查找整个linux系统下大于200M的文件(+n大于 -n小于 n等于 ; 单位有k,M,G)
  find / -size +200M

locate指令 - 快速定位文件路径

意外总是来得很意外。locate命令在我的虚拟机中没有找到,我是用yum安装,yum命令又报错。根据yum命令报错的信息,我判断是磁盘存储不足,就想办法扩容,一番折腾,失败告终。我尝试切换到以前的快照。yum安装成功。问题通过躲避的方式解决,至于为什么只有天知道了。

  # 前提条件,否则搜索不到
  updatedb
  # 查找hello.txt
  locate hello.txt

which 指令 - 查找指令存放的位置

  # 查找ls指令的存放位置
  which ls

grep指令 - 文件内容过滤查找指令

  # 查找文件hello.txt中yes字符串
  grep -n "yes" hello.txt
  # 另外一种方式,等价于上面的命令
  cat hello.txt | grep -n "yes"

压缩和解压

意外还是来临了,虚拟机中安装zip软件,又失败了,这次搜索之后,是因为虚拟机根目录100%,磁盘没有空间造成的,按照网络上的步骤,删掉了大文件之后,确实腾出来了一些空间。但是yum下载的时候展示乱码,应该是把语言信息文件给删除了。唉,解决一个问题,又带来新的问题。看来后面给虚拟机要设置大一点的磁盘空间了。还有一个问题就是,在安装CentOS的时候,选择最小安装,就会导致很多必须的应用软件没有安装。所以,以后不要选择最小安装了。

  # 压缩hello.txt文件
  gzip hello.txt
  # 解压hello.txt.gz
  gunzip hello.txt.gz
  # 递归压缩home目录,叫做myhome.zip压缩包
  zip -r myhome.zip /home/
  # 递归压缩
  unzip -d /opt/tmp/ /home/myhome.zip
  # 压缩多个文件
  tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
  # 压缩文件夹
  tar -zcvf myhome.tar.gz /home/
  # 解压到当前目录
  tar -zxvf pc.tar.gz
  # 解压到指定目录
  tar -zxvf /home/myhome.tar.gz -C /opt/tmp2/

组管理和权限管理

  # 修改文件所有者
  chown tom apple.txt
  # 创建组monster
  groupadd monster
  # 创建用户fox,并放到monster组中
  useradd -g monster fox
  # 修改orange.txt文件所在的组到fruit组
  chgrp fruit orange.txt
  # 修改用户zwj到fruit组
   usermod -g fruit zwj
  • rwx作用到文件
    W权限代表写(write):可以修改,但是不代表可以删除该文件。删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
  • rwx作用到目录
    X代表可执行(execute),可以进入该目录。

ll指令

ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。内容详情如下:

  [root@localhost ~]# ll
总用量 4
drwxr-xr-x. 4 root root   24 1月  13 23:39 a
-rw-r--r--. 1 root root 2173 1月  13 20:18 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 1月  13 20:19 公共
drwxr-xr-x. 2 root root    6 1月  13 20:19 模板
drwxr-xr-x. 2 root root    6 1月  13 20:19 视频
drwxr-xr-x. 2 root root    6 1月  13 20:19 图片
drwxr-xr-x. 2 root root    6 1月  13 20:19 文档
drwxr-xr-x. 2 root root    6 1月  13 20:19 下载
drwxr-xr-x. 2 root root    6 1月  13 20:19 音乐
drwxr-xr-x. 2 root root    6 1月  13 20:19 桌面

其中,第二个栏位的含义,我存在疑惑。韩老师讲解的是文件数和子目录的总和。这种说法,我在动手实验的过程中,发现是错误的。在网上找了一大圈,也都是吵来吵去,说是表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。,都是这样说,也全是错误的。最后才找到如下解释:

  1. 如果是一个文件:则这一字段表示这个文件所具有的硬链接数,即这个文件总共有多少个文件名。
  2. 如果是一个目录:则这一字段表示该目录所含子目录的个数。
    新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录。
    为什么新建的目录下面会有两个子目录呢?
    因为每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目录"..",这两个默认子目录是隐藏的,用ls -a可以看到。
    每次在目录下新建一个子目录,该目录第2字段的值就增1,但是新建一个普通文件该字段值不增加。

chmod指令 - 修改权限

通过chmod指令,可以修改文件或者目录权限。

  • 第一种方式:+、-、= 变更权限
    u:所有者; g:所有组; o:其他人; a:所有人(u、g、o的总和)。
  # 给abc文件的所有者读写执行的权限,给所在组读执行的权限,给其他组读执行权限
  chmod u=rwx,g=rx,o=rx abc
  # 给abc文件的所有者除去执行的权限,增加组的写权限
  chmod u-x,g+w abc
  # 给abc文件的所有用户添加读的权限
  chmod a+r abc
  • 第二种方式:通过数字变更权限
    r=4;w=2;x=1 rwx=4+2+1=7
  # 把abc文件的权限修改成 rwxr-xr-x
  chmod 755 abc 

chown指令-修改文件所有者

  • 改变所有者(红字替换为实际的数据即可)
    chown newowner 文件/目录
  • 改变所有者和所在组
    chown newowner:newgroup 文件/目录
    注:-R : 如果是目录,使用该参数,使其目录下所有目录和文件递归生效。
  # 把abc文件的所有者改为tom 
  chown tom abc
  # 把test目录下所有文件和目录的所有者修改为tom
  chown -R tom test

chgrp指令-修改文件/目录所在组

chgrp newgroup 文件/目录

  # 把abc文件所在组改为shaolin
  chgrp shaolin abc
  # 把test目录下所有的文件和目录所在组改成shaolin
  chgrp -R shaolin test 

Linux关于权限,主要有两个核心。也就是分别以两个核心概念来安排指令操作的。一个是用户,一个是文件/目录。不管是用户,还是文件/目录,都又被分配到组管理中。组的操作有:groupadd、groupdel。

  • 关于用户的操作,包括增删改查,分别是useradd、userdel、usermod、id 用户名
  • 关于文件/目录的操作,也是增删改查,分别是touch/mkdir、rm、chmod(修改权限)、chown(修改所有者)、chgrp(修改所在组)、ll(陈列文件/目录详情)。

关于目录的rwx权限的细节讨论:
x:表示可以进入到该目录,比如cd;
r:表示可以ls,将目录的内容显示出来;
w:表示可以在该目录,删除或者创建文件。

总结

Linux的使用,就是大量的使用命令。或者说,这些命令背后是一个个软件做支撑的。一个或者一组命令都是对于某一个软件的使用。有一些是内置软件,所以,就可以使用一些内置的命令了。
本来听课的时候,只是听个热闹,以及就是理解其中的思想。但是,会发现Linux很多都是基于命令的操作,而这些命令时间长了,就很容易遗忘。鉴于现在中文互联网的垃圾程度,在用到的时候无法快速找到有用的信息,就需要自己动手做一个记录了。

相关文章

  • Linux命令(1)- 基础指令篇

    学习到韩顺平的Linux教程,把遇到的Linux命令做一个记录,方便日后查看。由于课程较长,做笔记的过程中,发现文...

  • Linux命令集

    学习Linux操作系统必备的指令,基于Linux指令管理Linux操作系统,必备Linux指令有哪些? 基础命令相...

  • Linux —— Day1(Linux系统文件和基础指令)

    一、Linux系统的目录结构 二、Linux基本指令 1、指令与选项 2、基础指令 (1)ls指令 (2)pwd ...

  • Linux——Day3高级指令

    Linux命令大全(手册)_Linux常用命令行实例详解_Linux命令学习手册 1、hostname指令 2、i...

  • Linux常用命令

    1.Linux命令1.基础命令Linux基础命令使用格式为:命令名 [选项]... [参数]...其中,不同的[选...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • 常用的Linux指令

    引言 记录工作中常用到的Linux指令,不断更新。 1、man man命令是Linux下的帮助指令,通过man指令...

  • 基本命令

    Linux 基本命令(linux命令是用户告诉计算机去执行什么操作的指令) 命令的格式 命令的分类 基本命令 1....

  • 大数据技术学习路线

    一、大数据技术基础1、linux操作基础 linux系统简介与安装linux常用命令–文件操作linux常用命令–...

  • 【CentOS基础篇】之基础命令

    命令是针对linux发布操作指令的直接方式。基础的扎实稳固,从对命令的了解和熟练使用开始,基础不牢,地动山腰,运维...

网友评论

      本文标题:Linux命令(1)- 基础指令篇

      本文链接:https://www.haomeiwen.com/subject/nfueaktx.html