一.Linux目录结构

二.Linux用户介绍

1.Linux用户通常分为两类:

  • 管理员用户(root);

  • 普通用户(类似Windows上的普通用户)。

Linux登录系统后,默认当前所在目录为用户主目录,类似Windows登录系统后,默认的所在目录为桌面。

  • 管理员(root)登录系统后默认目录为/root

  • 普通用户登录系统后默认目录为/home/usernameusername为用户名。 例如:用普通用户jack登录系统后,那么当前所在目录为。/home/jack

 三.Linux 常用命令介绍

pwd 命令

pwd(Print Working Directory ):显示当前所在目录。

例如:用普通用户jack登录系统后,那么当前所在目录为/home/jack

cd 命令

cd(Change Directory): 切换当前目录。

常用特殊目录表示:

  • cd   或 cd ~进入用户主目录;
  • cd / 进入root用户;
  • cd - 返回进入此目录之前所在的目录;
  • cd .. 返回上级目录(若当前目录为"/",则执行完后还在"/";".."为上级目录的意思);
  • cd ../.. 返回上两级目录;
  • cd !$ 把上个命令的参数作为cd参数使用。

例如:切换当前目录为/bin目录。

cd  /bin

ls 命令

ls(list): 列出指定目录列表信息,如果没有参数默认列出当前目录下的所有文件和文件夹(隐藏文件和文件夹除外)。

常见ls命令选项:

  • ll:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

  • ls -a:显示所有文件和文件夹(包括隐藏文件/文件夹)。

黑色:文件  蓝色:目录  绿色框:文件夹

四.Linux 文件操作

创建文件

linux 中创建文件的常用命令是touch,命令格式如下:

touch filename

同时创建多个文件 ,文件名用空格分开

touch file1 file2 ... 

有时可能需要创建一个空的文件的情况。在这种情况下,可以使用touch命令来轻松创建一个空文件。

例如:创建一个新的文件testfile可以使用如下命令。

touch testfile

使用ls命令来查看文件是否创建成功。

ls  testfile

删除文件

Linux中常用的删除文件的命令是rm,使用格式如下:

rm [命令选项] filename

常用命令选项:

  1. -f:强制删除文件或目录;
  2. -r-R:递归处理,将指定目录下的所有文件与子目录一并处理(向下递归一并删除);
  3. -i:删除已有文件或目录之前先询问用户。

例如,删除我们刚刚创建的文件testfile可以使用如下命令。

rm -f testfile

五.Linux 文件夹操作

创建文件夹/目录

Linux中创建文件夹命令是mkdir,命令格式如下:

mkdir [命令选项] dirname

常用命令选项:

-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

例如,创建一个目录如果上层目录目前尚未建立则一并将其创建,目录名分别为:Dir1/Dir2,则可以使用如下命令:

mkdir -p Dir1/Dir2

删除文件夹

Linux中删除文件夹的命令是rmdir或者rm -r,命令格式如下:

rm  -rf  目录名        //删除该目录所有东西以及该目录名

rmdir 目录名        //删除空目录

常用命令选项:-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

例如:将刚刚新创建的文件夹testdir删除可以使用如下命令。

rmdir testdir

Linux 文件拷贝

Linux使用cp命令用来将一个或多个源文件或者目录复制到指定的目录中,命令格式如下:

cp [命令选项] 源文件 目的文件

常用命令选项:

  1. -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  2. -i:覆盖既有文件之前先询问用户;
  3. -p:保留源文件或目录的属性;
  4. -R/r:递归处理,将指定目录下的所有文件与子目录一并处理。

例如:

(1)将当前目录下的一个文件newFile拷贝到一个指定的目录newDir下并重命名为newFileCpy

  cp newFile newDir/newFileCpy

(2)将当前目录下的两个文件newFile1newFile2拷贝到一个指定的目录newDir1

  cp newFile1 newFile2 newDir1

Linux 文件夹拷贝

