分享

Linux入门知识

 BabydSelf 2017-02-25

1.1.Linux特点

开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面(命令界面,图形界面等),出色的速度性能。

1.2.Linux的组成

1、内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。

2、Shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。

3、文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等。

4、应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等。

1.3.Linux发展与未来

现在有很多公司都在使用Linux操作系统,Linux操作系统从桌面到服务器,从操作系统到嵌入式系统,从零散的应用到整个产业都初见雏形 。Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,并且形成了大规模的应用局面。

1.4linux目录结构

1.4.1 linux 基本目录结构

关于Linux的那点事

bin 存放二进制可执行文件(ls,cat,mkdir等)

boot 存放用于系统引导时使用的各种文件

dev 用于存放设备文件

etc 存放系统配置文件

home 存放所有用户文件的根目录

lib 存放跟文件系统中的程序运行所需要的共享库及内核模块

mnt 系统管理员安装临时文件系统的安装点

opt 额外安装的可选应用程序包所放置的位置

proc 虚拟文件系统,存放当前内存的映射

root 超级用户目录

sbin 存放二进制可执行文件,只有root才能访问

tmp 用于存放各种临时文件

usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录

var 用于存放运行时需要改变数据的文件

1.5.linux常用指令介绍

1.5.1. 文件目录操作命令

ls 显示文件和目录列表

-l 列出文件的详细信息

-a 列出当前目录所有文件,包含隐藏文件

mkdir 创建目录

-p 父目录不存在情况下先生成父目录

cd 切换目录

touch 生成一个空文件

echo 生成一个带内容文件 echo abcd>a.txt

cat、tac 显示文本文件内容

cp 复制文件或目录

rm 删除文件

-r 同时删除该目录下的所有文件

-f 强制删除文件或目录

删除文件夹 rmdir 文件夹不能为空

删除文件夹 rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思

mv 移动文件或目录、文件

mv aaa bbb 将aaa改名为bbb

find 在文件系统中查找指定的文件

-name 文件名

wc 统计文本文档的行数,字数,字符数

grep 在指定的文本文件中查找指定的字符串

rmdir 删除空目录

tree 显示目录目录改名树

pwd 显示当前工作目录

ln 建立链接文件

more、less 分页显示文本文件内容

head,tail分别显示文件开头和结尾内容

1.5.2Linux 通道

简单地说,一个通道接受一个工具软件的输出,然后把那个输出输入到其它工具软件。使用UNIX/Linux的词汇,这个通道接受了一个过程的标准输出,并把这个标准的输出作为另一个过程的标准输入。如果你没有重新定向这个输出,这个输出就在屏幕上显示出来。使用一个通道,你可以重新定向这个输出,这样它就变成了另一个工具软件的标准的输入。

