最经典的Linux入门命令

Linux 目录结构以及操作命令

Linux 目录结构

像jdk、redis、mysql等软件可以安装在/usr/local目录下


Linux 目录切分:

  • Linux以正斜线 \ 作为切分

  • Windows以反斜线 / 作为切分


Linux 路径格式:

  • 绝对路径:从根目录 / 开始写起

  • 相对路径:当前目录 . || 上级目录 . . || 家目录(主目录) ~


Linux 命令格式

命令 [选项] [参数1] [参数2]

例如:ls -l / 查看根目录并以长格式来输出

  • ls:查看目录
  • -l:以长格式输出
  • /:表示根目录

在这里插入图片描述


关机/重启命令

  • shutdown -h now 立即关机

  • shutdown -h 10 10分钟后关机

  • shutdown -r nowreboot 立即重启

  • shutdown -r 10 10分钟后重启


Linux 清屏命令

  • 清屏命令:clear


Linux 目录管理命令

显示当前目录

  • pwd 显示当前目录
pwd   显示当前目录(名称)

查看目录结构

命令 用途
ls 查看当前目录的目录结构,不包括隐藏目录
ls -a 查看当前目录的目录结构,包括隐藏目录
ls -l 查看当前目录的目录结构,并以长格式输出
ls / 查看根目录的目录结构
ls -l / 查看根目录的目录结构,并以长格式输出
ls -lh / 查看根目录的目录结构,以长格式输出并显示文件大小
ls home 查看home目录的目录结构
ls -l home 查看home目录的目录结构,并以长格式输出
ls -lh home 查看home目录的目录结构,以长格式输出并显示文件大小
ls --help 查看ls命令帮助

切换目录

  • cd / 切换回根目录

  • cd /home/project 切换到project目录


目录创建、删除

  • 目录创建:mkdir 目录名称
mkdir test  //在当前目录下创建test空白目录(只能创建一级目录)
  • 目录创建:mkdir -p 目录名称
mkdir -p test/test2  //在当前目录下创建test/test2二级空白目录(可以创建多级目录)
  • 空白目录删除:rmdir 目录名称
rmdir test  //删除当前目录下的test空白目录 (只能删除空白目录,不能删除非空白目录)
  • 非空目录删除:rm -rf 目录名称
rm -rf test  //删除当前目录下的test目录

Linux 文件管理命令

创建文件

  • 创建文件:touch 文件名
touch test.txt

删除文件

  • 删除文件:rm 文件名
rm test.txt

编辑文件

  • 编辑文件需要用到vi编辑器,vi编辑器可以编辑已有文件,也可以创建一个新文件进行编辑。
vi test.txt   //编辑test.txt文件(test.txt是已有文件)

vi test2.txt   //创建一个test2.txt文件进行编辑(test2.txt是新文件)
  • vi编辑器有三种模式:命令模式、编辑模式、最后行模式

在这里插入图片描述

  1. 输入vi 文件名命令后,会进入命令模式,编辑模式不能编辑文件内容,只能移动光标查看文件信息

  2. 进入命令模式后,可以在键盘上按 i,I,a,A,o,O键进入编辑模式:i 键是在光标前插入,I 键是在光标所在行的行首插入a 键是在光标后插入,A 键是在光标所在行行尾插入o 键是在光标所在行的下一行插入,O 键是在光标所在行的上一行插入

  3. 编辑完后,按 esc 键回退到命令模式

  4. 编辑并回退命令模式后,使用 : 命令进入最后行模式,然后使用 wq命令保存编辑并退出vi编辑器

4.

编辑文件总结:

  • 命令模式 相关命令: i,I,a,A,o,O键

    • i 键 进入编辑模式并在光标前插入; I 键 进入编辑模式并在当前行的行首插入;
    • a 键 进入编辑模式并在光标后插入; A 键 进入编辑模式并在当前行的行尾插入;
    • o 键 进入编辑模式并在当前行之下插入; O 键 进入编辑模式并在当前行之上插入;
  • 编辑模式 相关命令:yy 复制当前行,dd 剪切当前行,p 在下一行黏贴,P 在上一行黏贴

  • 最后行模式 相关命令::w 保存,:wq 保存并退出,:q! 不保存并退出


查看文件内容

  • 虽然通过vi编辑文件时也可以查看到文件内容,但Linux中有提供专门的命令来查看文件内容。

  • 查看文件内容: cat 文件名 、more 文件名、less 文件名、head 文件名、tail 文件名等. . .
    在这里插入图片描述

查看文件内容总结:

  • cat 文件名 一次显示所有内容

  • more 文件名 通过enter回车键一行一行显示

  • less 文件名 通过方向键向上或向下一行一行查看文件内容

  • head 文件名 显示文件前面部分

  • tail 文件名 显示文件后面部分


文件及目录管理命令

