1、关机&重启命令

基本介绍

  • shutdown -h now 立刻关机
  • shutdown -h 1 1分钟后关机(shutdown命令默认代表shutdown -h 1)
  • shutdown -r now 现在重新启动计算机
  • halt 关机(与shutdown -h now作用一样)
  • reboot 现在重新启动计算机
  • sync 把内存的数据同步到磁盘

注意细节

  1. 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中。
  2. 目前的shutdown/reboot/halt等命令均已在关机前进行了sync,建议生产环境中关机或者重启前手动执行一次sync。

    2、用户登录和注销

    基本介绍

  3. 登录时尽量少用root账号登录,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后在用 su - 用户名 命令来切换成系统管理员身份。

  4. 在提示符下输入 logout 即可注销用户。

使用细节

  1. logout注销指令在图形运行级别无效,在运行级别3下有效。

    Linux默认有7个运行级(runlevel)

  • 运行级0:关机
  • 运行级1:单用户模式,系统出现问题时刻使用这种模式进入系统维护,一般用于忘记root密码时,进入此模式修改root密码
  • 运行级2:多用户模式,但是没有网络连接
  • 运行级3:完全多用户模式,linux服务器最常见的运行级
  • 运行级4:保留未使用
  • 运行级5:窗口模式,支持多用户,支持网络
  • 运行级6:重启

系统在启动的过程中会根据 /etc/inittab中的设定读取runlevel的数值X,并相应读取和运行/etc/rcX.d(X代表0-6)。
查看当前运行级别命令 :runlevel

3、用户管理

基本介绍
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
1.添加用户
命令:useradd 用户名
案例:添加一个用户tom,默认该用户的家目录在/home/tom
细节说明:

  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过useradd -d 指定目录 新的用户名,给创建的用户指定家目录

2.指定/修改密码
命令:passwd 用户名
passwd后面如果不跟用户名,修改的是当前登录的用户名密码。
显示当前用户所在目录命令:pwd
3.删除用户
命令:userdel 用户名
案例:

  1. 删除用户,但是要保留家目录 :userdel 用户名
  2. 删除用户及用户家目录:userdel -r 用户名(慎重使用)

一般情况下建议保留家目录。
4.查询用户信息命令
命令:id 用户名
当用户不存在时,返回无此用户。
5.切换用户
在操作Linux时,如果当前用户的权限不够,可以通过su - 指令,切换到高权限用户。
命令:su - 用户名 例:su - root ,输入root密码后就切换到root用户了。
细节说明

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来的用户时,使用 exit 或 logout 命令

6.查看当前用户/登录用户信息
命令:whoami/who am I
7.用户组
用户组类似于角色,系统可以对有共性(权限)的多个用户进行统一的管理。

  • 新增组:groupadd 组名
  • 删除组:groupdel 组名
  • 增加用户时直接加上组:useradd -g 用户组 用户名

创建用户的时候没有指定加入用户组的话,会默认创建一个用户名的组,比如创建tom用户,不指定用户组的时候,会同时会创建tom用户组并把tom用户添加到tom组中。

  • 修改用户的组:usermod -g 用户组 用户名

用户和组相关文件

  • /etc/passwd文件

用户(user)的配置文件,记录用户的各种信息;
每行的含义:用户名:口令:用户标识号:注释性描述:主目录:登录Shell。

  • /etc/shadow文件

口令的配置文件;
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志。

  • /etc/group文件

组(group)的配置文件,记录Linux包含的组的信息;
每行含义:组名:口令:组标识号:组内用户列表。

4、指定运行级别

运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用的运行级别是3和5,也可以指定默认运行级别。
命令:init[0123456] 例如:通过init命令将运行级别切换到3, init[3]
查看运行级别命令:systemctl get-default
在CentOS7以后的版本,/etc/inittab文件中对运行级别进行了简化,如下:
multi-user.target:analogous to runlevel 3(multi-user.target相当于运行级别3)
graphical.target:analogous to runlevel 5(graphical.target相当于运行级别5)
修改运行级别命令:systemctl set-default TARGET.target(TARGET为你想设置的级别)

5、找回root密码(CentOS7.6)

  1. 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面,如图:

image.png

  1. 进入编辑界面后,使用键盘的上下键把光标往下移动,找到以“Linux16”开头内容所在的行数,在行的最后面输入init=/bin/sh。如图:

image.png
image.png

  1. 输入完成后,接着按快捷键:Ctrl + x 进入单用户模式;
  2. 在光标闪烁的位置输入:mount -o remount,rw / (注意各单词之间有空格),完成后按键盘上的回车键(Enter),如图:

