linux学习笔记002

Linux基础知识

交互的两种Shell:

GUI: Graphic User Interface 图像用户桌面:Windows;X-Window linux的桌面三个主机显示器分(x是图形显示协议)Gnome  ,KDE , Xface。

CLI: Command Line Interface 命令行界面, sh ,bash, csh ,ksh ,zsh, tcsh

 bell实验室研发的shell

 

IDE:Integrated Development Environment 开发集成环境

 

Windows上动态库以dll(Dynamic LinkLibrary) linux上的动态共享文件以so结尾

 

login:

 用户名:用户ID 计算机能处理的最快的是数字

 

认证机制:Authentication

授权:Authorization

审计:Audition (日志)

 

prompt,命令提示符:

命令:

magic number: 魔数 标志二进制程序的执行格式,执行入口

又名shebang

#!/bin/bash

# command options...  arguments...

选项:

 短选项

 长选项

参数:

文件系统层级标准 FHS

文件名不是文件存放的数据

linux文件管理命令

list: ls

列出,列表

目录:是一个特殊的文件,路径映射

路径:从指定起始点到目的地所经过位置

文件系统:file system

列出指定路径下的文件

 

目录:working directory, current directory

pwd: Printing Working directory

ls

 -l:长格式

  文件类型:

   -:普通文件 (f)

   d:目录文件

   b:块设备文件 (block)

   c:字符设备文件 (character)dev目录下

   l:符号链接文件(symbolic link file)

   p:命令管道文件(pipe)

   s:套接字文件(socket)

  文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--

  文件硬链接的次数

  文件的属主(owner)

  文件的属组(group)

  文件大小(size),单位是字节

  时间戳(timestamp):最近一次被修改的时间

   访问:access

   修改:modify,文件内容发生了改变

   改变:change,metadata,元数据发生了改变

 -h:做单位转换humanread 默认是k

 -a: 显示以.开头的隐藏文件

  . 表示当前目录

  .. 表示父目录

 -A 显示出除开. ..目录

 -d: 显示目录自身属性 ls-ld /root 显示root自身属性

 -i:index node, inode 文件索引节点号 ls -i

 -r: 逆序显示 ls -r

 -R: 递归(recursive)显示

 

cd: change directory

 家目录=主目录, homedirectory

 cd~USERNAME: 进入指定用户的家目录 cd ~hadoop

 cd-:在当前目录和前一次所在的目录之间来回切换

hash看缓存

命令类型:

 内置命令(shell内置),内部,内建

 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

 

环境变量:命名的内存空间

 变量赋值

 NAME=Jerry

 

 PATH: 使用冒号分隔的路径

在缓存中找命令,时间复杂度是 O(1)的。

printenv 打印环境变量

type: 显示指定属于哪种类型有内部命令和外部命令之分

ntp 时间服务器

命令手册:manual

man COMMAND

whatis COMMAND 查看命令出现章节

export LANG=en

man分章节:

1:用户命令(/bin, /usr/bin,/usr/local/bin)    所有用户都可以使用的命令

2:系统调用

3:库用户    库调用

4:特殊文件(设备文件) 设备文件都是特殊文件  解释特殊文件 例子:man 4  tty

5:文件格式(配置文件的语法)  man 5 passwd

6:游戏

7:杂项(Miscellaneous)man 7 glob

8: 管理命令(/sbin,/usr/sbin, /usr/local/sbin) 只有管理员可以用,会改变硬件属性

<>:必选

[]:可选

...:可以出现多次

|:多选一

{}:分组

MAN:

 NAME:命令名称及功能简要说明

 SYNOPSIS:用法说明,包括可用的选项

 DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义

 OPTIONS:说明每一个选项的意义

 FILES:此命令相关的配置文件

 BUGS:

 EXAMPLES:使用示例

 SEEALSO:另外参照

 

翻屏:

 向后翻一屏:SPACE

 向前翻一屏:bbefore

 向后翻一行:ENTER

 向前翻一行:k

查找:

/KEYWORD: 向后

n: 下一个

N:前一个

?KEYWORD:向前

n: 下一个

N:前一个

q: 退出

 

在线文档:

info COMMAND

 

文档目录:/usr/share/doc

 

 man时间管理例子

date:时间管理 显示时间

date 显示时间

date +%D 月日年 05/19/17

date +%y

