01-   Linux初步

最早一直是单道程序设计模型的操作系统

69年贝尔实验室决定开发多道程序设计模型的操作系统 Multics计划 (失败了)

x86 IA(Intel Architecture) 架构 没法搭建Unix系统

但是Unix家族分支中有Solaris提供了Solaris for x86

Ubuntu:

4月通常为稳定版 10月通常为beta测试版

单数版本官方一般是短期支持 (支持一年

例:

13.10版

13 是短期支持版 10是测试版

02-根目录下重要子目录

打开终端

bin : binary缩写

/bin  ls

绿色代表可执行文件

/boot ls

开机所需要的文件

/cdrom ..不说了

/dev  存放的是设备文件

linux: 所见皆文件

cd dev/input

sudo cat mice

鼠标设备被对应到这个文件上了

每次动鼠标的时候会往这个文件进行写入 确定从哪个像素点挪到哪个像素点

所以鼠标一动 这个就动

乱码的原因是因为里面是二进制文件

/etc ls

保存跟操作系统息息相关重要的配置文件以及用户名和密码相关的信息

03      shell解析器和命令补齐

ctrl + alt + t 直接打开终端

sudo cat shadow:

(/etc)

(最后一行保存了加密过后的用户密码)

/home 存放操作系统的用户

/lib 存放库文件

比如写c语言用到的标准C库 stdio.h(libc.so 的一部分)

libc.so.6 包括stdio.h

ctrl+ shift + + 放大终端字体

ctrl + -       缩小终端字体

/media 扩展目录

存放(第三方磁盘)u盘相关

/mnt

操作系统用于提供手动挂载的位置

比如做驱动开发 会连一个多媒体卡

卡会连操作系统中 默认会连到media下

如果手动挂载可以挂到mnt上

U盘同理

作用都是挂在一个盘

/opt /proc 和操作系统进程相关 暂时先不介绍

/root 一个Unix系统默认会有两个用户 一个是root(管理员) 另一个是你自己

/usr 目录 unix software resource (unix 软件资源管理包)

/var 目录 操作系统提供的用户用来存储文件的目录

log backup 缓存 等等…

shell 是一个命令解释器 根据输入的命令执行相应的命令

unix开发以后有个叫伯恩的人开发了个命令解析器叫shell

后来到linux了 伯恩又给linux开发了个shell叫 Bourne-Again-Shell (Bash)

终端: 输入 输出设备的总称

终端: (虚拟终端) 所有输入输出设备的总称

shell: 命令解析器

bash: borne again shell 命令解析器

ctrl+ p

ctrl+ n

ctrl+ b

ctrl + f

ctrl+ a

ctrl + e

ctrl + u 全部删除

ctrl+ h 向前删除

ctrl + d 向后删除

ls -l

04-软硬链接

cat

more ( space翻一屏 回车翻一行) 不能往前滚

less ( 可以使用↑ ↓实现前后滚动)

head

tail

ln

软连接: (快捷方式)

touch file

ln –s file file.s

如果这样写 那么file.s就指向了相对目录下的file

如果将file.s移动到别的文件夹 就不能访问file了

ln –s /file file.s

通过写一个相对路径的

即使将file.s移动到别的目录下 也可以访问

linux下区分文件是靠文件类型 不是靠扩展名 所以起名file.s或file.soft 都行吧

注意: 创建软连接一定要用绝对路径的方式

创建文件相关的后缀名没有严格要求 (touch a.b.c.d)

创建了一个软连接: 注意查看两个文件的权限 不同。 但是实际读取的时候还是a.b.c.d得权限, 只是访问软连接得权限谁都有。

硬链接:

看一下硬链接:

ls file file.hard

发现除了文件名不一样 包括权限其他都完全一样

对file文件进行修改 发现两个文件能够做到同步 内部变化也是完全一样得

(修改file.hard 也是同步更新)

再新建一个文件ln file file.h

查看这三个文件 进行对比 发现其他都一样 但是硬链接记数不一样了

(权限部分后面的数字变成4了… 这里本来应该是3 自己写的时候 在别的地方多创建了一个)

思考:

硬链接技术的作用?

了解硬链接的原理:

windows下面是没有硬链接的

如果让你实现硬链接你要怎么弄 实现文件完全同步

指针?(指针是内存上的概念、)

它所采用的方式是完全一致的,只不过这个东西不叫指针,它叫inode

linux系统中所有的文件都有一个唯一标识该文件的inode号

既然硬链接的内容可以同步更新,所以它们应该有相同的inode号

stat file

stat file.hard

vi file.h 看起来是操作file.h 但是操作系统认为是操作inode为143692的文件

如果删除文件呢?

rm file 会把 file删掉 会把file.hard删除 会把file.hard删除掉?

rm file 只会把file删除掉

file.hard和file.h没有变 硬链接记数减少

硬链接记数的作用:

硬链接记数用来删除 执行一次rm会把硬链接减少 只有硬链接记数为0的时候才是把文件真正删除掉

inode是在linux系统中唯一标识一个文件的方法

05-文件目录操作其他命令

sudo apt-get install tree

tree 命令:

用树的结构展示当前目录

wc命令: (word count)

行数 字数 字节数 ( 对当前文件进行统计)

行数

字数:

小字:一个字符

大字:一个字被定义为由空白、跳格或换行字符分隔的字符串

wc命令中的字是指大字。

字节数

od命令

( acronym for "octal dump" )

用它去查看一些进制文件

gcc main.c

od –tcx a.out

将ascii字符 翻译为

od –tco a.out

-t select output format or formats

-c same as –t c select printable characters or backslash escapes

-x same as –t x2 select hexadecimal 2-byte units

作用: 嵌入式开发 反汇编..

du、df命令

统计磁盘文件使用的存储情况

du:   disk use

du –h (human readable)

df :   disk free

查看磁盘空间情况

df –h

06-文件属性修改

whoami

chmod

文字设定法

数字设定法

文字设定法

chmod u+x a.b.c.d

chmod g-w a.b.c.d

chmod o+wx a.b.c.d

(user/group/other)

//想设置成 r-xrw---x

chmod u-w,g+w,o-rw a.b.c.d

chmod u=rw,g=rw,o=rwx a.b.c.d

数字设定法:

rwx     rwx     rwx  二进制

4 2 1    4 2 1    421

chmod 775 a.b.c.d

07-修改文件所有者_所属组

chown

ll test.file

sudo chown nobody test.file

ll test.file

(nobody是操作系统自带的用户)

sudo chgrp nogroup test.file

ll test.file

(nogroup 是操作系统自带的组)

添加用户 sudo adduser zhangsan

自己添加的新用户zhangsan 无法使用sudo命令:

vi /etc/passwd:

1001 是用户的uid, 组也有一个uid是1001

添加组

sudo addgroup g5

cat /etc/group

删除以后查看test.file的所有者权限

变成1001了 zhangsan已经没了 但是刚才张三的1001依然存在

这个文件属于1001用户

sudo delgroup g5 然后看一下效果:

用户组是1002了

08-查找和检索命令

用一步来修改用户名和组

sudo chown itcast:nogroup file1

find命令:

找一下sudoers:

sudo find / -name “sudoers”

vi /etc/sudoers

*是一个通配符 找当前目录下以file开头的文件

? 是匹配一个任意字符

对查找的结果集执行-exec ls –l

\; 是转义分号 表示结束标记

(在删除的时候询问 -ok)

查找套接字:

sudo find / -type ‘s’

对于普通文件 用f描述 不用 -

查找文件大小

find / -size -100k

find / -size +100M

find / -size +10k –size -20k

-size这个参数比较奇怪

M 和 G 必须是大写的

k必须是小写的

c代表字节

b代表512字节 一个扇区

一个磁盘盘块的大小

一个扇区512byte

如果我写了一个hello world 40byte 也至少要占用一个扇区

grep:

sudo grep –r “lisi” /etc

-r 递归

(非常实用)

xargs:

find . –type f | xargs file

和exec的区别:

exec会把find查询的结果一次性导入到{} 大括号中

如果数量太大 系统效率就非常低

xargs 分批操作的

注意 如果不加xargs 前面的find…就失效了 最后就相当于就单单执行了 ls -l

find /usr –name “tmp*” | xargs ls –l

file命令:

生成一个带空格的文件:

touch file \ test

find ./ -name “*file*”

可以找到

然后 find ./ -name “*file*” | xargs ls -l

就找不到了

这是xargs 设计的缺陷 xargs是用换行和空格符来区分结果集的

find ./ -name “*file*” –print0 | xargs -0 ls –l

就找到了:

-print0表示 输出的时候不再使用空格进行分隔了 位置替换成null

-0 表示输入以null分隔

09-软件安装

1.网络安装

sudo apt-get install tree

sudo apt-get update 就是把这个服务器上的列表更新到本地

如果不更新 安装的时候可能就会提示这个软件在服务器上没有

默认的当前机器上的这份列表跟服务器的对应不上

sudo apt-get update 更新源

sudo apt-get install package 安装包

sudo apt-get remove package 删除包

2.离线安装包

Ubuntu是debian系列的

所以是以.deb结尾的

redhat不是.deb

sudo dpkg –i xxx.deb

sudo dpkg –r xxx.deb

3.原码安装

不同的软件包安装方式不一样 一般查看readme

10-磁盘的挂载和卸载

mount

umount

插上U盘

cd /media

查看U盘内容

sudo umount /media/…

卸载 会提示设备忙

原因可能是你当前正在你挂载的这个目录及其子目录里

(可以在其他任意目录下卸载)

mount命令

挂载之前我要直到磁盘盘符

U盘一定是一个硬件

它对到的linux系统中/dev目录下去看

sda 第一块硬盘

sda1 第一块硬盘的第一个分区

一个硬盘最多允许4个主分区 剩下的都是扩展分区或者逻辑分区(一定是从5开始的)

电脑中本来只有sda,看一下有没有sdb

ls –l /dev/sdb*

有sdb , 所以我的u盘应该是sdb4

也可以用这个操作找到我的这个u盘是哪个

sudo fdisk –l

既然sda是我原来的硬盘 那么sdb4就是我现在的硬盘了

下面进行手动挂载:

可以挂载到/media 下, 也可以挂载到手动挂载的位置/mnt

sudo mount /dev/sdb4 /mnt

ls发现已经可以看到了

如果看不到 指定一下编码

sudo mount /dev/sdb1 /mnt –o utf8

11-dd命令

dd类似于cp 但拷贝控制更精细

bs 一次读取的字节数 count读取的次数

dev下有一个zero文件

这个文件读出来的所有内容都是ascii的码0

还有一个文件 /dev/null

可以向文件里写内容 写进去的所有东西都会消失掉 可以无限往里写

c开头的, 这两个都是字符设备

创建一个20M大小的文件:

(了解)

所有的存储介质如果像存储必须指定文件系统(格式化)

把文件挂载到/mnt下了 (loop加不加都无所谓)

*

然后查看一下mnt目录

之前讲过adduser 现在讲一下useradd:

adduser:

useradd:

useradd 要指定用户用户启动的位置-s

指定用户所在的组 –g

指定用户的目录名 –d

指定用户是哪个用户 –m

需要手动指定

设置密码:

切换用户:

01-Linux命令基础-第01天(命令基础,软件安装与卸载、磁盘管理)的更多相关文章

  1. Linux下软件安装,卸载,管理

    一. 软件安装包的类型 通常Linux应用软件的安装有五种: 1) tar+ gz包,如software-1.2.3-1.tar.gz.     他是使用UNIX系统的打包工具tar打包的. 2) r ...

  2. 【转】Ubuntu命令行下安装、卸载、管理软件包的方法

    原文网址:http://oss.org.cn/html/47/n-67447.html 一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname ...

  3. CentOS下软件安装与卸载常用命令总结

    最近在折腾CentOS 7操作系统,主要是下载安装文件以及解决各项依赖问题,现对此过程中用到的有效的CentOS命令进行汇总总结. 1. 安装与卸载软件:yum.rpm.wget命令 首先,在Cent ...

  4. Ubuntu14.04 下软件安装和卸载命令备记

    一.Ubuntu中软件安装方法 1.APT方式 ()普通安装:apt-get install softname1 softname2 …; ()修复安装:apt-get -f install soft ...

  5. Ubuntu命令行下安装、卸载、管理软件包的方法

    一.Ubuntu中软件安装方法 1.APT方式 (1)普通安装:apt-get install softname1 softname2 -; (2)修复安装:apt-get -f install so ...

  6. Linux软件安装与卸载

    一. 了解Linux应用软件安装包: 通常Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz.它是使用UNIX系统的打包工具tar打包的. 2) rp ...

  7. Linux学习(二十)软件安装与卸载(三)源码包安装

    一.概述 源码包安装的优点在于它自由程度比较高,可以指定目录与组件.再有,你要是能改源码也可以. 二.安装方法 步骤 1.从官网或者信任站点下载源码包 [root@localhost ~]# wget ...

  8. Linux命令(十)打包压缩、软件安装

  9. 树莓派上的软件安装和卸载命令汇总 [ZT]

    转自:http://www.eeboard.com/bbs/thread-40823-1-1.html基础命令 安装软件 apt-get install softname1 softname2 sof ...