cp  -r  源目录  目的目录

 常用命令选项: 

  • -r 是递归把源目录下的目录递归进行移动;

例如: 

将当前目录下的一个目录拷贝到指定的目录下

cp -r Dir1 Dir2

Linux 文件移动/重命名

Linux 使用mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中,命令格式如下:

mv [命令选项] 源文件 目标文件

常用命令选项:

  1. -f:强行复制文件或目录,不论目标文件或目录是否已存在;
  2. -i:覆盖既有文件之前先询问用户;
  3. -p:保留源文件或目录的属性;
  4. -R/r:递归处理,将指定目录下的所有文件与子目录一并处理。

例如:

(1)将当前目录下的文件newFile重命名为newFileRename

        mv newFile newFileRename

(2)将当前目录下的文件newFileRename移动到一个指定的目录下

        mv newFileRename Dir

(3)将当前目录下的文件newFileRename移动到一个指定的目录下并重命名为newFile

        mv newFileRename Dir/newFile

Linux 文件夹移动/重命名

mv 参数 源目录 目的目录

 常用参数如下:

  • -f:若目标目录与现有的目录重复,则直接合并现有的目录;
文件查看命令

cat 命令

连续显示文本内容。常用于查看内容较少的文件,因为文件太大时,前面的内容就滚出屏幕,看不到了。

head 命令

查看文件的开头部分的内容。-n用于显示行数,默认为 10。

head -5 文件    查看文件前 5 行

tail 命令

查看文件的最后部分的内容。

修改文件权限

chmod [who] [ + 或 - 或 = ] [mode] 文件名

who 参数如下:

  1. u 表示“用户(user)”,即文件或目录的所有者;
  2. g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户;
  3. o 表示“其他(others)用户”;
  4. a 表示“所有(all)用户”,它是系统默认值。

操作符如下:

  1. +:添加某个权限;
  2. -:取消某个权限;
  3. =:赋予给定权限并取消其他所有权限。

mode 参数如下:

  1. r 可读;
  2. w 可写;
  3. x 可执行。

多个用逗号隔开 

数字设定法具体命令如下:

chmod [mode] 文件名

mode 为具体的数字。

首先了解用数字表示的属性的含义:0 表示没有权限,1 表示可执行权限,2 表示可写权限,4 表示可读权限,其顺序是 u、g 和 o。分别为所有者、同组用户、其他用户。

例如:

将文件testFile的所有权限设置为可读可写,同组用户权限设置为只读

chmod u=rw,g=r testFile

修改目录权限

同上,只是多加一个 -R

例如:

将目录testDir的其他组用户权限添加可执行权限,同时递归的将该目录下的所有文件或目录都添加可执行权限

chmod -R o+x testDir

修改文件所有者

chown 用户名/用户ID 文件名

 chown必须以root权限才能执行,如果是普通用户想执行chown时,需要在命令前加sudo命令来提升权限为root权限。

修改目录所有者

chown -R 用户名/用户ID 目录名

例如: 

将系统中已存在的目录Dir以及其所有子目录和子文件的所有者设置为newUser

sudo chown -R newUser Dir

 修改文件所属组

chgrp 用户组名/组ID 文件名

 linux中也可以使用chown命令来修改文件的所属组。

chown 用户名/用户名ID:用户组名/组ID 文件名

例如: 

使用chown命令将系统已存在的文件testFile的所有者设置为newUser所属组设置为fzm

sudo chown newUser:fzm testFile

修改目录所属组

chgrp -R 用户组名/组ID 目录名

 linux中也可以使用chown命令来修改目录的所属组。

chown 用户名/用户名ID:用户组名/组ID 目录名

五.用户管理

创建用户

useradd  [命令参数]  用户名

  1. -d<登入目录>:指定用户登入时的启始目录;
  2. -D:查看或变更预设值;
  3. -g<群组>:指定用户所属的群组;
  4. -m:自动建立用户的登入目录;
  5. -M:不要自动建立用户的登入目录;
  6. -s:指定用户登入后所使用的shell。