例如:grep best /home/* | more

grep 命令在指定文件查找指定字符串

在home目录所有文件下查找best字符 此时的结果可能特别多,要分页。那么使用more可以分页查看

1.6系统管理命令

stat 显示指定文件的相关信息,比ls命令显示内容更多

who 显示在线登录用户

hostname 显示主机名称

uname显示系统信息 d

top 显示当前系统中耗费资源最多的进程

ps 显示瞬间的进程状态

du 显示指定的文件(目录)已使用的磁盘空间的总量

df 显示文件系统磁盘空间的使用情况

free 显示当前内存和交换空间的使用情况

ifconfig 显示网络接口信息

ping 测试网络的连通性

netstat 显示网络状态信息

man 命令帮助信息查询

clear 清屏

kill 杀死一个进程

4.2. 关机/重启命令

shutdown系统关机 shutdown 命令可以安全的关闭Linux系统,shutdown命令必须有超级用户才能执行。Shutdown命令执行后会以广播的形式通知正在系统中工作的所有用户,

- r 关机后重启

- h 关机后不重新启动

- now 立即关机

- 12:30 指定关机时间

halt 关机后关闭电源

reboot 重新启动

1.7 备份压缩命令

gzip 压缩(解压)文件或目录,压缩文件后缀为gz

bzip2 压缩(解压)文件或目录,压缩文件后缀为bz2

tar 文件、目录打(解)包

1.7.1 gzip命令

命令格式:

gzip [选项] 压缩(解压缩)的文件名

参数:

-d 将压缩文件解压。

-l 对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字

-v 对每一个压缩和解压的文件,显示文件名和压缩比。

-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6

1.7.2.bzip2命令

命令格式:

bzip2 [-cdz] 档名

参数:

-d :解压缩的参数

-z :压缩的参数

-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6

1.7.3.tar命令

命令格式:

tar [-cxzjvf] 压缩打包文档的名称 欲打包目录

参数:

-c :建立一个归档文件的参数指令

-x :解开一个归档文件的参数指令!

-z :是否需要用 gzip 压缩?

-j :是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件

-f :使用档名,在 f 之后要立即接档名

-tf :查看归档文件里面的文件

tar -xvzf linux-software-1.3.1.tar.gz

2.用户和组账户管理

linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

2.1. 用户账户

A.普通用户账户:普通用户在系统上的任务是进行普通操作

B.超级用户账户:管理员在系统上的任务是对普通用户和整个系统进行管理。对系统具有绝对的控制权,能够对系统进行一切操作。

1、超级管理员

用root表示,root用户在系统中拥有最高权限,默认下Ubuntu用户的root用户是不能登录的如果想要root登录,可以执行sudo passwd root

2、安装时创建的系统用户

此用户创建时被添加到admin组中,在Ubuntu中,admin组中的用户默认是可以使用sudo命令来执行只有管理员才能执行的命令的。如果不使用sudo就是一个普通用户。

3、普通用户

2.2. 组账户

A. 私有组:当创建一个用户时没有指定属于哪个组,Linux就会建立一个与用户同名的私有组,此私有组只含有该用户。

B.标准组:当创建一个用户时可以选定一个标准组,如果一个用户同时属于多个组时,登录后所属的组为主组,其他的为附加组。

2.3. 账户系统文件

A./etc/passwd

每一行代表一个账号,众多账号是系统正常运行所必须的,例如bin,nobody

每行定义一个用户账户,此文件对所有用户可读。每行账户包含如下信息:

用户名:口令:用户标示号(UID):组标示号(GID):注释:宿主目录(主

文件夹):命令解释器(shell)

root:x:0:0:root:/root:/bin/bash

1、 用户名:

就是账号。用来对应UID。root UID是0口令。

2、 口令:

密码,早期UNIX系统密码存在此字段,由于此文件所有用户都可以读取,密码容易泄露,后来这个字段数据就存放到/etc/shadow中,这里只能看到X。

3、 用户标识号(UID):

系统内唯一,root用户的UID为0,普通用户从1000开始,1-999是系统的标准账户,500-65536是可登陆账号。

4、 组标识号(GID):

与 /etc/group 相关用来规定组名和GID相对应。

5、注释:

注释账号

6、宿主目录:

用户登录系统后所进入的目录root 在/root itcast在:/home/itcast

7、命令解释器:

指定该用户使用的shell ,默认的是/bin/bash

B./etc/shadow

为了增加系统的安全性,用户口令通常用shadow passwords保护。只有root可读。每行包含如下信息:

用户名:口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

root:$6$E3SMKoCF$U.A3zuKnBTCzZS5i.ZzHfzq2R5mk6m0iKtWr0B8QdA1VphZcQPaSqKKQWDA.mkptemLBIKPAw/.kik2287ZiM1:15504:0:99999:7::: itcast:$1$ktRolYMY$Fb0kTjAcNUEceLWMzbj2M/:15470:0:99999:7:::

1、账号名称:

需要和/ etc/passwd 一致。

2、密码:

经过加密,虽然加密,但不表示不会被破解该文件默认权限如下

-rw-r----- 1 root shadow 1196 2012-06-13 05:40 shadow

只有root能都读写。

3、最近修改密码日期:

最后一次修改时间:从1970-1-1起,到用户最后一次更改口令的天数

4、密码最小时间间隔:

最小时间间隔:从1970-1-1起,到用户可以更改口令的天数

5、密码最大时间间隔:

最大时间间隔:从1970-1-1起,必须更改的口令天数

6、密码到期警告时间:

警告时间:在口令过期之前几天通知

7、密码到期后账号宽限时间

8、密码到期禁用账户时间:

不活动时间:在用户口令过期后到禁用账户的天数

9、保留

C./etc/group

用户组的配置文件

root:x:0:

1、 用户组名称

2、 用户组密码

给用户组管理员使用通常不用。

3、 GID

用户组的ID

4、 此用户支持的账号名称

一个账号可以加入多个用户组,例如想要itcast 加入root 这个用户组,将该账号填入该字段即可,root:x:0:root,icast

将用户进行分组是 Linux对用户进行管理及控制访问权限的一种手段。一个

中可以有多个用户,一个用户可以同时属于多个组。该文件对所有用户可读。

D./etc/gshadow

该文件用户定义用户组口令,组管理员等信息只有root用户可读。

root:::root

1、 用户组名

2、 密码列

3、 用户组管理员的账号

4、 用户组所属账号

2.4. 使用命令行工具管理账户

useradd 用户名

useradd –u(UID号)

useradd –p(口令)

useradd –g(分组)

useradd –s(SHELL)

useradd –d(用户目录)

使用usermod修改用户信息

usermod –u(新UID)

usermod –d(用户目录)

usermod –g(组名)

usermod –s(SHELL)

usermod –p(新口令)

usermod –l(新登录名)

usermod –L (锁定用户账号密码)

usermod –U (解锁用户账号)

userdel 用户名 (删除用户账号)

userdel –r 删除账号时同时删除目录

sudo usermod –u 1007 –g group2 –G root thinkpad

将thinkpad用户uid修改为1007,默认组改为系统中已经存在的group2,并且加入到系统管理员(GID 0)组。

组账户维护命令

groupadd 组账户名 (创建新组)

groupadd –g 指定组GID

groupmod –g 更改组的GID

groupmod –n 更改组账户名

groupdel 组账户名 (删除指定组账户)

口令维护命令

passwd 用户账户名 (设置用户口令)

passwd –l 用户账户名 (锁定用户账户)

passwd –u 用户账户名 (解锁用户账户)

passwd –d 用户账户名 (删除账户口令)

gpasswd –a 用户账户名 组账户名 (将指定用户添加到指定组)

gpasswd –d 用户账户名 组账户名 (将用户从指定组中删除)

gpasswd –A 用户账户名 组账户名 (将用户指定为组的管理员)

2.5. 用户和组状态命令

su用户名 切换用户账户

su root

su – root

su 需要了解新切换的用户密码。

id 用户名 显示用户的UID,GID

whoami 显示当前用户名称

groups 显示用户所属组

sudo

cat /etc/sudoers

sudo只需要知道自己的密码,sudo并不是每一个用户都可以执行仅有/ect/sudoers内的用户才能够执行sudo命令。

sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:

sudo能够限制用户只在某台主机上运行某些命令。

sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。

sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)。

sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。

使用root 通过visudo 编辑sudoers

3 远程管理控制ssh

传统的网络服务程序,FTP、POP、telnet 本质上都是不安全的,因为它们在网络上通过明文传送口令和数据,这些数据非常容易被截获。SSH叫做Secure Shell。通过SSH,可以把传输数据进行加密,预防攻击,传输的数据进行了压缩,可以加快传输速度。

3.1. OpenSSH简介

SSH是芬兰一家公司开发。但是受到版权和加密算法限制,现在很多人都使用OpenSSH。OpenSSH是SSH的替代软件,免费。

OpenSSH由客户端和服务端组成。

OpenSSH提供两种级别的验证方式。

(1)基于口令的安全验证:知道服务器的账号密码即可远程登录,口令和数据在传输过程中都会被加密。

(2)基于密钥的安全验证:此时需要在创建一对密钥,把公有密钥放到远程服务器上自己的宿主目录中,而私有密钥则由自己保存。

2.软件安装

sudo apt-cache policy openssh-client openssh-server检查软件是否安装

服务端:sudo apt-get install openssh-server

客户端:sudo apt-get install openssh-client(ubuntu10.10以安装)

OpenSSH服务器的主要配置文件为/etc/ssh/sshd_config,几乎所有的配置信息都在此文件中。

注意:遇到如下如下错误:

Package vim is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

执行:sudo apt-get update

然后继续 sudo apt-get install openssh-server

3.2. Windows 下的SSH客户端

在日常Linux系统管理中,会使用SSH工具连接服务器,之所以SSH连接主要是为了安全,传统的telnet连接方式是以明文传输,很不安全,网络中如果又热窃听抓包,密码将要泄露。在众多SSH连接中,Putty功能强大,配置简单。

Putty正常显示中文,使用putty连接服务器无法显示中文,也不能输入中文字符,显示乱码。此时需要设置环境变量 export LC_ALL=itcast_CN.UTF-8。将当前全部字符集设置为中文,修改putty显示设置 Change Setting – Translation UTF-8

使用WinSCP

Putty做远程管理,上传下载,可以使用WinSCP比较方便。

打开WinSCP程序,直接输入地址、用户名、密码就可以登录Linux系统,

最后:

关于su命令:刚装完linux要用到超级用户模式的时候出现这个错误。

su: Authentication failure

$ su - root

Password:

su: Authentication failure

Sorry.

这时候输入

$ sudo passwd root

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多