image.png

  1. 在新的一行后面输入:passwd,完成后按键盘的回车键(Enter);输入密码,然后再次确认密码即可,密码修改成功后,会显示passwd……的样式,说明密码修改成功;

image.png

  1. 在鼠标闪烁的位置(最后一行)中输入:touch /.autorelabel (注意touch和后面的/中间有个空格),完成后按键盘上的回车键(Enter);

image.png

  1. 继续在光标闪烁的位置上输入:exec /sbin/init(注意exec与后面的/中间有个空格),完成后按键盘上的回车键(Enter),等待系统自动修改密码(这个过程时间有点长,耐心等待),完成后系统会自动重启,新的密码就生效了。

    6、帮助命令

  • man获得帮助信息:man[命令或配置文件](功能描述:获得外部命令帮助信息)

例如:查看ls命令的帮助信息 man ls
在Linux下,隐藏文件是以 . 开头的,ls -a列出当前目录所有文件包含隐藏文件
image.png
ls -l将当前目录下文件以单列的形式显示出来
image.png
命令可以组合使用,比如ls -a与ls -l可以组合成ls -al 或者ls -la,将目录下的所有文件包含隐藏文件以单列的形式展示,也可指定目录,例如:ls -al /root,就是以单列形式显示root目录下的所有文件。

  • help命令:help 命令(功能描述:获得shell内置命令的帮助信息)

    7、文件目录类命令

  • pwd 命令:pwd (功能描述:显示当前工作目录的绝对路径)

绝对路径:从根目录到目标文件的整个路径
相对路径:从当前位置到目标文件的路径

  • ls 命令:ls [选项] [目录或文件]

-a :显示当前目录所有文件和目录,包括隐藏的;
-l :以列表的方式显示信息;

  • cd命令:cd [参数] (功能描述:切换到指定目录)

cd ~或者cd :回到自己的家目录;cd .. 回到当前目录的上一级目录
例如:

  1. 使用绝对路径切换到/root目录,cd /root
  2. 使用相对路径到/root目录,比如当前位置/home/tom,cd ../../root
  3. 回到当前目录的上一级目录,cd ..
  4. 回到家目录,cd ~
    • mkdir命令——用于创建目录:mkdir [选项] 要创建的目录

-p :创建多级目录
例入:

  1. 创建一个目录/home/tom :mkdir /home/tom
  2. 创建多级目录/home/people/jack(同时创建people和jack) :mkdir -p /home/people/jack
    • rmdir命令——删除空目录:rmdir [选项] 要删除的空目录

rmdir删除的是空目录,如果目录下有内容时无法删除。如果要删除非空目录,需要使用rm -rf 要删除的目录。(谨慎使用)

  • touch命令——创建空文件:touch 文件名称
  • cp命令——拷贝文件到指定目录:cp [选项] source dest (source:源文件,dest:指定目录)

-r :递归复制整个文件夹
强制覆盖不提示:\cp (慎用,会覆盖源文件)
例如:

  1. 将/home/hello.txt拷贝到/home/aaa目录下:cp hello.txt /home/aaa
  2. 递归复制整个文件夹,将/home/aaa整个目录,拷贝到/opt目录下:cp -r /home/aaa /opt
  3. /opt目录下已经有aaa这个目录了,拷贝的时候会提示是否覆盖,通过\cp -r /home/aaa /opt可以强制覆盖且不提示。
    • rm指令——删除文件或目录:rm [选项] 要删除的文件或目录

-r:递归删除整个文件夹
-f:强制删除不提示
rm -rf /home/aaa 删除整个aaa文件夹且不提示(慎用)

  • mv命令——移动文件与目录或重命名

mv oldNameFile newNameFile (功能描述:重命名,同目录下是重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件,不同目录下是移动,类似windows下的剪切)
例如:

  1. 将/home/hello.txt文件重命名为word.txt :切到/home目录下,mv hello.txt word.txt
  2. 将/home/word.txt文件移动到/root目录下:mv /home/word.txt /root
  3. 将/home/word.txt文件移动到/root目录下并重命名为hello.txt:mv /home/word.txt /root/hello.txt
  4. 移动整个目录,比如将/opt/aaa目录移动到/home下:mv /opt/aaa /home
    • cat命令——查看文件内容(只能查看不能修改):cat [选项] 要查看的文件

-n:显示行号
cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more (管道命令就是把前面的结果再交给下一个命令处理)

  • more命令——是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more命令中内置了若干快捷键,如下图:

more 要查看的文件
例如:more /etc/profile ,也可以搭配cat命令组合使用:cat /etc/profile | more
image.png

  • less命令——用来分屏查看文件内容,它的功能与more命令类似,但是比more命令更强大,支持各种显示终端。less命令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 要查看的文件
