Linux常用命令

1、关机&重启命令

shutdown

shutdown -h now  立即关机
shutdown -h 1    1分钟后关机
shutdown -r now  立即重启
 halt :直接使用,效果等价于关机

 reboot:重启系统

 syn: 把内存的数据同步到磁盘

注意:当关机或者重启时,都应该先执行sync指令,把内存的数据写入磁盘,防止数据丢失


2、用户管理

2.1、添加用户useradd

 useradd [选项] 用户名
 如:添加一个用户xm.
 useradd xm

注意
1、当创建用户成功后,会自动的创建和用户同名的家目录

2、也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

useradd -d /home/dog xq

2.2 给用户指定或者修改密码passwd

基本语法

passwd 用户名
如:
passwd xm

2.3 删除用户userdel

userdel  用户名

1、删除用户xm,但是保留家目录

userdel xm

2、删除用户xh以及用户主目录

userdel -r xq

2.4 查询用户信息id

id 用户名

2.5 切换用户su

在操作Linux中,如果当前用户的权限不够,可以通过su -指令,切换到高权限用户,比如root

su - 用户名

2.6 用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理

2.6.1 增加组groupadd

groupadd 组名

2.6.2 删除组groupdel

groupdel 组名

2.7 增加用户时直接加上组useradd -g

useradd -g 用户组 用户名
增加一个用户zwj,直接将他指定到wudang
useradd -g wudang zwj

2.8 修改用户的组 usermod

usermod -g 用户组 用户名
创建一个shaolin组,将zwj用户修改到shaolin

groupad shaolin

usermod -g shaolin zwj

3、文件目录类指令

3.1、 pwd指令

显示当前工作目录的绝对路径

3.2、 ls指令

 ls [选项] [目录或文件]

常用选项

-a :显示当前目录所有的文件和目录,包括隐藏的

-l :以列表的方式显示信息

3.3、 cd指令

切换到指定目录

cd [参数]
cd~ 或者 cd:    回到自己的家目录

cd..   回到当前目录的上一级目录

案例

使用相对路径到/root目录
此处我们需要知道该用户目录在哪个目录下,才能写出这个指令,假设在/user/lib

cd ../../root

3.4、 mkdir指令

mkdir指令用于创建目录

mkdir [选项] 要创建的目录

常用选项 : -p 创建多级目录

创建一个目录 /home/dog

mkdir /home/dog
如果希望一次创建多级目录,带上参数-p即可

mkdir -p /home/animal/tiger

3.5、 rmdir指令

删除空目录

rmidr [选项] 要删除的空目录
删除一个目录/home/dog (此处必须为空目录)

rmdir /home/dog

如果要删除非空目录,需要使用rm -rf 要删除的目录

rm -rf /home/dog

3.6、 touch指令

创建空文件

创建一个空文件 hello.txt

touch hello.txt

3.7、 cp指令(重要)

拷贝文件到指定目录

cp [选项] source dest

常用选项 -r:递归复制整个文件夹

将/home/aaa.txt 拷贝到 /home/bbb 目录下(拷贝单个文件)

cp aaa.txt bbb/
将/home/test 整个目录拷贝到/home/zwj 目录下
cp -r test/ zwj/

3.8、 rm指令

移除[删除]文件或者目录

rm [选项] 要删除的文件或目录

常用选项

-r :递归删除整个文件夹
-f :强制删除不提示

3.9、 mv指令

移动文件与目录或重命名

mv oldNameFile newNameFile  (重命名)

mv /temp/movefile/targetFolder (移动文件)
将 /home/aaa.txt 文件重新命名为 pig.txt

mv aaa.txt pig.txt
将 /home/pig.txt 文件移动到 /root目录

mv pig.txt /root/

3.10、 cat指令

查看文件内容,以只读的方式打开

cat [选项] 要查看的文件

常用选项:-n 显示行号

/etc/profile 文件内容,并显示行号

cat -n /etc/profile | more

使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 |more

cat 文件名 | more [分页浏览]

3.11、 more指令

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

more 要查看的文件
采用more 查看文件 /etc/profile

more /etc/profile

快捷键

图片说明

3.12、 less指令

less 指令用来分屏查看文件内容,它的功能与more 指令类似,但是比more 指令更加强大,支持
各种显示终端。

less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示
需要加载内容,对于显示大型文件具有较高的效率。

less  要查看的文件
采用less 查看一个大文件  /opt/金庸-射雕英雄传txt 精校版.txt

cd /opt/
ls
less 金庸-射雕英雄传txt 精校版.txt

快捷键
图片说明

3.13、 > 指令和>> 指令

1、 > 输出重定向: 会将原来的文件的内容覆盖

2、>> 追加:不会覆盖原来文件的内容,而是追加到文件的尾部。

基本语法
1、ls -l >文件 (功能描述:列表的内容写入文件a.txt 中(覆盖写))

ls -l > a.txt

ls -l > a.txt , 将ls -l 的显示的内容覆盖写入到a.txt 文件,如果该文件不存在,就创建该文
件。

2、ls -al >>文件(功能描述:列表的内容追加到文件aa.txt 的末尾)

ls -l >> b.txt

3、cat 文件1 > 文件2 (功能描述:将文件1 的内容覆盖到文件2)