复制

  • cp [-r] 来源文件 目标文件

cp 只能用于复制文件 cp -r 可以复制文件或目录( -r 是循环递归的意思)

cp a.txt b.txt   //将a.txt内容复制到b.txt中 (b.txt文件存在则覆盖,不存在则创建)

cp a.txt test    //将a.txt文件复制到当前目录下的test目录

cp a.txt ../test    //将a.txt文件复制到上级目录的test目录

cp a.txt b.txt /home/test    //将a.txt和b.txt文件复制到/home/test目录

cp -r /home/test /home/caidong   //将/home/test目录复制到/home/caidong目录下 (/home/test是否为非空白目录均可)

移动

  • mv 来源文件 目标文件
mv a.txt b.txt   //将a.txt命名为b.txt

mv a.txt test/b.txt   //将a.txt移动到test目录并命名为b.txt

mv a.txt /home/test   //将a.txt移动到test目录

mv a.txt b.txt /home/test   //将a.txt和b.txt移动到test目录

mv /home/caidong /home/test   //将/home/caidong目录移动到/home/test里

删除

  • rm [ -rf ] 文件或目录

rm 只能用于删除文件 rm -r 可以删除文件或目录( -r 是循环递归的意思); -f 删除前询问是否删除

rm a.txt    //删除a.txt文件前,询问是否删除该文件

rm -f a.txt    //不询问,直接删除a.txt文件

rm -rf a.txt    //不询问,直接删除a.txt文件

rm -rf /home/test   //不询问,直接删除test目录 (非空白目录或空白目录都可以)