date “this year is %y.%nToday is %d.” // %n换行%d是日期

date +%T 小时分钟秒=date +%H:%M:%S

date +%s 是1970年1月1号到当地的时间,通用的时间

改变时间 date 05191406    //5月19号14点06分

再用clock看时间并没有改动

hwclock –w 改硬件时间,根据系统时间

hwclock –s 改系统时间,根据硬件时间

 

Linux: rtc real time clock 硬件时钟,开机从硬件读取时间

 硬件时钟 hwclockclock

 系统时钟 data

 

获得命令的使用帮助:

内部命令:

 helpCOMMAND

外部命令:

 COMMAND --help

man手册练习:

cal: calendar

cal 2013

cal

cal 12 2013

练习:

1、echo是内部命令还是外部命令?

type echo

-n 吃掉换号

-e 启用逃逸字符

特殊字符\n \

2、其作用?

显示一行文本

3、如何显示“The year is2013. Today is 26.”为两行?

echo -e The year is 2013.\n Today is 26.

转义,逃逸

练习:

1、printf是内部命令还是外部命令?

内部命令

type printf

2、其作用?

3、如何显示“The year is2013. Today is 26.”为两行?

printf 默认不换行用\n 换行

file命令及其用法。

Windows: PE 

Linux: ELF 可执行2进制文件格式

 

文件系统:

rootfs: 根文件系统

FHS:Linux

/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)

/dev: 设备文件

 设备文件:

  块设备:随机访问,数据块

  字符设备:线性访问,按字符为单位

  设备号:主设备号(major)和次设备号(minor)

/etc:配置文件

/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME

/root:管理员的家目录;

/lib:库文件

 静态库,  .a

 动态库, .dll,.so (shared object) file可以查看文件格式(LSB shared obeject  -----LSBexecutable)

 /lib/modules:内核模块文件

/media:挂载点目录,移动设备

比如说光盘在/dev/cdrom下只是文件的访问入口不能访问文件,必须关联到文件系统的目录上来,才能被访问到

/mnt:挂载点目录,额外的临时文件系统

/opt:可选目录,第三方程序的安装目录

/proc:伪文件系统,内核映射文件

/sys:伪文件系统,跟硬件设备相关的属性映射文件

/tmp:临时文件, /var/tmp

/var:可变化的文件

/bin: 可执行文件, 用户命令  系统自身启动命令

/sbin:管理命令

/usr:shared, read-only 系统启动后自身基本功能的命令

 /usr/bin

 /usr/sbin

 /usr/lib 存放/usr/bin下/usr/sbin下非公共lib库的内容

 

/usr/local: 第三方软件

 /usr/local/bin

 /usr/local/sbin

 /usr/local/lib

命名规则:

1、长度不能超过255个字符;

2、不能使用/当文件名

3、严格区分大小写

相对路径:                                                              

绝对路径:

 

文件管理

 

目录管理

ls

cd

pwd

mkdir:创建空目录

 -p:parent 一次创建多个目录

 -v:verbose 显示详情

/root/x/y/z

/mnt/test/x/m,y

mkdir -pv /mnt/test/x/m /mnt/test/y

mkdir -pv /mnt/test/{x/m,y}

~USERNAME

命令行展开:

/mnt/test2/

a_b, a_c, d_b, d_c

(a+d)(b+c)=ab+ac+db+dc

{a,d}_{b,c}

 

# tree:查看目录树

删除目录:rmdir (remove directory)

 删除空目录

 -p一条目录

 

文件创建和删除

# touch

 -a  只修改访问时间 默认改为当前的时间

 -m  只修改存取时间 默认改为当前的时间

 -t 用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.[CC]YYMMDDhhmm[.ss]

 -c 如果要修改的文件不存在,此选项使touch不去创建它

touch –m –t201705191417 a 改a文件的修改时间

 

# stat 查看文件详情

创建文件,可以使用文件编辑器

ASCII:

128不同的字符:

 二进制:

 2^6=0,63

 2^7=0,127

  0000000 - 12017/2/1211 1111

ASCII: 

0000 1001: t

2^16: 65536

标准:GB18030, GBK, GB2312,Unicode

0000 1001 0000 1110:上, 卫

nano

删除文件:rm

 -i 交互式

 -f 强行删

 -r 删目录

 

rm -rf /

