原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html

一、Linux的基本原则

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

二、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的缩写

标准密码:

  1. 使用4种类别字符中至少3种
  2. 足够长,大于7位
  3. 定期更换
  4. 循环周期足够大
  5. 使用随机字符串

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个:

  1. 用户命令:所有用户都可以使用的命令
  2. 系统调用
  3. 库调用
  4. 特殊文件(设备文件)
  5. 文件格式(配置文件的语法)
  6. 游戏
  7. 杂项: Miscelianeous
  8. 管理命令

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的更多相关文章

  1. [原创]Linux下网络性能测试Netperf工具介绍及安装

    [原创]Linux下网络性能测试Netperf工具介绍及安装 1 官方网站 http://www.netperf.org/netperf/ 2 Netperf介绍 Netperf是一种网络性能的测试工 ...

  2. (原创)linux下Microsoft/cpprestsdk支持https(server)

    原创,转载请标明源地址 之前看网上一堆的资料说Microsoft/cpprestsdk不支持https或者说只支持window下的https,差点就被误导了,没办法,只好自己去翻了下源代码 先说明下l ...

  3. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

  4. [原创] linux课堂-学习笔记-目录及概况

    本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分 ...

  5. [原创]linux简单之美(一)

    原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...

  6. [原创]linux简单之美(二)

    原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: section . ...

  7. [原创]linux简单之美(三)

    原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db sectio ...

  8. [原创] linux deepin 2014.1下编译putty

    在网上找了很久,都没有找到linux下直接可以用的putty程序,最终在putty官网找到了源代码 点击下载 把源代码下载回来. 1.下载源代码 2.安装依赖库 如果系统中没有安装过libgtk2.0 ...

  9. zzw原创-linux下ftp ipv6的unknown host 问题

    在linux 的ipv6的情况下进行ftp时,碰到unknown host 问题 1.[a4_csbdc@bdc8165 ~]$ cat  /etc/issueRed Hat Enterprise L ...

随机推荐

  1. protocol buffers vs json vs XML

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com   在分布式系统中,数据序列化传递的情形非常常见,主流的三种,JSON.XML.Protobuf.   XML现在 ...

  2. 【java】jstack

    介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jsta ...

  3. 提高(Android)开发效率的工具与网站

    Dev_Tools 写这篇不是为了"水",是因为有些工具确实不错,但是换个电脑要找到或者在某个时候你想用但是你只知道存在了书签里.然后就只能下载chrome然后登录账户同步书签了. ...

  4. Qt5 开发 iOS 应用之访问 SQLite 数据库

    开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1   源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...

  5. ASP.NET MVC Anti-XSS方案

    1:Form提交模式 在使用Form提交时,MVC框架提供了一个默认的机制.如果数据中含有恶意字,则会自动转向出错页面.   2:Ajax+JSON提交模式. MVC框架未提供对于Json数据的Ant ...

  6. ElasticSearch 5学习(4)——简单搜索笔记

    空搜索: GET /_search hits: total 总数 hits 前10条数据 hits 数组中的每个结果都包含_index._type和文档的_id字段,被加入到_source字段中这意味 ...

  7. YYModel 源码解读(二)之NSObject+YYModel.h (5)

    好了,之前的博文中详细的解释了一些辅助的类和辅助的函数,接下来就是使用它们来实现酷炫功能的时候,正所谓磨刀不误砍柴工啊 我们先把总的功能罗列出来 1. json转字典              + ( ...

  8. PHP实现查询Memcache内存中的所有键与值

    使用Memcache时,我们可以用memcache提供的get方法,通过键查询到当前的数据,但是有时候需要查询内存中所有的键和值,这个时候可以使用下面的代码实现: <?php /** * Cre ...

  9. 线上bug的解决方案--带来的全新架构设计

    缘由 本人从事游戏开发很多年一直都是游戏服务器端开发. 因为个人原因吧,一直在小型公司,或者叫创业型团队工作吧.这样的环境下不得不逼迫我需要什么都会,什么做. 但是自我感觉好像什么都不精通..... ...

  10. 给jquery-validation插件添加控件的验证回调方法

    jquery-validation.js在前端验证中使用起来非常方便,提供的功能基本上能满足大部分验证需求,例如:1.内置了很多常用的验证方法:2.可以自定义错误显示信息:3.可以自定义错误显示位置: ...