Linux基本命令


Linux 系统目录

├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户主目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # 系统管理员,也称为超级权限者的用户主目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录

目录管理

1. 查看

  1. ls (列出目录)

在Linux系统当中, ls 命令可能是最常被运行的。

语法:

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称

选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

将目录下的所有文件列出来(含属性与隐藏档)

[root@www ~]# ls -al ~
  1. cd (切换目录)

cd是Change Directory的缩写,这是用来变换工作目录的命令。

语法:

cd [相对路径或绝对路径]

测试:

#相对路径进入bin文件夹
[root@zheng001Host /]# cd bin
#相对路径进入www文件夹
[root@zheng001Host bin]# cd ../www
#绝对路径进入www文件夹
[root@zheng001Host www]# cd /www/server/tomcat
#返回上一级文件夹
[root@zheng001Host tomcat]# cd ..
#返回更目录文件夹
[root@zheng001Host server]# cd /
  1. pwd ( 显示目前所在的目录 )

pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。

[root@kuangshen kuangstudy]#pwd [-P]

选项与参数:-P :显示出确实的路径,而非使用连接(link) 路径。

测试:

# 单纯显示出目前的工作目录
[root@zheng001Host tomcat]# pwd
/www/server/tomcat

2.创建、删除

  1. mkdir (创建新目录)

如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

mkdir [-mp] 目录名称

选项与参数:

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

测试:

# 创建一个test1文件夹
[root@zheng001Host /]# cd home
[root@zheng001Host home]# mkdir test1
[root@zheng001Host home]# ls
redis  test1  www
# 创建一个test2/test3的嵌套文件夹
[root@zheng001Host home]# mkdir test2/test3 -p
[root@zheng001Host home]# cd test2
[root@zheng001Host test2]# ls
test3
  1. rmdir ( 删除空的目录 )

语法:

rmdir [-p] 目录名称

选项与参数:**-p :**连同上一级『空的』目录也一起删除

[root@zheng001Host home]# ls
redis  t0  t1  www
#t0为空,可以直接删除
[root@zheng001Host home]# rmdir t0
#t1中存在文件夹,不允许直接删除
[root@zheng001Host home]# rmdir t1
rmdir: failed to remove 't1': Directory not empty
#使用-p可嵌套删除
[root@zheng001Host home]# rmdir -p t1/t2/t3
[root@zheng001Host home]# ls
redis  www

3. 复制、移除、移动

  1. cp ( 复制文件或目录 )

语法:

