Linux入门基础

来源:互联网 发布:js数组的长度 编辑:程序博客网 时间:2024/06/07 08:05

一、入门基础

1.linux之父:李纳斯.托瓦茨
2.linux是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
3.Linux的设计思想是以网络为核心。
4.服务器使用LAMP(Linux+Apache+Mysql+php)和LNMP(linux+Nginx+Mysql+php)组合。
5.Linux的安装:
我是在linux官方社区找到Ubuntu安装版本,安装在VMware虚拟机上的。
6.在终端中输入ls /会显示系统目录结构。
bin:存放着最经常使用的命令。
boot:存放这启动Linux时使用的一些核心文件,包括连接文件以及镜像文件。
etc:存放所有的系统管理所需要的配置文件和子目录。
home:用户的主目录。
lib:存放着系统最基本的动态连接共享库。
lost+found:一般情况下是空的,当系统非法关机后,会存放一些文件。
media:Linux会把识别的设备挂载到这个目录下面。
mnt:该目录是为了用户临时挂载别的文件系统的。
opt:给主机额外安装软件所摆放的目录。
proc:是一个虚拟目录,是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
tips:这个目录的内容不在硬盘上而在内存里。
root:该目录为系统管理员。
sbin:存放的是系统管理员使用的系统管理程序。
selinux:安全机制。
srv:存放一些服务启动之后需要提取的数据。
sys:文件系统sysfs
其继承了下面三种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpt文件系统。
tmp:存放临时文件。
usr:用户的很多应用程序和文件都存放在此目录。相当于windows中的program files目录。
usr/bin:系统用户使用的应用程序。
usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
usr/src:内核源代码默认的放置目录。
/var:经常被修改的目录放在这个目录下。
注意:/bin,/usr/bin是给系统用户使用的指令。
/sbin,/usr/sbin则是root使用的指令。

二、shell编程

1.分类:cli命令行和GUI图形用户界面。
2.bash:
提示符:#用根用户。 $普通用户
命令组成:命令、选项、参数。
3.切换到root用户下使用:

~$ su -

加- 是切换到一个新的终端
sudo 使用管理员用户身份运行命令
显示当前用户信息:id’
修改当前用户密码:passwd
4.查看主机名:hostname
5.列出当前目录下的所有文件:ls
6.返回内核版本号:uname -r
7.通过tab键自动简化执行;
<1>可以自动补全命令;
<2>可以自动补全文件名。
8.历史记录:通过上下键来浏览曾经执行过的命令,或者history。
!!重复前一个命令
!+字符 重复前一个以“字符”开头的命令
!num 按照历史记录的序号执行命令
!?abc 重复之前包含abc的命令
!-n 重复n个命令之前的那个命令
9.通配符:
*匹配零个或多个
?匹配任意一个字符
[0-9]匹配一个数字范围
[abc]匹配列表里任何字符
[^abc]匹配列表以外字符
10.作业管理
在后台运行进程:命令后添加&
暂停某个程序:ctrl+z
管理后台作业:
jobs 查看所有后台作业
bg 让程序在后台继续运行
fg 把一个程序拉到前台

三、Linux文件系统结构

1.Linux文件系统是一个倒转的单根树状结构。
2.根为“/”
3.文件系统严格区分大小写。
4.路径使用”/”分割。
<一>当前工作目录
每一个shell或系统进程都有一个当前工作目录。
使用pwd命令可以显示当前工作目录。
<二>文件名称(文件和文件夹没有区别)
文件的名称大小写敏感。
名称最多可以为255个字符。
除了正斜线外,都是有效字符。
通过touch命令可以创建一个空白文件或者更新已有文件的时间。
以”.”开头的文件为隐藏文件
<三>列出目录内容
ls命令用来列出目录内容
相关参数:
ls -a 显示所有文件(包括隐藏文件)
ls -l 显示详细信息
ls -R 递归显示子目录结构
ls -ld 显示目录和链接信息
四、查看文件的类型:file命令
五、绝对路径与相对路径:
绝对路径:以“/”开头,递归每级目录直到目标的路径。(不受当前所在工作目录限制)
相对路径:以当前目录为起点,到达目标的路径。(受当前所在目录限制)
Cd命令可以用来切换目录。
上一级目录“..”
当前目录“.”
用户家目录“~”
上一个工作目录“-”

