linux-Ubuntu初见(8.13-8.24)

今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。

 

一、Linux系统目录结构:

/bin
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

 

 

重要目录:

/etc:系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

二、Linux文件基本属性:

 

 

 

file type:(第一个字符)

d

目录

-

文件

l

链接文档(link file

b

装置文件里面的可供储存的接口设备(可随机存取装置)

c

装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

 

 

permissions:(接下来九个字符)

以三个为一组,且均为rwx的三个参数的组合。其中,r代表可读(readable),w代表可写(writeable),x代表可执行(executable)。这三个权限的位置不会改变,如果没有权限,会出现减号-。三组分别表示属主权限、属组权限、其他用户权限。

 

user/group name

接下来过一个数字后的两个字符串,第一个标明属主(拥有者),第二个标明属组(拥有者所在用户组)。

 

 

更改文件属性的命令:

(1)chgrp:更改文件属组;

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

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

用法略。

 

三、Linux文件与目录管理

Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。

 

绝对路径与相对路径:

绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。

 

处理目录的常用命令:

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。

 

ls :    不带任何参数运行 ls 命令将列出当前工作目录的内容。

要列出任何目录的内容,例如 /etc 目录使用如下命令 $ ls /etc

常用选项和参数:

-a 全部的文件,连同隐藏文件(开头为.的文件)一起列出来;

-d 仅列出目录本身,而不是列出目录内的文件数据;

-l 长数据串列出,包含文件的属性与权限等等数据;

 

cd:   (一段用法示例)

存在目录 home/hiddener/wow 和 home/hiddener/wow1

初始:

查看当前目录:

退回根目录(返回上两级目录):

使用绝对路径切换到 home/hiddener/wow 目录:

使用相对路径切换到 home/hiddener/wow1 目录:

 

使用绝对路径回到家目录(~’,此处实指home/hiddener

 

返回上一级目录:

 

 

 

pwd:   显示目前所在目录。

 

 

 

mkdir:  创建新目录。

~目录下创建test子目录:

 

~目录下使用-p命令(递归)创建一串目录test1/test2/test3

 

~目录下使用-m命令自定义权限 创建目录test4  

 

(效果:)

 

rmdir:(略)

cp:   拷贝文件和目录;参数-r几乎必加!!

~/test1 全部拷贝至 ~/test 中,并命名为test6

(效果:)

 

 

 

其他参数:

-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;

-u:若 destination 比 source 旧才升级 destination !

 

mv: 移动文件、目录,或修改名称。

~下的test更名为testwow

 

~下的test1移动到~/testwow中:

 

 

 

 

参数:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

 

rm: 移除文件或目录。

 

 

 

-f :强制模式,文件不存在也不会有警告信息(一直加上得了)

-i :啰嗦模式,每干个事都要问你一句

-r :递归删除目录和所有文件,快但是危险。

 

讲了这么多,我还是不会 创!! 建!! 文!! 件!!

> 加路径 即可。

 

 

 

查看文件内容的常用命令:

  • cat  由第一行开始显示文件内容
  • tac  从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl   显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

 

 

 

cat

 

参数:

-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!

-E :将结尾的断行字节 $ 显示出来;

-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;

-T :将 [tab] 按键以 ^I 显示出来;

-v :列出一些看不出来的特殊字符

 

tac

nl

 

其余略。

 

四、Linux用户和用户组管理

进入root用户的方式:

(初次):使用sudo passwd root命令,重设root密码

 

(每次):su命令后输入之前设置的root密码

 

 

输密码时,在终端里是什么都看不到的。但实际上,输进去了。

 

用户账号管理:

常用命令:

useradd 添加账号

userdel 删除账号

usermod 修改账号

passwd 用户口令管理

 

useradd:  新建用户。

创建用户kid 并为其创建一个主目录 /home/kid

 

 

 

参数:

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

 

userdel: 删除用户。

将用户kid和它的主目录一起删除:(-r 删除主目录)

 

 

 

该回显是正常情况。

 

usermod: 修改用户的有关属性,如用户号、主目录、用户组、登录shell等。

参数完全同useradd,略。

 

 

passwd: 管理用户口令。root可以为自己和其他用户指定口令,普通用户只能改自己的。

修改自己的口令:

 

超级用户修改hiddener口令:

 

取消hiddener用户的密码:

 

参数:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。

用户组管理:略。

用户管理最重要的系统文件: /etc/passwd

 

 

/etc/passwd中,每一行记录对应着一个用户,其格式和具体含义为:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell

 

(1)用户名:

不能有冒号(:;最好不要包含点字符(.;不能用连字符(-)和加号(+)打头。

(2)口令:

Linux系统使用了shadow技术,把加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊字符“x”。

(3)用户标识号:

一般情况下与用户名一一对应。

0是超级用户,1-99由系统保留,普通用户的标识号从1000开始。

(4)组标识号:(略)

(5)注释性描述:不知道干嘛的

(6)主目录:用户起始工作目录

(7)登录Shell

用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell

Shell是用户与Linux系统之间的接口。

Linuxshell有许多种,常用的有shBourne Shell),cshC Shell),kshKorn Shell),tcshTENEX/TOPS-20 type C Shell),bashBourne Again Shell)等。

系统管理员可以为用户指定特殊的Shell。系统默认的Shellbash,其字段的值为bin/bash

(8)伪用户(pseudo users

这类用户在/etc/passwd文件中也占有一条记录,但是不能登录,即登录shell末尾为nologin

它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

 

常见伪用户含义:

bin 拥有可执行的用户命令文件

sys 拥有系统文件

adm 拥有帐户文件

uucp UUCP使用

lp lp或lpd子系统使用

nobody NFS使用

 

五、Linux磁盘管理

常用命令:

df(英文全称:disk full):列出文件系统的整体磁盘使用量

du(英文全称:disk used):检查磁盘空间使用量

fdisk:用于磁盘分区

这里只简单介绍df

df:检查文件系统的磁盘空间占用情况。

参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

 

 

 

六、Linux apt命令

apt是一个Ubuntu中的Shell前端软件包管理器。

apt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令;

其需要root权限。

 

apt常用命令:

列出所有可更新的软件清单命令:sudo apt update

升级软件包:sudo apt upgrade

列出可更新的软件包及版本信息:apt list --upgradeable

升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

安装指定的软件命令:sudo apt install <package_name>

安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

更新指定的软件命令:sudo apt update <package_name>

显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

删除软件包命令:sudo apt remove <package_name>

清理不再使用的依赖和库文件: sudo apt autoremove

移除软件包及配置文件: sudo apt purge <package_name>

查找软件包命令: sudo apt search <keyword>

列出所有已安装的包:apt list --installed

列出所有已安装的包的版本信息:apt list --all-versions

 

posted @ 2021-09-11 11:36  hiddener  阅读(51)  评论(0编辑  收藏  举报