Linux教程

Linux基础学习笔记

本文主要是介绍Linux基础学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux基础

Linux基本原则:

1.由目的单一的小程序组成
2.一切皆文件
3.尽量避免捕获用户接口
4.配置文件保存为纯文本格式

GUI接口:
CLI接口:
命令提示符,prompt,bash
#:root
$:普通用户
命令:
命令格式:
命令 选项 参数
选项:
短选项:-
多个选项组合:-a -b = -ab
长选项:–
参数:命命令的作用对象
使用凭证:root centos
虚拟终端(terminal),ctrl+Alt+F1-F6
切换到图像化界面:startx &
su:switch user
#su -l 用户名
#passwd
Shell:
GUI:Graphic User Interface(图形化界面)
CLI:Command Line Interface(命令操作界面)
操作系统结构
IDE:集成开发环境
login:
用户名:用户ID
认证机制:Authentication
授权:Authorization
审计:Audition(日志)

prompt:命令提示符
command options。。。 argument。。。
选项:修改命令执行特性
短选项
长选项
参数:对谁起作用

list:ls 列出,列表
目录:文件,路径映射
列出指定路径下的文件
ls:默认显示当前目录下文件
-l:显示完整信息
文件类型:
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号链接文件(symbolic link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限:9位,每3位一组,每一组:rwx(读,写,执行)
文件硬链接的次数
文件的属主(owner)
文件的属组(group)
文件大小(size),单位是字节
时间戳(timestamp):最近一次被修改的时间
访问:access
修改:modify,修改文件内容
改变:change,改变文件属性
-h:作单位换算
-a:显示以.开拓的隐藏文件
. 显示当前目录
… 显示父目录
-A
-d:显示目录自身属性
-i:索引节点号 index node,iNode
-r:逆序显示
-R:递归显示
cd:change directory
家目录:主目录,home directory
cd -username:进入指定用户的家目录
cd -:在当前目录和前一次所在的目录之间来回切换
命令类型:
内置命令(shell内置)
外部命令:在文件系统e1某个路径下有一个与命令名称相应的可执行文件
环境变量:命名的内存空间
变量赋值
NAME=Jerry
PATH:使用冒号分隔的路径

type:显示指令属于哪一种类型

date 时间管理
Linux:RTC
ntp:网络时间协议

获得命令的使用帮助;
内部命令:help command
外部命令:command –

命令手册:manual command
<>:必选
[]:可选
…:可以出现多次
|:多选一
{}:分组

翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:enter
向前翻一行:k
查找:
/keyword:向后
n:下一个
N:前一个
?KEYWORD:向前
n:下一个
N:前一个

q:退出

在线文档:
info COMMAND

文档:/user/share/doc

google
hwclock:查看时钟
-w:
-s:
文件系统:
rootfs:根文件系统

FHS:文件系统层次标准

/boot:系统启动相关文件,如内核,initrd,以及grup(bootlcader)
/dev:设备文件
块设备:随机访问,数据块
字符设备:线性访问,安字符为单位
设备号:主设备号(major)和次设备号(minor)
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:root用户的家目录在/root下
/lib:库文件
静态库:.a
动态库:.dll,.so(share object)
/lib/modules:内核模块文件
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件,
/var:可变化文件
/bin:可执行文件,用户命令
/sbin:管理命令

/user:shared,read-only
/user/bin
/user/sbin
/user/lib
/user/local

文件管理
目录管理
ls
cd
pwd
mkdir:创建空目录
-p:创建多层目录(会自动创建原本没有的二级目录)
-v:显示详细过程信息
tree:查看目录树
一次性创建/mnt/test/x/m,y
mkdir -pv /mnt/test/{x/m,y}
mkdir -pv /mnt/test/x/m /mnt/test/y
删除目录:rmdir
删除空目录
-p
文件创建和删除
touch
-a
-m
-t
-c
stat
创建文件,使用文本编辑器
nano
删除:rm

运行程序
设备管理
软件管理
网络管理

文件处理:cat,less,head,tail,cut,sort,uniq,grep 正则表达式

目录管理:
ls,cd,pwd,mkdir,rmdir,tree
文件管理:
touch,stat,file,rm,cp,mv,nano
日期时间:
date,clock,hwclock,cal
查看文本:
cat,tac,more,less,head,tail

cat:连接并显示
cat -n 显示行号
cat -E 显示每一行结束符
tac:倒着显示
分屏显示:
more,less
more:向后翻(在没翻到尾部之前,B向前)
less:
head:查看前n行
tail:查看后n行
head -n 1 文件
tail -n 2 文件
tail -f 查看文件尾部,不退出,等待显示后续追加的新内容

文本处理:
cut,join,sed,awk

database:数据库
关系型数据库:
表:二维表

文本文件:
TOM;23;male;2012/05/06

cut:
-d:指定字段分隔符,默认是空格
-f:指定显示的字段
-f 1,3 显示第一个,第三个
-f 1-3 显示第一个到第三个
文本排序:sort:根据字母在ASCII码中的升序进行排序(从第一个字母或数字开始比较)
sort -n 按照数字大小排序
sort -r 逆序
-t 指定字段分隔符 -k指定以第几个为关键字
sort -t -k3 文件 :指定第三个为准比较数值大小
sort -u:相同的行只显示一次
sort -f:忽略字符大小写
uniq:报告并忽略重复出现的行(相邻且一样的行)
-d:只显示重复的行
-D:显示所有重复的行
-c:显示每一行重复的次数
文本统计:wc:显示行数单词数字节数
-l:行数
-w:单词数
-c:只显示字节数
-L:最长的字符包含多少字节

字符处理命令:tr-——转换或删除字符
tr ‘ab’ ‘AB’ :将a换为A,b换为B
tr -d ‘ab’ :删除出现的所有ab

bash及其特性:
shell:外壳
GUI:Gnome,KDE,Xfce
CLI:sh,csh,ksh,bash

进程,程序
进程:在每一个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序执行的实例

用户工作环境:
bash:# ¥
shell,子shell (pstree查看)

bash:
1.命令历史
2.管道,重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名通配
7.变量
8.编程

命令行编辑:
命令光标跳转:
Ctrl+a 调到命令行首;Ctrl+e 跳到命令行尾
ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾
ctrl+l:清屏
命令历史:
history:查看命令历史
history -c:清空命令历史
history -d 500:删除第500个命令历史
history -d 500 10:删除第500个之后10个的命令历史
history -w:保存命令历史至历史文件
环境变量
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小

命令历史的使用技巧:
!n:执行命令中历史中第n条命令
!-n:执行命令历史中的倒数第n条命令
!!:执行上一条命令
!strin执行最近一次以字符串开头的命令
!$:引用前一个命令的后一个参数——》esc之后.

命令补全:
PATH:两下tab键显示全部,一下tab补全唯一的命令
路径补全:一下tab补全,不唯一的话连敲两下tab

命令别名:
alias ddd=‘command 【option】【arguments】
在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围仅为当前shell进程
alias,显示所有命令别名
unalias ddd

\CMD 使用本身命令

命令替换:$(command),反引号`command`

把命令中某个子命令替换为其执行结果的过程

echo “The current directory is $(pwd)

touch ./file-&(deta +%F+%H+%M+%S) 创建以当前时间命名的文件(file-当前时间)

 

bash支持的引号:

``:命令替换

“”:弱引用,可以实现变量替换

‘’:强引用,不完成变量替换

 

文件名通配:

*:匹配任意长度的任意字符    ls a*显示以a开头的文件

?:匹配任意单个字符    ls ?a*

【】:匹配制定范围内的任意单个字符    [a-zA-Z]  ; ls [a-zA-z]*[0-9]显示字母开头,数字结尾

           [^0-9]非数字开头

           [:space:]:空白字符

           [:punct:]:标点符号

           [:lower:]:小写字母

           [:upper:]:大写字母

           [:alpha:]:大小写字母

           [:digit:]:数字

           [:alnum:]:数字和大小写字母

           [[:alpha:]]*[[:alpha:]]:字母开头,字母结尾

 

计算资源:

   权限 

   用户

   用户,容器,关联权限:用户组,方便的指派权限

   权限:r,w,x

文件:

r:可读,可以使用类似cat等命令查看文件内容

w:可写,可以编辑或删除此文件

x:可执行,可以命令提示符下当作命令提交给内核运行

 

目录:

r:可以对此目录执行ls以列出内部所有文件   1

w:可以再次目录创建文件       2

x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件详细信息     4

  用户:UID,/etc/passwd

组:GID,/etc/group

 

影子口令(密码):

用户:/etc/shadow

组:/etc/gshadow

 

用户类别:

管理员:0

普通用户:1-65535

   系统用户:1-499

   一般用户:500-60000

用户组:

管理员组:

普通组:

     系统组:

     一般组:

 

用户组类别:

      私有组:创建用户时,如果没有为其指定所属组,系统会自动为其创建一个与用户同名上午组

      基本组:用户的默认组

      附加组,额外组:默认组以外的其他组

 

进程:tom tom

对象:rwxrw-r--    jerry tom a.txt

进程的用户是tom,属组为tom,该进程发起时用于对象是jerry,使用只能看这个对象的属组,这个对象的属组是tom,和进程的属组是一样的,使用进程只有对对象进行rw-的权限。

 

tom:ls

rwx-xr--x   root  root  /etc/ls

当同名执行ls命令时,由于tom的用户和属组和/etc/ls的用户名和属组都不一样,所以tom只有--x的权限,也就是只能对其执行。

 

cat  /etc/shadow

accont:登录名

password:密码

UID:

GID:基本组ID

command:用户注释信息

HOME DIR:家目录

SHELL:用户默认shell

 

/etc/shadow

accont:登录名

encrypted  password:加密密码

 

加密方法:

    对称加密:加密解密使用同一个密码

    公钥加密:每个密码成对出现,一个为私钥(secret key),一个为公钥(public key)

    单向加密,散列加密(指纹加密):提取数据特征码,做完整性校验

              1.雪崩效应

              2.定长输出

                    MD5:message digest,128位定长输出

                    sha1:secure Hash algorithm,160位定长输出

useradd USERNAME:创建用户名

passwd tom 输入密码:修改用户密码

groupadd GRPNAME:创建用户组

 

用户管理:useradd,usermod,userdel,passwd,cash,finger,id,chage

组管理:groupadd,groupdel,groupmod,gpasswd

权限管理:chown,chgrp,chmod

    

    

 

 

 

 

这篇关于Linux基础学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!