四、Linux系统基础

<一>复制文件、目录
使用cp命令复制文件或目录
cp 源文件 目标文件
常用参数:
-r 递归复制整个目录树
-v 显示详细信息
二、移动、重命名文件或目录:mv
mv 文件 目标目录
如果指定文件名,则可以重命名文件。
<二>创建、删除文件
创建:touch
删除:rm]
常用参数:
-i 交互式
-r 递归的删除包括目录中的所有内容
-f 强制删除,没有警告提示。
<三>创建、删除目录
通过mkdir创建一个目录
通过mrdir删除一个目录,不能删除非空文件夹。
通过rm -r(-f)删除一个非空目录。

五、Linux系统基础之常用命令

<一>日期时间
data: 查看、设置当前系统时间
格式化显示时间:
+%y–%m–%d
hwclock(clock)用以显示硬件时钟时间
cal 查看日历
uptime 查看系统运行时间和负载
<二>输出、查看命令
echo 用以显示输入内容
cat 用以显示文件内容
more 用于翻页显示文件内容(只能向下翻页)
less 用于翻页显示文件内容(带上下翻页)
head 用以显示文件的头几行(默认10行)
-n可以指定显示的行数
tail用以显示文件的末尾几行(默认10行)
-n 指定显示行数
-f 追踪显示文件更新
<三>查看硬件信息
lspci查看pci设备
-v查看详细信息
lsusb查看USB设备
lsmod查看加载的模块(驱动程序)
<四>关机、重启
shutdown关机、重启计算机
格式:shutdown[关机、重启]时间
参数:-h 关闭计算机
-r 重新启动
poweroff立即关闭计算机
reboot立即重启计算机
<五>归档、压缩
zip:用以压缩文件
zip 压缩文件名.zip 被压缩文件名
unzip:用以解压缩文件
unzip 压缩文件名.zip
gzip:用以压缩文件
gzip 压缩文件名
tar:用以归档文件
tar -cvf 归档文件名.tar 文件名
tar -xvf 解开归档文件名.tar
tar -cvzf 文件名.tar.gz 文件名
(归档并压缩,是目前最常用的。)
<六>查找
locate快速查找
(此命令需要预先建立数据库,默认每天更新一次,可以用updatedb手工建立、更新数据库。)
tips:
在使用updatedb时有时会出现下面的错误updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db’。
这是因为权限不够,我们要切换到root用户下,然后再updatedb就可以了。

find 用以高级查找文件、文件夹
find 查找位置 查找参数
例如:
根据文件名或者后缀名查找:
find -name linuxcast
find / -name *.conf
根据权限查找:
find /-perm 777
根据目录查找:
find / -type d
find .-name “a*” -exec ls -l{}\
把所有找出的以a开头的文件结果当成结果传递给ls -l{} \;
find -user/-group 查找属于某个特定用户/组的文件
find -ctime基于修改时间查找文件
find -size基于文件大小
<七>vi、vim编辑器
Ubuntu 默认是没有安装vim的。在输入vim时会出现:

The program 'vim' can be found in the following packages: * vim * vim-gnome * vim-tiny * vim-athena * vim-gtk * vim-noxTry: sudo apt-get install <selected package>

解决办法是:
在命令行输入:

sudo apt-get install vim

1.vim:启动vim编辑器
vim+目标文件路径
2.vim三种模式:
命令模式(常规模式)
vim启动后,默认进入命令模式。任何模式都可以通过esc键回到命令模式。在此模式下可以完成选择、复制、粘贴、撤销等操作。
常用命令:
i 在光标前插入文本
o 在当前行的下面插入新行
dd 删除整行
yy 将当前行的内容放入缓冲区(复制当前行)
n+yy 将n行的内容放入缓冲区
p 将缓冲区中的文本放入光标后(粘贴)
u 撤销上一个操作
r 替换当前字符
/ 查找关键字:
/xxx 往下查找
?xxx 往上
n 下一个
:set hls 打开高亮
:set nohls 关闭高亮

插入模式:
在命令模式中按i键进入插入模式。

ex模式:
在命令模式下按 : 键可以进入。