image.png

  • echo命令——输出内容到控制台:echo [选项] [输出内容]
  • head命令——用于显示文件的开头部分内容,默认情况下head命令显示文件的前10行内容。

head 文件(功能描述:查看文件前10行内容)
head -n 5 文件 (功能描述:查看文件前5行内容,5可以是任意数字)

  • tail命令——用于显示文件中尾部的内容,默认情况下tail命令显示文件的最后10行内容。

tail 文件 (功能描述:查看文件尾10行内容)
tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意数字)
tail -f 文件 (功能描述:实时追踪该文档的所有更新,退出按Ctrl + c)

  • > 命令和>>命令

输出重定向和>>追加,>会覆盖原先的内容,>>在文件最后追加内容。

  1. ls -l >文件 (功能描述:列表的内容写入文件中,覆盖写)
  2. ls -al >>文件 (功能描述:列表的内容追加到文件的末尾)
  3. cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2中)
  4. echo “内容” >> 文件

例如:ls -l /home > /home/info.txt (如果没有info.txt,则会创建)

  • ln命令——软链接也称为符号链接,类似于Windows中的快捷方式,主要存放了链接其他文件的路径。

ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

  • history命令——查看已经执行过的历史命令,也可以执行历史命令

history (功能描述:查看已执行过的历史命令,所有的命令)
history 10 (功能描述:查看近的10条历史命令)
!5 (功能描述:执行历史编号为5的命令)

  • date命令——显示当前日期

date (显示当前日期)
date +%Y (显示当前年份)
date +%m(显示当前月份)
date +%d (显示当前是哪一天)
date “+%Y-%m-%d %H:%M:%S” (显示年月日时分秒)

  • date命令——设置日期:date -s 字符串时间
  • cal命令——查看日历:cal [选项] (不加选项,则显示本月日历)
  • find命令——将从指定目录向下递归的遍历其各子目录,将满足条件的文件或者目录显示在终端。

find [搜索范围] [选项]
image.png
find /home -name 文件名
find /home -user 用户名
find /home -size 文件大小n(+n大于、-n小于、n等于,单位有K、M、G)

  • locate命令——可以快速定位文件路径。locate命令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给给定的文件。locate命令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻。

locate 搜索文件
由于locate命令基于数据库进行查询,所以第一次运行前,必须使用updatedb命令创建locate数据库。

  • which命令——查看某个指令在哪个目录下,比如查看ls命令在哪个目录下

which ls

  • grep命令和管道符号 | ——grep过滤查找,管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理。

grep [选项] 查找内容 源文件
image.png
例:在hello.txt文件中,查找”yes”所在行,并且显示行号
写法1:cat /home/hello.txt | grep -n “yes”
写法2:grep -n “yes” /home/hello.txt

  • gzip/gunzip命令——gzip用于压缩文件,gunzip用于解压文件

gzip 文件 (压缩文件,只能将文件压缩为*gz文件)
gunzip 文件.gz (解压缩文件)

  • zip/unzip命令——zip用于压缩文件,unzip用于解压文件,这个在项目打包发布中很有用。

zip [选项] xxx.zip 将要压缩的内容
unzip [选项] xxx.zip
zip常用选项:-r 递归压缩,即压缩目录
unzip常用选项:-d <目录> 指定解压后文件的存放目录

  • tar命令——既可以压缩,又可以解压,打包命令,最后但后的文件是 .tar.gz的文件。

tar [选项] xxx.tar.gz 打包的内容
image.png

8、关闭防火墙

查看防火墙状态:systemctl status firewalld
本次开机状态下防火墙关闭:systemctl stop firewalld
服务器重启后防火墙禁用:systemctl disable firewalld

9、软件安装限制

操作系统对未知软件的安装可能拒绝或者警告,可以通过下面的方法禁用这个功能;
vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
image.png

10、其他常用命令

whereis #查询命令文件的位置
file #查看文件的类型
who #查看当前在线用户
whoami #我是谁
pwd #我在哪
uname -a#查看内核信息
echo #类似sout syso,打印机语句
clear #清屏
history #历史

11、特殊字符

  • .点:
    • 如果文件的开始是.说明当前文件是一个隐藏文件
    • .指向当前目录
    • ..指向当前目录的上级目录
  • $
    • 说明这是一个变量
      • $PATH Linux的环境变量
  • *星号
    • 通配符
  • ~
    • 当前用户的家目录
    • 每个用户的家目录是不同的
    • root用户的家目录在系统根目录下
    • 其他用户的家目录在/home/下,用户名为家目录
  • 空格
    • Linux的命令与参数用空格隔开
  • /
    • 整个Linux的文件根目录
  • 命令的参数
    • 如果是单词一般加—
    • 如果是字母或者缩写一般加-