useradd 必须以 root 权限才能执行,如果是普通用户想创建一个新用户时,需要在命令前加sudo命令来提升权限为 root 权限。

Linux用户信息是保存在 /etc/passwd文件中,我们可以使用命令tail /etc/passwd查看/etc/passwd文件最后几行中

用户密码管理

passwd 参数 用户名

  1. -d 删除密码;
  2. -l 停止账号使用;
  3. -S 显示密码信息。

 passwd必须以 root 权限才能执行,如果是普通用户想执行passwd时,需要在命令前加sudo命令来提升权限为 root 权限。

Linux中用户的登录密码是存放在/etc/shadow文件中,/etc/shadow文件中存放的是加密过后的密码,所以在/etc/shadow文件中看到的密码是加密过后的密文。

第一个冒号前是用户名,用户名是以明文的方式存放。

在第一个冒号和第二个冒号之间存放的是加密过后的密码,密码是以密文的方式存放,其中密文是由用户密码和其它信息加密后组成的,这里不做详细讲解,我们只需要知道如果第一个冒号和第二个冒号之间是*或者!或者空,则表示该用户没有密码,否则,则表示该用户是有密码。

用户登录

su 参数 用户名

 删除用户

userdel 参数 用户名

  1. -f:强制删除用户,即使用户当前已登录;
  2. -r:删除用户的同时,删除与用户相关的所有文件。

 文件管理

六.

创建用户组

groupadd  [命令参数]  参数

常见命令参数: 

  • -g:指定新建工作组的id;
  • -r:创建系统工作组,系统工作组的组ID小于500;

 Linux中用户组信息是保存在/etc/group文件中,我们可以使用命令tail /etc/group命令查看/etc/group文件最后10行中是否存在刚刚新创建的testGroup用户信息。

使用groupadd命令新创建一个用户组Group1,并且指定组的ID

groupadd -g 1111 Group1

删除用户组

groupdel 用户组名

 查看用户所属组

Linux中查看一个用户所属的组两种方法。

使用id命令查看

id  [命令参数]  用户名

常见命令参数:

  • -g或--group:显示用户所属群组的ID
  • -G或--groups:显示用户所属附加群组的ID
  • -n或--name:显示用户,所属群组或附加群组的名称。
 使用group命令查看

groups 用户名

 执行权限:groups命令的执行权限是面向所有用户。不用sudo

修改用户所属组

使用usermod命令修改用户组

如果要一个用户仅仅属于某一个组,而不是同时属于多个组,则使用如下命令:

usermod -g 组名 用户名

 如果要给一个用户添加一个新的组,同时保留原来有所的组,则使用如下命令:

usermod -a -G 组名 用户名

 使用useradd命令创建用户的时候指定用户组

在创建新用户的同时可以修改默认用户所属组,如果想在创建的时候直接将用户所属组修改成系统中已经存在的一个组,而不是使用默认私有组,则使用如下命令:

useradd -g 组名 用户名

 在创建新用户的同时可以为用户添加其它组,如果想在创建新用户的时候为用户添加一个已经存在的组,而不仅只属于默认创建的私有组,则使用如下命令:

useradd -G 组名 用户名

修改用户信息

usermod [命令参数] 参数

常见命令参数:

  • -c<备注>:修改用户帐号的备注文字;
  • -d<登入目录>:修改用户登入时的目录;
  • -e<有效期限>:修改帐号的有效期限;
  • -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
  • -g<群组>:修改用户所属的群组;
  • -G<群组>;修改用户所属的附加群组;
  • -l<帐号名称>:修改用户帐号名称;
  • -L:锁定用户密码,使密码无效;
  • -s:修改用户登入后所使用的shell
  • -u:修改用户ID
  • -U:解除密码锁定。
修改用户组信息

groupmod [命令参数] 参数

常见命令参数:

  • -g<群组识别码>:设置欲使用的群组识别码;
  • -n<新群组名称>:设置欲使用的群组名称。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