[原创]Linux-day1
原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html
一、Linux的基本原则
- 由目的单一的小程序组成:组合小程序完成复杂任务
- 一切皆文件
- 尽量避免捕获用户接口
- 配置文件保存为纯文本格式
二、Linux基本认识
1. 接口
GUI接口: 图形接口 Graphic User Interface
CLI接口: 命令提示符, prompt, bash(shell)
- #:root
- $:普通用户
2. 命令格式
命令格式为: 命令 选项 参数
选项:
短选项:- 比如:-l,-a...
多个选项可以组合:-a -b = -ab
长选项:--
一般不能组合
参数:命令的作用对象
PS: Linux严格区分大小写
3. 用户认证
修改密码: #passwd
切换用户: su 用户名
su 是switch user的缩写
标准密码:
- 使用4种类别字符中至少3种
- 足够长,大于7位
- 定期更换
- 循环周期足够大
- 使用随机字符串
PS:当然,不按上面标准也可以,比如我的密码设123
Login: 用户名 用户ID
认证机制:Authentication
授权:Authorization (权限分配)
审计:Audition (日志)
PS:这些先了解,以后会讲……
三、Linux的基本命令
1. pwd ls ls -l
pwd: 显示当前目录
ls: 显示当前目录下的文件
ls -l: 显示完整信息 (ls: list l:long 当前目录下文件的完整信息)

2. 文件类型
大家会发现用#ls -l 命令时会出现-rw-r--r--,这是什么鬼?
这里一共有10个字符,第一个表示文件类型,后9个表示文件权限
文件类型:
- -: 普通文件 (f)
- d: 目录文件
- b:块设备文件(block)
- c:字符设备文件(character)
- l:符号设备文件(symbolic link file)
- p:命令管道文件(pipe)
- s:套接字文件(socket)
接下来分析下面这些分别是什么意思。

- 文件权限: 9位,每3位一组,每一组分别是:rwx(读,写,执行), -表示:不能。比如:rw- 表示能读能写不能执行
- 文件硬链接的次数(以后讲)
- 文件的属主(owner)
- 文件的属组(group)
- 文件的大小(size): 单位是字节
- 时间戳(timestamp): 最近被修改的时间
PS:每个文件都有3个timestamp
- 最近被访问的时间 access
- 最近被修改的时间 modify 改变文件内容
- 最近被改变的时间 change 改变文件属性/元数据
你可能会问:被修改的时间和被改变的时间有毛线不同?
其实一个文件有两种数据
- 文件自身数据
- 文件元数据 (metadata)
比如:只改文件名,文件内容不变,GET IT?
3. 命令 -h/-a/./../-A/-d/-R/-r
-h: 做单位转换

-a: 显示以. 开头的隐藏文件
. : 表示当前目录
..: 表示父目录

-i : 显示文件的缩影结点号(文件唯一的一个数字标志符) i 是index node的缩写
-R: 递归显示(recursive)
-r :逆序显示

4. cd/type
cd: 切换当前工作目录
- cd :不加目录,则回到家目录/主目录
- cd ~USERNAME :进入指定用户的家目录
- cd - :在当前目录和前一次所在的目录之间来回切换

type: 显示命令属于哪种类型
命令有分为哪几种类型?
命令类型:
- 内置命令(shell内置)
- 外部命令: 在文件系统的某个路径下有一个与命令名称相应的可执行文件
看下面这个图就肯定懂了!

5. printenv/hash/useradd
printenv: 打印环境变量

数据太多,忽略一部分……
重点注意下这里的PATH变量:(以冒号分开的路径)

作用:执行命令时,在PATH依次查找,直到第一次找到为至
那么问题来了,要知道系统的命令是很多的,如果一个程序包含很多命令,那每次执行命令都去PATH找,这很浪费时间啊!!
解决:若第一次命令在PATH找到,把命令和对应路径缓存下来(可以用hash命令查看),第二次执行同一命令则不再到PATH找
好,接下来说说hash命令
hash: 把之前的命令和路径缓存下来。
哈希表:查找速度快。 为什么要用哈希表呢,这和算法效率有关了。有机会再说吧。

useradd: 创建用户与切换用户

6. date/man
date: 时间管理

奇怪,怎么会有两种时间,而且时间还不一样?
其实Linux 有两种时间:
- 硬件时钟 clock
- 系统时钟 date
具体怎么修改时间我下面会说……
获得命令使用帮助:
- 内部命令:help command
- 外部命令: command --help
- 查看命令手册(manual) : man command
- 显示命令的摘要信息,以及出现的章节: whatis command
- 在线文档: info command (文档位于:/usr/share/doc目录下)
下面是一部分测试实例:


(按q退出)
以大家勤学好学的奋斗精神,难道不应该问上面man cd下面的BASH_BUILTINS(1)是什么意思!
BASH_BUITINS:说明cd 是bash shell的一个内部命令;而1又是什么东西?
首先要知道
man 是分章节的,常见章节有以下8个:
- 用户命令:所有用户都可以使用的命令
- 系统调用
- 库调用
- 特殊文件(设备文件)
- 文件格式(配置文件的语法)
- 游戏
- 杂项: Miscelianeous
- 管理命令
man命令手册中的名词:
- NAME: 命令名称及功能简要说明
- SYNOPSIS:用法说明,包括可用的选项
- DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
- OPTIONS:说明每一个选项的意义
- FILES:此命令相关的配置文件
- BUGS:
- EXAMPLES:使用示例
- SEE ALSO:另外参照
翻屏:
- 向后翻一屏:SPACE
- 向前翻一屏:b
- 向后翻一行:ENTER
- 向前翻一行:k
查找:
- /KEYWORD: 向后找
- ?KEYWORD: 向前找
n:下一个
N:前一个
q : 退出