随机推荐

  1. 清楚windows 网络密码

    在windows上访问其它机器共享的文件时,第一次通常要输入用户名密码. 第二次再访问就不用了,因为windows会记住这个用户名和密码.  这样虽然很方便,不过有时也会有些问题.比如你想用其它的用户 ...

  2. Android:隐藏ActionBar

    在OnCreate函数中添加:getActionBar().hide();

  3. js判断object的具体类型(或者说判断object的类class)

    The JavaScript specification gives exactly one proper way to determine the class of an object: Objec ...

  4. 向Java枚举类型中加入新方法

    除了不能继承enum之外,可将其看做一个常规类.甚至能够有main方法. 注意:必须先定义enum实例.实例的最后有一个分号. 以下是一个样例:返回对实例自身的描写叙述,而非默认的toString返回 ...

  5. 【NOIP2018】为什么这么无力啊

    菜鸡又要爆零了 辛辛苦苦背板子结果考时候脑子一片空白 第一题线段树调了半小时 看完三道题两道写暴搜一道写暴力(说是暴搜,觉得更像写了个背包) 别提暴搜还忘记剪枝. . . . . . 我觉得考场上最菜 ...

  6. BZOJ 2440 中山市选2011 全然平方数 二分答案+容斥原理+莫比乌斯反演

    题目大意:求第k个无平方因子数是多少(无视原题干.1也是全然平方数那岂不是一个数也送不出去了? 无平方因子数(square-free number),即质因数分解之后全部质因数的次数都为1的数 首先二 ...

  7. B1041 [HAOI2008]圆上的整点 数学

    这个题一开始看着没什么思路,但是一看题解就明白了不少,主要是数学证明,代码很好写. 贴个网址: hzwer 题干: 题目描述 求一个给定的圆(x^+y^=r^),在圆周上有多少个点的坐标是整数. 输入 ...

  8. Android中使用Gson解析JSON数据

      Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...

  9. php多个进程写文件

    多进程写文件function write_file($filename, $content){ $lock = $filename . '.lck'; $write_length = 0; while ...

  10. 【IDEA】(4)---很好用的DEBUG功能

    IDEA-DEBUG功能 一.常用快捷键 快捷键并不是完全一样的,我这边是MAC安装的IDEA, 这边最主要还是知道DEBUG时常用的功能. 1.快捷键 F7 #进入下一步,如果当前行是一个方法,则进 ...