[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

选项与参数:

  • **-a:**相当于 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
  • **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • **-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
  • -r:递归持续复制,用於目录的复制行为;(常用)
  • **-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • **-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  • **-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身。
  • **-s:**复制成为符号连结档 (symbolic link),亦即『捷径』文件;
  • **-u:**若 destination 比 source 旧才升级 destination !
[root@zheng001Host home]# ls
redis  t0  t1  www
[root@zheng001Host home]# cd t0
[root@zheng001Host t0]# ls
copy.txt
#将t0下的文件复制到同级目录下的t1下
[root@zheng001Host t0]# cp copy.txt ../t1
#复制重名文件会询问是否覆盖
[root@zheng001Host t0]# cp copy.txt ../t1
cp: overwrite '../t1/copy.txt'? y

  1. rm ( 移除文件或目录 )

语法:

rm [-fir] 文件或目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
  • -i :互动模式,在删除前会询问使用者是否动作
[root@zheng001Host home]# ls
redis  t0  t1  www
# 递归删除该目录下所有文件及目录
[root@zheng001Host home]# rm -rf t0

删库跑路:[root@zheng001Host home]# rm -rf /

  1. mv ( 移动文件与目录,或修改名称 )

语法:

[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory

选项与参数:

  • -f :强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
[root@zheng001Host t1]# ls
copy.txt
# 将t1下的文件移到t0文件夹
[root@zheng001Host t1]# mv copy.txt ../t0
# t0文件夹下有同名文件,询问是否覆盖
mv: overwrite '../t0/copy.txt'? y

基本属性

看懂文件属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

1.属性含义

  1. 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档 ( link file );
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
  1. 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
  • [ r ]代表可读(read)
  • [ w ]代表可写(write)
  • [ x ]代表可执行(execute)。

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]

文件类型属主权限属组权限其他用户权限
01-34-67-9
drwxr-xr-x
目录、文件读、写、执行读、写、执行读、写、执行

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

2.更改属性

  1. 修改文件属性

(1)chgrp:更改文件属组

chgrp [-R] 属组名 文件名

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

(2)chown:更改文件属主,也可以同时更改文件属组

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

(3)chmod:更改文件9个属性

chmod [-R] xyz 文件或目录

Linux文件属性有两种设置方法,一种是数字,一种是符号。

r:4     w:2         x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= — = 0+0+0 = 0
[root@zheng001Host test]# ls -l
total 8
drwxr-xr-x 2 root root 4096 Aug 28 22:34 t0
drwxr-xr-x 2 root root 4096 Aug 28 22:34 t1
# 更改文件夹t0属组
[root@zheng001Host test]# chgrp -R www t0
[root@zheng001Host test]# ls -l
total 8
drwxr-xr-x 2 root www  4096 Aug 28 22:34 t0
drwxr-xr-x 2 root root 4096 Aug 28 22:34 t1
# 更改文件夹t0属主
[root@zheng001Host test]# chown -R www t0
[root@zheng001Host test]# ls -l
total 8
drwxr-xr-x 2 www  www  4096 Aug 28 22:34 t0
drwxr-xr-x 2 root root 4096 Aug 28 22:34 t1
# 更改文件9个属性
[root@zheng001Host test]# chmod -R 775 t0
[root@zheng001Host test]# chmod -R 000 t1
[root@zheng001Host test]# ls -l
total 8
drwxrwxr-x 2 www  www  4096 Aug 28 22:34 t0
d--------- 2 root root 4096 Aug 28 22:34 t1

查看文件

概述

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容

  • tac 由最后行开始显示文件内容

  • nl 显示的时候,顺道输出行号!

  • more 一页一页的显示文件内容

    • 空白键 (space):代表向下翻一页;
    • Enter :代表向下翻『一行』;
    • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
    • :f :立刻显示出档名以及目前显示的行数;
    • q :代表立刻离开 more ,不再显示该文件内容。
  • less 一页一页的显示文件内容,还可以往前翻页!

    • 上下键翻动
    • /字串 :向下搜寻『字串』的功能;
    • ?字串 :向上搜寻『字串』的功能;
      • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • head 只看头几行

  • tail 只看尾巴几行

# 查看ifcfg-eth0文件的前2行
[root@zheng001Host network-scripts]# head -n 2 ifcfg-eth0 

拓展:Linux 链接概念

硬链接:假设B是A的硬链接,那么他们指向同一个文件!A删除,B仍然存在可用。

软链接:同样B是A的硬链接,他们类似于快捷方式!A删除,B则无法访问。

ln 源文件名 链接名
  • -s:默认是硬链接,加s为软链接

Vim使用

  1. 三种使用模式

基本上 vi/vim 共分为三种模式,分别是命令模式输入模式底线命令模式

不存在该文件为添加该文件,存在则为编辑。

命令模式:

用户启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。(实操中为任意键)
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

输入模式:

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • w 保存文件(wq可组合使用)
  • ESC键可随时退出底线命令模式,进入命令模式

在这里插入图片描述

命令说明
a/i/o进入输入模式
n+20 > 空格向后移动20个字符
n+20 > enter向下移动20行
x删除光标后1个字符
x20删除光标后20个字符
dd删除光标那1行
20dd删除光标行开始下20行
yy复制光标那1行
20yy复制光标行开始下20行
y0复制从光标开始到行首
y$复制从光标开始到行尾
p粘贴到光标后
u撤销一个动作
[ctr]+r恢复一个动作
:w保存
:q退出
:q! /ZZ修改了但不想保存,强制退出
:set nu显示行号
:set nonu取消行号
/word向下搜索word字符串
?word向上搜索word字符串

账号管理

  1. 添加账号 useradd
useradd 选项 用户名

参数说明:

  • 选项 :

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。( root )
    • -G 用户组,用户组 指定用户所属的附加组。
    • -m 使用者目录如不存在则自动建立。( **/home/**zheng01 )
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
 # 此命令创建了一个用户zheng01
[root@zheng001Host home]# useradd -m zheng01
[root@zheng001Host home]# ls
redis  www  zheng01
 #增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
  1. 删除帐号

删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名
  • 常用的选项是 -r,它的作用是把用户的主目录一起删除。
[root@kuangshen home]# userdel -r zheng01

此命令删除用户zheng01在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

  1. 修改帐号

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

例如:

# usermod -s /bin/ksh -d /home/z –g developer kuangshen

此命令将用户kuangshen的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

  1. Linux下如何切换用户

1.切换用户的命令为:su username 【username是你的用户名】

2.从普通用户切换到root用户,还可以使用命令:sudo su

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

  • $表示普通用户
  • #表示超级用户,也就是root用户
[root@zheng001Host home]# useradd testuser -m
[root@zheng001Host home]# ls
redis  testuser  www
# 切换用户
[root@zheng001Host home]# su testuser
# 退回原来的用户
[testuser@zheng001Host home]$ exit
exit
[root@zheng001Host home]# 

  1. 用户口令的管理

命令的格式为:

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。
[root@zhengHost home]# ls
redis  testuser  www
[root@zhengHost home]# passwd testuser
# 输入新密码
Changing password for user testuser.
New password: 
# 密码太简单,当仍然可通过
BAD PASSWORD: The password is shorter than 8 characters
# 再次输入新密码
Retype new password: 
passwd: all authentication tokens updated successfully.

用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对**/etc/group**文件的更新。

  1. 增加一个新的用户组使用groupadd命令
groupadd 选项 用户组

可以使用的选项有:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

实例1:

# groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

实例2:

# groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

  1. 如果要删除一个已有的用户组,使用groupdel命令
groupdel 用户组

例如:

# groupdel group1

此命令从系统中删除组group1。

  1. 修改用户组的属性使用groupmod命令
groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字
# 此命令将组group2的组标识号修改为102。
groupmod -g 102 group2

# 将组group2的标识号改为10000,组名修改为group3。
groupmod –g 10000 -n group3 group2
  1. 切换组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。

拓展:文件说明

  • /etc/passwd 用户管理工作涉及的最重要的一个文件,可查看每个用户

    Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

    这个文件对所有用户都是可读的。

    [root@zhengHost /]# head -n 3 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    # 用户名:口令(密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell
    # “主目录”,也就是用户的起始工作目录
    # “登录Shell”,用户登录后,要启动一个进程,负责将用户的操作传给内核
    
  • /etc/group 用户组的所有信息

    [root@zhengHost /]# head -n 3 /etc/group
    root:x:0:
    bin:x:1:
    daemon:x:2:
    #组名:口令:组标识号:组内用户列表
    

磁盘管理

概述

Linux磁盘管理常用命令为 df、du。

  • df :列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量
  1. df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示
[root@zhengHost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        926M     0  926M   0% /dev
tmpfs           944M   16K  944M   1% /dev/shm
tmpfs           944M  468K  944M   1% /run
tmpfs           944M     0  944M   0% /sys/fs/cgroup
/dev/vda1        20G  8.2G   11G  45% /
tmpfs           189M     0  189M   0% /run/user/0
  1. du

查看使用空间的,与df命令不同的是该命令是对文件和目录磁盘使用的空间的查看

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;
[root@zhengHost home]# du -ah
  1. 磁盘挂载与卸除

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”

Linux 的磁盘挂载使用mount命令,卸载使用umount命令。

磁盘挂载语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

测试

# 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6

磁盘卸载命令 umount 语法:

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
  • -n :不升级 /etc/mtab 情况下卸除。

进程管理

  1. 命令 ps

查看当前系统中正在执行的各种进程的信息!

ps -aux:

  • -a 显示当前终端运行的所有的进程信息
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数
  • | 管道符,可以把A命令的结果操作B命令
# 查看关于mysql的进程
# grep:过滤的命令
[root@zhengHost /]# ps -aux|grep mysql
root        1585  0.0  0.1 222400  3528 ?        S    Aug28   0:00 /bin/sh /www/server/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/www/server/data --pid-file=/www/server/data/zheng001Host.pid
mysql       2296  0.0 10.2 968316 198356 ?       Sl   Aug28   0:19 /www/server/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/www/server/mysql --datadir=/www/server/data --plugin-dir=/www/server/mysql/lib/plugin --user=mysql --log-error=zheng001Host.err --open-files-limit=65535 --pid-file=/www/server/data/zheng001Host.pid --socket=/tmp/mysql.sock --port=3306
root       16111  0.0  0.0 221460   840 pts/1    R+   17:53   0:00 grep --color=auto mysql

**ps -ef:**查看父进程信息

**pstree:**树结果查看

  • -p 显示父id
  • -u 显示用户组
  1. 结束进程
# 表示强制结束该进程
kill -9 进程id

防火墙配置

# 查看已开启的端口
firewall-cmd --list-ports
# 查看firewall服务状态
systemctl status firewalld

# 开启firewalld.service服务
service firewalld start
# 重启firewalld.service服务
service firewalld restart
# 关闭firewalld.service服务
service firewalld stop

# 查看防火墙规则
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service

命令含义:

  • –zone #作用域
  • –add-port=80/tcp #添加端口,格式为:端口/通讯协议
  • –permanent #永久生效,没有此参数重启后失效
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值