常用命令:
:w 保存当前修改
:q 退出
:q! 强制退出,不保存修改。
:x 保存并退出,相当于:wq
:set number 显示行号
:!系统命令 执行一个系统命令并显示结果
:sh 切换到命令行,使用ctrl+d切换回vim.
<八>磁盘基本概念
1.基本概念:linder柱面、sector扇区、head磁头。
2.Linux所有设备都被抽象为一个文件,保存在/dev目录下。
3.设备名称一般为:hd[a-z]或sda-z。
4.IDE设备名称为hd[a-z]、SATA、SCSI、SAS、USB等设备。
5.分区概念:
(1)将一个磁盘逻辑的分为几个区,每个区当做独立磁盘,以方便使用管理。
(2)不同分区用:设备名称+分区号
(3)主流分区机制为:MBR和GPT。
(4)MBR主引导机制:应用于绝大多数使用BIOS的PC设备。
(5)特点:
支持32bit和64bit系统。
支持分区数量有限。
只支持不超过2T的硬盘。
只占用了512bit.
(6)主分区:最多只能创建四个主分区。
(7)扩展分区:一个扩展分区会占用一个主分区位置。
(8)逻辑分区:Linux最多支持63个IDE分区和15个SCSI分区。
(9)GPT的特点:
支持超过2T的磁盘。
向后兼容MBR。
必须在支持UEFI的硬件上才能使用。
必须使用64bit系统。
Mac、Linux系统都能支持GPT分区格式。
(10)FDISK分区工具:基于MBR分区工具。
(11)fdisk命令只有具有超级用户权限才能够运行。
(12)使用fdisk -l可以列出所有安装的磁盘及其分区信息
(13)fdisk/dev/sda可以对目标磁盘进行分区操作。
(14)partprobe命令让内核更新分区信息,否则需要重启才能识别新的分区。
(15)/proc/part itions文件也可以用来查看分区信息
6.文件系统
(1)定义:操作系统通过文件系统管理文件及数据,磁盘或区分需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程又称为格式化。
(2)没有文件系统的设备成为裸(raw)设备。
(3)常见的文件系统有(用于windows)FAT32、 NTFS 、(用于Linux)EXT2、 EXT3、 EXT4、 XFS、 HFS等。
(4)文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等。
(5)mke2fs用来创建文件系统。
(6)mke2fs -t 文件系统类型 要创建的硬盘系统分区
常用参数:
-b blocksize 指定文件系统块大小
-c 建立文件系统时检查坏损块
-L label 指定卷标
-j 建立文件系统日志
(7)mkfs:用于创建文件系统,但支撑参数少。
(8)dumpe2fs 查看分区的文件系统详细信息
(9)journal日志
(10)带日志的文件系统(ext3/ext4)拥有较强的稳定性,在出现错误时可以进行恢复。
(11)在使用带日志的文件系统中,会使用一个叫做“两阶段提交”的方式进行磁盘操作。当进行磁盘操作时,文件系统进行以下操作:
<1>文件系统将准备执行的事务具体内容写入日志;
<2>文件系统进行操作;
<3>操作成功后,将事务的具体内容从日志中删除。
(12)E2LABEL:为文件系统添加标签

e2label/dev/sda2 显示sda2的系统标签e2label/dev/sda2 LINUXCASAT 将sda2的系统标签设置为LIUNXCAST