\rm 使用命令本身 type rm 查看命令类型或者别名的意思

创建目录练习:

1、创建目录

(1)在/mnt下创建boot和sysroot;

mkdir /mnt{boot,sysroot}

(2)在/mnt/boot下创建grub;

mkdir /mnt/grub

(3)在/mnt/sysroot下创建proc, sys,bin, sbin, lib, usr, var, etc, dev, home, root, tmp

mkdir /mnt/sysroot{proc, sys, bin, sbin,lib, usr, var, etc, dev, home, root, tmp}

 a)在/mnt/sysroot/usr下创建bin, sbin,lib

mkdir /mnt/sysroot/usr{bin, sbin, lib}

 b)在/mnt/sysroot/lib下创建modules

mkdir /mnt/sysroot/lib/modules

 c)在/mnt/sysroot/var下创建run, log,lock

mkdir /mnt/sysroot/var{run, log, lock}

 d)在/mnt/sysroot/etc下创建init.d

mkdir /mnt/sysroot/etc/init.d

 

复制和移动文件cp –r z复制文件到已经存在的文件的时候,出现红色闪烁错误

cp: copy cp是别名

cp SRC DEST 普通不复杂目录 目标不存在就重命名,存在就覆盖

 -r R递归复制目录

 -i 交互式

 -f 强行复制

 -p 保留属性列表 原有的属主属组和时间(本来是谁复制谁是属组属主)

 -a:归档复制,常用于备份=-dR和-p

 -L 默认复制链接的时候是复制链接的文件

 -P复制链接的时候是负责链接本身 同-d (no de)

 cp复制链接是复制文件默认

cp file1 file2 file3

一个文件到一个文件

多个文件到一个目录

cp /etc/{passwd,inittab,rc.d/rc.sysinit}/tmp/

mv: move 移动目录的时候不用加其他的选项

移动文件

 

mv SRC DEST

mv -t DEST SRC

 

install 复制文件和指定属性 安装只讲了复制文件 同cp

 -dDIRECOTRY ... :创建目录 install -d /etc/{passwd,inittab,rc.d/rc.sysinit} 创建多个目录

 SRCDEST 复制文件复制过去有执行权限

 -m 指定权限 默认复制过去有执行权限

install -t DIRECTORY SRC... 多个文件复制到一个目录

install -m 制定权限

复制过去有执行权限

只对文件操作

目录管理练习:

1、创建目录/backup

# mkdir -v /backup

2、复制目录/etc至/backup目录中,并重命名为“etc-当前日期”,如etc-2013-02-26;要求保留文件原来的属性,保持链接文件;

cp –r /etc /backup/e

 -r 递归复制

 -p 保持文件的属性

 -d 复制链接的时候保持文件的链接

 

# cp -a /etc /backup/etc-2013-02-28

命令替换

 

3、复制文件/etc/inittab为/tmp/inittab.new,并删除inittab.new文件的后两行;

# cp /etc/inittab  /tmp/inittab.new

# nano /tmp/inittab.new

du、read练习:

1、思考:ls命令是否可以显示某目录的整体大小,即包括其内部的所有文件的整体大小?

2、通过帮助手册,学习使用du命令;

# du

 -s 显示目录整体的大小

 -hhumanreadable

3、通过帮助,学习read命令;

read(选项)(参数)

-p:指定读取值时的提示符;

-t:指定读取值时等待的时间(秒)。

read 1987name   #等待读取输入,直到回车后表示输入完毕,并将输入赋值给变量answer HelloWorld         #控制台输入Hello

echo $1987name  #打印变量 HelloWorld

read -p "输入密码:"-s pwd

echo

echo password read, is "$pwd"

 

变量:内存空间,有名称

变量赋值:

变量替换

其他作业:

描述GPL, BSD, Apache三个开源协定的大体联系及区别。

http://blog.csdn.net/abware/article/details/20997307

 

自由软件

开源协定,版权描述

 

如何获取Linux当前最新的内核版本号?

 www.kernel.org

列出你所了解的Linux发行版,并说明其跟Linux内核的关系。

 Linux, GNU: GNU/Linux, 源代码

 发行版:Fedora,RedHat(CentOS), SUSE, Debian(Ubuntu, Mint), Gentoo(发行版,小型编译),LFS(Linux From Scratch 从头开始编译)

你可能感兴趣的:(linux学习笔记002)