上图中date[...|...] 中的[] 及|等又是什么意思呢?
- [ ] 可选的
- <>必须选用的
- … 可以出现多次
- | 多选 一
- { } 分组
对了,我之前有说过要修改时间的,这很简单,根据上图就可以了,我们来试试

我觉得能这样意义重大,这意味着我们可以通过man命令查看相关信息,修改/输出相关数据!
比如下面:

前面说了好多关于man命令的,让我们赶紧进入下一个点。(妈呀,第一次写怎么长的博客……)
7. hwclock -w/hwclock -s/cal
- hwclock -w: 将系统时间同步到硬件,以系统为准
- hwclock -s: 将硬件时间同步到系统,以硬件时间为准

读取时间:

cal: 查看日历 (是calendar的缩写)

三、练习与作业
练习1:
1.echo是内部命令还是外部命令
2.其作用
3.如何显示"The year is 2016. Today is 17" 为两行?
练习2:
1.print是内部命令还是外部命令
2.其作用
3.如何显示"The year is 2016. Today is 17" 为两行?
练习3:
file命令及其用法??
欲知后事,下回分解
[原创]Linux-day1的更多相关文章
- [原创]Linux下网络性能测试Netperf工具介绍及安装
[原创]Linux下网络性能测试Netperf工具介绍及安装 1 官方网站 http://www.netperf.org/netperf/ 2 Netperf介绍 Netperf是一种网络性能的测试工 ...
- (原创)linux下Microsoft/cpprestsdk支持https(server)
原创,转载请标明源地址 之前看网上一堆的资料说Microsoft/cpprestsdk不支持https或者说只支持window下的https,差点就被误导了,没办法,只好自己去翻了下源代码 先说明下l ...
- [原创] Linux下几种文件传输命令 sz rz sftp scp介绍
Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...
- [原创] linux课堂-学习笔记-目录及概况
本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分 ...
- [原创]linux简单之美(一)
原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...
- [原创]linux简单之美(二)
原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: section . ...
- [原创]linux简单之美(三)
原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db sectio ...
- [原创] linux deepin 2014.1下编译putty
在网上找了很久,都没有找到linux下直接可以用的putty程序,最终在putty官网找到了源代码 点击下载 把源代码下载回来. 1.下载源代码 2.安装依赖库 如果系统中没有安装过libgtk2.0 ...
- zzw原创-linux下ftp ipv6的unknown host 问题
在linux 的ipv6的情况下进行ftp时,碰到unknown host 问题 1.[a4_csbdc@bdc8165 ~]$ cat /etc/issueRed Hat Enterprise L ...
随机推荐
- Goodbye2014,Hello2015
正如我在研发会议上说的,总结是为了更好的计划:而计划,则是让你做事有目标,有方向:有了目标和方向,你才能真正把事情做成! 总的来说2014年可以归纳为下图: 2014年总结 一年的活动,基本可以归纳为 ...
- ABP框架 - 功能管理
文档目录 本节内容: 简介 关于 IFeatureValueStore 功能类型 Boolean 功能 Value 功能 定义功能 基本功能属性 其它功能属性 功能层次 检查功能 使用Requires ...
- C#异常处理经验(原则与方法)
本文是异常处理经验性的文章,其实跟C#关系也不大.比较适合刚刚熟悉异常语法,而缺乏实战的读者.当然,经验老练的读者也可指出不足.给予意见.补充说明,一起完善文章,分享更多知识与经验. 1 ...
- Javascript刷题 》数组求和
计算给定数组 arr 中所有元素的总和 输入描述: 数组中的元素均为 Number 类型 输入例子: sum([ 1, 2, 3, 4 ]) 输出例子: 10 解题方法 1.定义一个变量,将前面的和后 ...
- <a>与文件下载-(下载一)
<a>可直接下载xls,doc,rar,zip,exe,js文件(图片跟txt文件是直接打开的) <a href="wKioJlJolKeCIzkCADd3Wf7OPI42 ...
- 【原】使用Bmob作为iOS后台开发心得——查询关联关系(BmobRelation)
本文转载请注明出处 —— polobymulberry-博客园 简介 Bmob中的数据关联分为Pointer和Relation两种(数据关联在我开发app过程中使用还是很频繁的,也算个难点.虽然之前没 ...
- 《ES6基础教程》之 map、forEach、filter indexOf 用法
1,map,对数组的每个元素进行一定操作,返回一个新的数组. var oldArr = [{first_name:"Colin",last_name:"Toh" ...
- Android消息传递之EventBus 3.0使用详解
前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...
- .NET Core的文件系统[1]:读取并监控文件的变化
ASP.NET Core 具有很多针对文件读取的应用.比如我们倾向于采用JSON文件来定义配置,所以应用就会涉及针对配置文件读取.如果用户发送一个针对物理文件的HTTP请求,应用会根据指定的路径读取目 ...
- JSON(及其在ajax前后端交互的过程)小识
一. json介绍 json是一种轻量级的数据交换格式,规则很简单: 并列的数据之间用逗号(,)分隔: 映射用冒号(:)表示: 并列数据的集合(数组)用方括号([])表示: 映射的集合(对象)用大括号 ...