Linux常用指令
一、用户管理
1、useradd添加用户
useradd 用户名
添加用户,默认会在/home目录下创建一个用户名相同的用户家目录,默认的组也是同用户名。需要root用户。
eg
useradd snow
就会在home目录下生成snow目录
useradd -d username指定用户家目录。
eg.
useradd -d /home/snow/ user1
2、给用户指定或修改密码
passwd username
根据提示输入两次密码
3、删除用户
userdel username #删除用户,但保留家目录
userdel -r username #删除用户及其家目录
4、查询用户信息
id username #
eg.================================
[root@snow snow]# id forgetxue
uid=1000(forgetxue) gid=1000(forgetxue) 组=1000(forgetxue)
#显示组信息和用户信息
5、切换用户
su - 要切换到的用户名
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用 exit 指令
二、用户组
类似于角色,系统可以对有共性的多个用户进行统一的管理
1、添加一个组
groupadd 组名
2、删除一个组
groupdel 组名
3、添加用户时加上组
useradd -g groupname username
4、更改用户的组
usermod -g newgroupname username
5、 /etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
6、/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
7、/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表
三、指定运行级别
1、运行级别说明:
0 :关机
1 :单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
/etc/inittab 的 id:5:initdefault:这一行中的数字
2、切换到指定运行级别的指令
init 运行级别值
eg.
init 3
....
init 5
init 1
如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。
思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。
总结
开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。
这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
四、帮助指令
1、man
man [命令或配置文件](功能描述:获得帮助信息)
eg.
man ls
2、help
help 命令 (功能描述:获得 shell 内置命令的帮助信息)
eg.
help cd
五、文件目录类
1、pwd
pwd #查看当前工作目录的绝对路径
2、ls 指令
• 基本语法
ls [ 选 项] [目录或是文件]
• 常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
-h 以一个合适的单位显示文件大小
eg.
ls -l /home #工作目录要于显示的目录不一致
ls -l #显示当前目录
3、mkdir创建目录
mkdir 目录名 #只能创建一个目录
mkdir -p /目录名1/.../目录名n #创建多级目录
4、rmdir删除目录
rmdir 目录 #只能删除空目录
rmdir -rf 目录 #-r表示递归删除目录及目录下的文件,-f表示强制不提醒
5、touch指令创建新文件
touch hello.txt
6、cp拷贝文件
cp src dest #将文件拷贝到dest目录
eg.
cp hello.txt /home/snow
cp -r srcdir destdir
eg.
cp -r snow/ forgetxue/#将home目录下的snow目录下的所有内容递归拷贝到forgetxue/目录下
\cp -r snow/ forgetxue #如果目的目录下已有相同的文件,关闭覆盖提醒
7、rm指令
rm 指令移除【删除】文件或目录···
• 基本语法
rm [选项] 要删除的文件或目录
• 常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
#cd 到home目录
rm -rf snow/ #递归删除snow文件目录下的所有文件及子目录,不提醒
rm -f hello.txt #删除hello.txt不提醒
8、mv移动指令
移动文件与目录或重命名
• 基本语法
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
mv hello.txt helloworld.txt #重命名
mv hello.txt /root/ #移动文件到root目录下
8、cat指令只读模式查看文件
cat 查看文件内容,是以只读的方式打开。
• 基本语法
cat [选项] 要查看的文件
• 常用选项
-n :显示行号
cat -n /etc/profiles | more #分页浏览profiles文件
| more 表示分页浏览,“|”称为管道符,语义是其前面指令得到的结果交由后面的指令来处理
9、more指令
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明
• 基本语法
more 要查看的文件
eg.
more /etc/passed
more命令打开文件快捷键
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTTWhfIk-1582902560903)(C:\Users\19698\AppData\Roaming\Typora\typora-user-images\image-20200226152544865.png)]
10、less指令
less指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
• 基本语法
less 要查看的文件
less etc/profiles
less指令下打开文件快捷键
操作 | 功能说明 |
---|---|
空格 | 向下翻一页 |
[pagedown] | 向下翻一页 |
[pageup] | 向上翻一页 |
/字符串 | 向下搜寻[字符串]: n:向下查找 N:向上查找 |
?字符串 | 向上搜寻[字符串] n:向上查找 N:向下查找 |
q | 退出 |
11、> 指令和 >> 指令
> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。
cd /home
ls -l > home.txt #将ls-l 命令显示的结果输出到home.txt文件,如果没有改文件就会在当前工作目录下创建该文件,若存在该文件,覆盖文件内容。
cat hello.txt > home.txt #用hello.txt的内容覆盖home.txt原来的内容
ls -l >> home.txt #追加在home.txt文件的结尾
cal >> home.txt #在home.txt文件结尾添加上日期信息
12、echo指令
• 基本语法
echo [选项] [输出内容]
echo $PATH #在控制台输出path环境变量
echo “内容” >> 文件
echo "hello World !" >> home.txt 在home.txt文件结尾添加hello world!
13、head 指令
head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
• 基本语法
head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)
14、tail指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 的内容
语法:
tail mylog.log
tail -n 5 mylog.log #查看最后5行
tail指令常用来监听文件的更新
15、ln 软链接
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
• 基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
cd / #进入到根目录
ln -s /home/forgetxue/ ftx # 为/home/forgetxue/ 目录创建软连接 ftx
cd ftx #进入到/home/forgetxue/
六、搜索查找
1、find 指令
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
• 基本语法
find [搜索范围] [选项]
选项:
选项 | 功能 |
---|---|
-name | 按文件名查找文件 |
-user | 查找指定用户的所有文件 |
-size | 按照大小查找 |
find -user forgetxue #查找用户forgetxue的所有文件
find /home -name hello.java
#查询结果为:
/home/forgetxue/hello.java
#不支持模糊查询,但支持通配符
find /home -name *.txt #查询home目录下的所有txt文件(包括子目录)
find /home/ -size +20M #查询home目录下大雨20兆的文件
find /home/ -size -1000k #查询home目录下小于1000k的文件
find /home/ -size 20M #查询home目录下大小为20M的文件
2、locate指令
locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
语法:
locate 文件名
• 特别说明
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
3、grep指令
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
• 基本语法
grep [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显是查询匹配的行号 |
-i | 查询匹配忽略大小写 |
cat hello.txt | grep -ni hello #查找hello关键字
#也可以
cd /home
grep -ni hello hello.txt
七、压缩解压
1、zip/unzip
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
• 基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
• zip 常用选项
-r:递归压缩,即压缩目录
• unzip 的常用选项
-d<目录> :指定解压后文件的存放目录
cd /home
zip -r forgetxue.zip forgetxue/ #将home目录下的forgetxue目录递归压缩,在home目录下会生成forgetxue.zip文件
#解压
unzip -d /root/package/ forgetxue.zip #将forgetxue.zip解压到/root/package/目录下
2、tar指令
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。
• 基本语法
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
• 选项说明
选项 | 功能 |
---|---|
-c | 产生.tar的打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
tar -zcvf myhome.tar.gz /home/ #打包home目录
tar -zxvf myhome.tar.gz -C /home/bb/ #解压到home目录下的bb 文件夹中,bb文件夹就会多一个home目录
八、权限管理
1、文件\目录的所有者、组
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。文件的组默认是所有者所在的组,除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.
1、查看文件的所有者
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxr-xr-x. 2 root root 16 2月 21 23:35 aa
drwxr-xr-x. 3 root root 35 2月 26 17:21 bb
drwx------. 17 forgetxue forgetxue 4.0K 2月 25 19:23 forgetxue
-rw-r--r--. 1 root root 0 2月 21 23:17 hello1.txt
-rw-r--r--. 1 root root 446 2月 22 16:36 hello.txt
-rw-r--r--. 1 forgetxue forgetxue 707 2月 26 15:40 home.txt
#以最后一行为例,第一个forgetxue指文件的所有者是forgetxue,第二个forgetxue 指该文件所在的组
2、更改文件的所有者
chown 用户名 文件名
[root@snow home]# chown forgetxue hello.txt #把hello.txt的所有者改成forgetxue
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxr-xr-x. 2 root root 16 2月 21 23:35 aa
drwxr-xr-x. 3 root root 35 2月 26 17:21 bb
drwx------. 17 forgetxue forgetxue 4.0K 2月 25 19:23 forgetxue
-rw-r--r--. 1 root root 0 2月 21 23:17 hello1.txt
-rw-r--r--. 1 forgetxue root 446 2月 22 16:36 hello.txt #用户名变成了forgetxue
-rw-r--r--. 1 forgetxue forgetxue 707 2月 26 15:40 home.txt
3、更改文件的组
chgrp 组名 文件名
[root@snow home]# chgrp user2 hello.txt #把Hello.txt的组改成user2
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxr-xr-x. 2 root root 16 2月 21 23:35 aa
drwxr-xr-x. 3 root root 35 2月 26 17:21 bb
drwx------. 17 forgetxue forgetxue 4.0K 2月 25 19:23 forgetxue
-rw-r--r--. 1 root root 0 2月 21 23:17 hello1.txt
-rw-r--r--. 1 forgetxue user2 446 2月 22 16:36 hello.txt #文件的组变成了user2
-rw-r--r--. 1 forgetxue forgetxue 707 2月 26 15:40 home.txt
2、文件权限
-
第0位: 指明文件的类型(d, - , l , c , b)
- d :目录
- “-” :普通文件
- c : 字符设备(键盘,鼠标)
- b : 块文件、硬盘
-
第1~3位:文件所有者对该文件拥有的权利
-
第4~6位:文件所属组的其他用户对此文件拥有的权限
-
第7~9位:其他组用户对该文件所拥有的权利
r、w 、x、 - 的含义
字符 | 含义 |
---|---|
r | 如果是文件,可读;如果是目录,可以打开查看。 |
w | 如果是文件,可以修改;如果是目录,可以在里面创建删除重命名 |
x | 代表可执行或可进入 |
- | 起到占位符的作用,保持三个字符一组的格式,不代表什么权限 |
drwxr-xr-x. 2 root root 16 2月 21 23:35 aa
#d:目录;rwx所有者拥有读写进入的权限;r-x:同组的用户仅有读和进入的权限;r-x:其他组的用户仅具有读和进入的权限。
-rw-r--r--. 1 forgetxue forgetxue 707 2月 26 15:40 home.txt
# -:指明是一个普通文件,rw-:所有者有读写的权限,后面两个r--指明同组其他用户和其他组的用户只可读。
3、修改文件的权限chmod
chmod u=rwx, g=rx, o=x 文件或目录
chmod o+r 文件或目录
chomd g-w 文件或,目录
#===================
o :其他组的用户;g :同组的其他用户; a:所有用户; u:文件所有者
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxr-xr-x. 2 root root 16 2月 21 23:35 aa
drwxr-xr-x. 3 root root 35 2月 26 17:21 bb
[root@snow home]# chmod u=rwx,g=r,o=r aa
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxr--r--. 2 root root 16 2月 21 23:35 aa #aa的权限发生了变化
drwxr-xr-x. 3 root root 35 2月 26 17:21 bb
root@snow home]# chmod a+w aa #给所有用户添加写的权限
[root@snow home]# ls -alh
总用量 360M
drwxr-xr-x. 9 root root 165 2月 27 23:59 .
dr-xr-xr-x. 17 root root 235 2月 26 15:49 ..
drwxrw-rw-. 2 root root 16 2月 21 23:35 aa
4、第二种方式:通过数字修改权限
规则:r=4 w=2 x=1
,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名相当于 chmod 751 文件目录名