cat /etc/profile > c.txt

4、echo "内容" >> 文件

将/home 目录下的文件列表写入到/home/info.txt 中

ls -l /home/ > /home/info.txt
将当前日历信息追加到/home/mycal 文件中[提示cal ]

cal >> /home/mycal

3.14、echo指令

输出内容到控制台

echo [选项] [输出内容]

使用echo 指令输出环境变量,输出当前的环境路径。

echo $PATH

3.15、head指令

head 用于显示文件的开头部分内容,默认情况下head 指令显示文件的前10 行内容

基本语法:

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

案例:
查看/etc/profile 的前面5 行代码

head -n 5 /etc/profile

3.16、tail指令

tail 用于输出文件中尾部的内容,默认情况下tail 指令显示文件的后10 行内容。
基本语法:

1) tail 文件(功能描述:查看文件后10 行内容)
2) tail -n 5 文件(功能描述:查看文件后5 行内容,5 可以是任意行数)
3) tail -f 文件(功能描述:实时追踪该文档的所有更新,工作经常使用)

3.17、ln指令

软链接也叫符号链接,类似于windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法:

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

案例:
在/home 目录下创建一个软连接linkToRoot,连接到/root 目录

ln -s /root linkToRoot

删除软连接linkToRoot

rm -rf linkToRoot

注意:当我们使用pwd 指令查看目录时,仍然看到的是软链接所在目录。

3.18、history指令

查看已经执行过历史命令,也可以执行历史指令
基本语法:

history (功能描述:查看已经执行过历史命令)

案例:
显示所有的历史命令

history 

显示最近使用过的10个指令

history 10

4 时间日期类指令

4.1 date指令-显示当前日期

基本语法:

1) date (功能描述:显示当前时间)
2) date +%Y (功能描述:显示当前年份)
3) date +%m (功能描述:显示当前月份)
4) date +%d (功能描述:显示当前是哪一天)
5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

4.1.2 date指令-设置日期

基本语法:

date -s 字符串时间

案例:设置系统当前时间, 比如设置成2018-10-10 11:22:22

date -s "2018-10-10 11:12:22"

4.2 cal指令 查看日历指令

基本语法:

cal [选项] (功能描述:不加选项,显示本月日历)

案例: 显示2020 年日历

cal 2020

5 搜索查找类失灵

5.1 find指令

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

基本语法:

find [搜索范围] [选项]

选项说明

-name<查询方式>   按照指定的文件名查找模式查找文件
-user<用户名>     查找属于指定用户名所有文件
-size<文件大小>   按照指定的文件大小查找文件

案例:按文件名:根据名称查找/home 目录下的hello.txt 文件

find /home -name hello.txt

按拥有者:查找/opt 目录下,用户名称为nobody 的文件

find /opt -user nobody

查找整个linux 系统下大于20m 的文件(+n 大于-n 小于n 等于)

find / -size +20M

查询/ 目录下,所有.txt 的文件

find / -name *.txt

5.2 locate指令

locaate 指令可以快速定位文件路径
Locate 指令无需遍历整个文件系统,查询速度较快。

基本语法:

locate 搜索文件

特别说明:由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb 指令创建locate 数据库。

案例:请使用locate 指令快速定位hello.txt 文件所在目录

locate hello.txt

5.3 grep指令和管道符号

grep 过滤查找, 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:

grep [选项] 查找内容源文件

选项说明

-n     显示匹配行及行号
-i     忽略字母大小写

案例:请在hello.txt 文件中,查找"yes" 所在行,并且显示行号

cat hello.txt | grep -n yes     (区分大小写)
cat hello.txt | grep -ni yes    (不区分大小写)

6、 压缩和解压类

6.1、 gzip/gunzip 指令

gzip 用于压缩文件, gunzip 用于解压的
基本语法:

gzip 文件(功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)

注意:当我们使用gzip 对文件进行压缩后,不会保留原来的文件。

6.2、 zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
基本语法:

zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)

zip常用选项

-r:递归压缩,即压缩目录

unzip 的常用选项

-d<目录> :指定解压后文件的存放目录

案例:将/home 下的所有文件进行压缩成mypackage.zip

zip -r mypackage.zip /home/

将mypackge.zip 解压到/opt/tmp 目录下

unzip -d /opt/tmp/ mypackage.zip

6.3、 tar 指令

tar 指令是打包指令,最后打包后的文件是.tar.gz 的文件。
基本语法:

tar [选项] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)

选项说明

-c   产生.tar打包文件
-v   显示详细信息
-f   指定压缩后的文件名
-z   打包同时压缩
-x   解包.tar文件

案例1: 压缩多个文件,将/home/a1.txt 和/home/a2.txt 压缩成a.tar.gz

tar -zcvf a.tar.gz a1.txt a2.txt

将/home 的文件夹压缩成myhome.tar.gz

tar -zcvf myhome.tar.gz /home/

将a.tar.gz 解压到当前目录

tar -zxvf a.tar.gz

将将myhome.tar.gz 解压到/opt/ 目录下

tar -zxvf myhome.tar.gz -C /opt/

指定解压到的那个目录,事先要存在才能成功,否则会报错。