(13)FSCK:用来检查并修复损坏的文件系统
fsck/dev/sda2
常用参数:
-y 不提示而直接进行修复
-t 指定文件系统同类
对于识别为文件的损坏数据,fsck会将该文件放入lost+found目录。
系统启动时会对磁盘进行fsck操作。
7.挂载、使用文件系统
(1)磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用。
(2)windows或mac系统会进行自动挂载,一旦创建好文件系统后会自动挂载到系统上,Windows上称之为c盘、D盘等。
(3)Linux需要手工进行挂载操作或配置系统进行自动挂载。
挂载目录为:/mnt
(4)mount:将格式化好的磁盘或分区挂载到一个目录上
mount /dev/sda1(要挂载的分区) /mnt(挂载点)/
常用参数:
-t 指定文件系统的类型
-o 制定挂载选项‘
ro,rw 以只读或读写形式挂载,默认是rw.
sync 代表不适用缓存,而是对所有操作直接写入磁盘
async 代表使用缓存,默认是async
noatime 代表每次访问文件时不更新文件的访问时间
atime 代表每次访问文件时更新文件的访问时间
remount 重新挂载文件系统
(5)umount:卸载已挂载的文件系统,相当于Windows中的弹出。
umount 文件系统挂载点
umount/dev/sda3 ==umount/mnt
如果出现device is busy报错,则表示该文件系统正在被使用,无法卸载,可以使用一下命令查看使用文件系统的进程:
fuser -m/mnt
也可使用命令lsof查看正在被使用的文件:
lsof/mnt
(6)自动挂载:配置文件/etc/fstab用来定义需要自动挂载的文件系统,
(7)Linux下如何获取帮助
help: –help 或-h
man: 将要获取帮助的命令作为参数运行
man -k 关键字 :可以用来查询包含该关键字的文档
info:以网页的形式显示
doc
8.用户、组
(1)用户是限制使用者或进程可以使用、不可以使用哪些资源。
(2)组用来方便组织管理用户。
(3)每个用户拥有一个UserID,操作系统使用的是用户ID,而非用户名。
(4)每个用户属于一个主组,属于一个或多个附属组。
(5)每个组拥有一个GroupID
(6)每个进程以一个用户身份运行,并受该用户可访问的资源限制。
(7)每个可登陆用户拥有一个指定的shell.
一、用户
1.用户ID为32位,从0开始,限制在60000以下。
2.用户分类:
root用户(ID为0)
系统用户(1-499):没有shell,为某些服务而创建的。
普通用户(500以上)
3.系统中的文件都有一个所属用户及所属组。
4.使用id命令可以显示当前用户信息。
5.使用passwd可以修改用户密码
6.相关文件
/etc/passwd 保存用户信息
/etc/shadow 保存用户密码(加密的)
/etc/group 保存组信息
7.查看登录的用户
whoami 显示当前用户
who 显示有哪些用户已经登录系统
w 显示有哪些用户已登录并且在干什么
8.创建一个用户
useradd nash_su
这个命令会执行以下操作:
(1)在 /etc/passwd中添加用户信息
(2)如果使用passwd创建密码,则将密码保存在/etc/shadow中。
(3)为用户建立一个新的家目录/home/nash_su
(4)将/etc/skel中的文件复制到用户的家目录中
(5)建立一个与用户用户名相同的组,新建用户默认属于这个同名组
常用参数:
-d 家目录
-s 登录shell
-u userld
-g 主族
-G 附属组(最多31个,用“,”分割)
9.修改用户信息:
usermod 参数 username
常用参数:
-l 新用户名
-u 新userid
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登录
-U 解除锁定
10. 删除用户:userdel
userdel nash_su(保留用户的家目录)
userdel -r nash_su(同时删除用户的家目录)
11.组:更方便的归类、管理用户。
创建、修改、删除组
12.权限
(1)定义:权限是操作系统用来限制对资源访问的机制。
权限一般分为读、写、执行。
每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制起来限制 哪些用户、哪些组可以对特定文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与用户的权限一样,用户的权限大,该进程拥有的权限就大。
(2)目录必须拥有执行权限,否则无法查看内容。
(3)UGO模型:
Linux权限是基于UGO模型进行控制:
u代表User,G代表Group,O代表Other。
每一个文件的权限基于UGO进行设置。
权限三个一组(rwx),对应UGO分别设置。
每个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限。
chown改变文件所属用户
chown nash_s fairyLqq
-R 参数递归的修改目录下的所有文件的所属用户
chgrp改变文件的所属组
chgrp nash_s fairyLqq
-R 参数递归的修改目录下的所有文件的所属组
(4)修改权限:
chmod 模式 文件
chmod u+rw fairyLqq
模式为如下格式:
u、g、o分别代表用户、组和其他
a可以代指ugo
+、-代表加入或删除对应权限
r、w、x代表三种权限
以数字方式修改权限,三个权限分别由三个数字表示:
r=4(2^2)
w=2(2^1)
x=1(2^0)
使用数字表示权限时,每组权限分别为对应数字之和:
rw=4+2=6
rwx=4+2+1=7
r-x=4+1=5
所以,使用数字表示UGO权限使用如下方式表示:
chmod 660 fairyLqq ==rw-rw—-

备注:入门视频使用的nah_su的Linux基础,目前已到第十五课时,
地址:http://study.163.com/course/courseMain.htm?courseId=232007

原创粉丝点击