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

学习到韩顺平的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很多都是基于命令的操作,而这些命令时间长了,就很容易遗忘。鉴于现在中文互联网的垃圾程度,在用到的时候无法快速找到有用的信息,就需要自己动手做一个记录了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容