rm -f ./*    //不询问,删除当前目录下的所有文件 (不包括子目录)

rm -rf aa*    //删除当前目录中所有以aa开头的文件和目录

查找

  • which 命令名称  - 查找mkdir命令所在
which mkdir     //查找mkdir命令所在

which touch     //查找touch命令所在

在这里插入图片描述

  • find [-name] 文件/目录  - 查找文件或目录
find a.txt   //在当前目录查找a.txt文件

find -name a.txt  //在当前目录及其子目录下 查找a.txt文件

find test   //在当前目录下 查找test目录,并列出test目录下的文件及子目录

find -name test   //在当前目录及其子目录下 查找test目录,并列出test目录下的文件及子目录

---------------------------------------------------------------------------------------------

find ./ -name a.txt    //在当前目录及其子目录下 查找a.txt文件

find ../ -name a.txt   //在上一级目录及其子目录下 查找a.txt文件

find  / -name a.txt    //在根目录及其子目录下 查找a.txt文件

find /home/test -name test2   //在/home/test目录及其子目录下查找test2目录,并列出test目录下的文件及子目录

---------------------------------------------------------------------------------------------

find -name aa*    //查找当前目录下以aa开头的文件或目录

find -name aa???    //查找当前目录下以aa开头,并且aa后面跟着三个字符的文件或目录

总结:

  • cp 、mv、rm 可以对文件或目录:复制、移动、删除
  • cp,mv 在复制、移动单个文件时可以进行重命名

用户管理以及群组管理

用户管理:

  • 查看当前连接Linux的用户: who
  • 创建用户:useradd [-g 群组] 用户名
  • 设置密码:passwd 用户名
  • 删除用户:userdel [-r] 用户名
  • 查看用户列表: compgen -u  或  getent passwd  或  cat /etc/passwd

用户群组管理:

  • 查看用户所在群组: groups 用户名
  • 创建群组: groupadd 群组名
  • 删除群组: groupdel 群组名
  • 修改用户所在群组: usermod [ -g 群组名 ] 用户名
  • 查看用户群组列表:cat /etc/group

用户分为:root超级权限用户和普通用户。/root目录是root用户的家目录;普通用户的家目录都存放在/home目录中,在我们创建一个普通用户时,就会在/home目录下创建一个该用户的家目录,名称与该用户名一致。

root用户才具备管理(创建、删除、修改)用户和用户群组的权限,普通用户没有管理用户和用户群组的权限,即普通用户的职能是管理其家目录下的文件和目录。

用户管理

  • 查看当前连接Linux的用户: who
    在这里插入图片描述
    从上图可看出,当前连接的用户是root用户

  • 创建用户:useradd [-g 群组] 用户名

    useradd 用户名用于创建用户,[ -g 用户组名 ] 是可选项,表示在创建用户时,将其添加到某个用户组中。

    我们可以在用户创建时将其添加到某个用户群组,也可以在用户创建后再将其添加到某个用户群组

    注意:root用户才具有创建和删除用户的权限

    [root@izuf61l1mtrhtuk2cjhj73z home]# useradd wangwu//创建一个用户名为wangwu的用户
    
    [root@izuf61l1mtrhtuk2cjhj73z home]# useradd -g group1 zhangsan  //创建一个用户名为zhangsan的用户,并将其添加到group1用户群组
    

    创建普通用户时,系统会自动在/home目录中创建一个同名的目录作为该用户的家目录。该用户的操作权限就是在它的家目录,没有操作其它目录的权限。在这里插入图片描述


  • 设置/修改密码:passwd 用户名

    密码设置规则:1. 长度超过8个字符  2. 包含数字、大小写字母、符号  3. 密码要健壮

    输入 passwd 用户名并回车后,就会提示输入新密码,输入新密码后还需重复输入一次密码进行确认
    在这里插入图片描述
    注意: 设置的密码需要符合密码设置规则(如:用户zhangsan的密码我设置成Zhang@San4356   用户wangxiaoming的密码设置成Wang@Xiao@Ming4356)


  • 删除用户:userdel [-r] 用户名

    在创建用户的时候,系统会自动帮我们在/home中创建该用户的家目录。而当我们使用 (userdel 用户名) 删除该用户时,不会自动删除掉该用户的家目录。但使用 (userdel -r 用户名) 来删除用户时,会连带该用户的家目录一起删除掉。

    注意:root用户才具有创建和删除用户的权限


  • 查看用户列表: compgen -u  或  getent passwd  或  cat /etc/passwd

    [zhangsan@izuf61l1mtrhtuk2cjhj73z ~]$ compgen -u
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    operator
    games
    ftp
    nobody
    systemd-bus-proxy
    systemd-network
    dbus
    polkitd
    tss
    sshd
    postfix
    chrony
    ntp
    nscd
    tcpdump
    saslauth
    mailnull
    smmsp
    www
    admin
    mysql
    redis
    cc
    aa
    zhangsan
    [zhangsan@izuf61l1mtrhtuk2cjhj73z ~]$
    

群组管理

  • 查看用户所在群组: groups 用户名
[root@izuf61l1mtrhtuk2cjhj73z home]# groups
root
[root@izuf61l1mtrhtuk2cjhj73z home]#

  • 创建群组: groupadd 群组名
[root@izuf61l1mtrhtuk2cjhj73z home]# groupadd group1   // 创建group1用户群组
[root@izuf61l1mtrhtuk2cjhj73z home]# groupadd group2   // 创建group2用户群组

  • 删除群组: groupdel 群组名
[root@izuf61l1mtrhtuk2cjhj73z home]# groupdel group2   // 删除group2用户群组
[root@izuf61l1mtrhtuk2cjhj73z home]# groupdel group3   // 删除group3用户群组,如果群组不存在则提示错误
groupdel: group 'group3' does not exist

  • 修改用户所在群组: usermod [ -g 群组名 ] 用户名
[root@izuf61l1mtrhtuk2cjhj73z home]# usermod -g group1 wangwu  //给已创建的用户设置群组

  • 查看用户群组列表:cat /etc/group
[root@izuf61l1mtrhtuk2cjhj73z home]# cat /etc/group
root:x:0:    // 这是root群组,也就是root用户所在群组
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-bus-proxy:x:998:
systemd-network:x:192:
dbus:x:81:
polkitd:x:997:
ssh_keys:x:996:
dip:x:40:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:995:
ntp:x:38:
nscd:x:28:
tcpdump:x:72:
saslauth:x:76:
mailnull:x:47:
smmsp:x:51:
www:x:1000:
admin:x:1001:
mysql:x:1002:
redis:x:1003:
cc:x:1004:
aa:x:1005:
group1:x:1006:   //group1 是新增群组
group2:x:1007:   //group2 也是新增群组
[root@izuf61l1mtrhtuk2cjhj73z home]#

断开用户连接

  • 断开远程用户:fuser -k /dev/pts/pts序号

  • 断开本地用户:fuser -k /dev/tty序号

[root@izuf61l1mtrhtuk2cjhj73z home]# who
root     pts/0        2020-05-02 20:24 (113.116.42.107)
zhangsan pts/1        2020-05-02 18:07 (113.116.42.107)

[root@izuf61l1mtrhtuk2cjhj73z home]# fuser -k /dev/pts/1
/dev/pts/1:          24615

[root@izuf61l1mtrhtuk2cjhj73z home]# who
root     pts/0        2020-05-02 20:24 (113.116.42.107)

打包压缩与解压缩

打包和压缩的区别:压缩也是一种打包,但压缩在打包的同时会对打包的文件进行压缩处理,使它占用更小的磁盘空间。而打包只是单纯的把一些文件或目文件夹打成一个包,便于保存和传输。

Linux常见压缩类型

类型 描述
*.gz gzip压缩格式的文件
*.bz2 bzip2压缩格式的文件
*.xz xz压缩格式的文件
*.tar tar打包的文件
*.zip zip压缩格式的文件
*.tar.gz 打包并使用gzip压缩的文件
*.tar.bz2 打包并使用bzip2压缩的文件
*.tar.xz 打包并使用xz压缩的文件

压缩、解压相关命令

tar [-ctxzjJvf] 压缩文件名 源文件

  • c 打包; t 查看内容; x 解打包解压缩
  • z 使用gzip方式压缩; j 使用bzip2方式压缩;J 使用xz方式压缩
  • v 显示过程; f 指定压缩包名称

打包压缩

  • 将a.txt、b.txt、c.txt三个文件打包,包名为abc.tar
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  a.txt  b  b.txt  c.txt

[root@izuf61l1mtrhtuk2cjhj73z test]# tar -cvf abc.tar a.txt b.txt c.txt
a.txt
b.txt
c.txt
[root@izuf61l1mtrhtuk2cjhj73z test]#
  • 查看abc.tar的内容
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  a.txt  b  b.txt  c.txt

[root@izuf61l1mtrhtuk2cjhj73z test]# tar -tvf abc.tar
-rw-r--r-- root/root         0 2020-05-04 02:23 a.txt
-rw-r--r-- root/root         0 2020-05-04 02:23 b.txt
-rw-r--r-- root/root         0 2020-05-04 02:23 c.txt
[root@izuf61l1mtrhtuk2cjhj73z test]#


  • 将a、b文件夹打包(包名为ab.tar.gz),并以gzip方式压缩
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  b  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -czvf ab.tar.gz a b
a/
a/c.txt
a/b.txt
a/a.txt
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.gz  b  mydir
  • 查看ab.tar.gz的内容
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -tvf ab.tar.gz
drwxr-xr-x root/root         0 2020-05-04 01:02 a/
-rw-r--r-- root/root      4003 2020-05-04 01:02 a/c.txt
-rw-r--r-- root/root      4003 2020-05-04 01:01 a/b.txt
-rw-r--r-- root/root      4003 2020-05-04 01:00 a/a.txt
drwxr-xr-x root/root         0 2020-05-04 01:09 b/


  • 将a、b文件夹打包(包名为ab.tar.bz2),并以bzip2方式压缩
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  b  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -cjvf ab.tar.bz2 a b
a/
a/c.txt
a/b.txt
a/a.txt
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.bz2  b  mydir
  • 查看ab.tar.bz2的内容
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -tvf ab.tar.bz2
drwxr-xr-x root/root         0 2020-05-04 01:02 a/
-rw-r--r-- root/root      4003 2020-05-04 01:02 a/c.txt
-rw-r--r-- root/root      4003 2020-05-04 01:01 a/b.txt
-rw-r--r-- root/root      4003 2020-05-04 01:00 a/a.txt
drwxr-xr-x root/root         0 2020-05-04 01:09 b/


  • 将a、b文件夹打包(包名为ab.tar.xz),并以xz方式压缩
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  b  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -cJvf ab.tar.xz a b
a/
a/c.txt
a/b.txt
a/a.txt
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.xz  b  mydir
  • 查看ab.tar.xz的内容
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -tvf ab.tar.xz
drwxr-xr-x root/root         0 2020-05-04 01:02 a/
-rw-r--r-- root/root      4003 2020-05-04 01:02 a/c.txt
-rw-r--r-- root/root      4003 2020-05-04 01:01 a/b.txt
-rw-r--r-- root/root      4003 2020-05-04 01:00 a/a.txt
drwxr-xr-x root/root         0 2020-05-04 01:09 b/



解压缩

  • 解压abc.tar到当前目录
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
abc.tar  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -xvf abc.tar
a.txt
b.txt
c.txt
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
abc.tar  a.txt  b.txt  c.txt  mydir
  • 解压ab.tar.gz到当前目录
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
ab.tar.gz  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -xzvf ab.tar.gz
a/
a/c.txt
a/b.txt
a/a.txt
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.gz  b  mydir
  • 解压ab.tar.xz到当前目录
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
ab.tar.xz   mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -xJvf ab.tar.xz
a/
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.xz  b  mydir
  • 解压ab.tar.bz2到当前目录
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
ab.tar.bz2   mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -xjvf ab.tar.bz2
a/
b/
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
a  ab.tar.bz2  b  mydir
  • 解压abc.tar到当前目录下的mydir目录中(Linux解压到指定目录需要使用 -C 命令)
[root@izuf61l1mtrhtuk2cjhj73z test]# ls
abc.tar  mydir
[root@izuf61l1mtrhtuk2cjhj73z test]# tar -xvf abc.tar -C ./mydir
a.txt
b.txt
c.txt
[root@izuf61l1mtrhtuk2cjhj73z test]# cd mydir
[root@izuf61l1mtrhtuk2cjhj73z mydir]# ls
a.txt  b.txt  c.txt

猜你喜欢

转载自blog.csdn.net/weixin_42950079/article/details/105771268