您的位置:首页 > 运维架构 > Linux

linux基础的一些命令操作(1)

2017-07-09 00:28 260 查看
大部分都是要记住

一切操作强制使用命令。

linux是一个操作系统,和windows是一样的

操作系统就是一个程序。

AT&T MIT GE在69年旨在研究一种多任务、多用户、分时性的操作系统。这个操作系统(multics)研究失败了。

什么是多用户?

什么是多任务?宏观一次可以执行多个程序(肉眼上看到的),实际每次可能只执行一个程序

什么是分时性(时间片)?假设一个程序从头到尾运行时间为5秒,可能每次只运行50ms

围观每次最多运行几个程序和cpu的核有关。核越多,微观每次同时运行的程序就越多。

69年之前出现的操作系统:单任务、单用户、不具备分时性(批处理的)。

贝尔实验室有一个人叫做肯汤普森,最初使用汇编写了一个小型的操作系统,发现当自己写的一个小游戏运行在这个系统上非常流畅。

后来他和丹尼斯里奇,分别使用B语言和C语言分别重写了操作系统——unix。

什么是操作系统:用户软件(app、库、工具、图标)和内核

什么叫硬件裁剪?

什么叫软件裁剪?对操作系统内核功能的添加和删除

linux操作系统本身就是一个程序,运行在内存中,需要内存给操作系统分配空间。

分配的内存空间是物理空间还是虚拟空间?虚拟空间。

虚拟内存分成两个部分:

用户空间 命令 c中的可执行文件

————————————————————————————————————————————————

内核空间

系统调用

文件系统

网络协议栈

驱动

……

——————————————————————————————————————————————————

硬件

现在使用的ubuntu版本是12.04

现在ubuntu使用的内核版本是3.5

内核版本的规则:主版本号.次版本号.修订版本号

通常情况下,次版本号为偶数时是稳定版,所以我们在开发时大部分使用的都是次版本号为偶数的。

2.4 2.6 2.8 3.0(几乎不用了) | 3.14 3.18 4.8

高级语言:1、编译型语言,使用编译器 2、解释型语言,使用解释器

无论编译器还是解释器都是将高级语言转化成二进制

shell就是解释器的统称。解释器也会有不同名称的分类(sh ksh bash …)

sudo /etc/init.d/network-manager restart 重启网络服务

当作公式来记:sudo /etc/init.d/服务名称 start/stop/restart

服务名称有哪些?我不知道

软件包:应用程序、README、配置文件

linux软件包的分类:.deb软件包 .rpm软件包

ubuntu使用的是.deb软件包

红帽使用的是.rpm软件包

Filename_Version-Reversion_Architecture.deb 软件包

软件包名称

主要讲的是.deb软件包:操作工具(可以是图标、可以是命令)

dpkg apt我们在使用前必须要明确的知道软件包之间是有依赖性的。

假设有a、b、c三个软件包,它们之间如果有依赖性为:b > a > c

安装顺序:c a b

dpkg的使用方法:

特性:安装之前必须要知道软件包之间的依赖关系,并且不支持在线安装。

安装:sudo dpkg -i 软件包

不完全卸载:sudo dpkg -r 软件包名称

完全卸载: sudo dpkg -p 软件包名称

apt使用方法:非常常用

特性:自动检查软件包依赖关系,支持在线安装

使用原理:

/etc/apt/sources.list 存放网址(存放软件包的网址,也叫做软件源)

/var/lib/apt/lists 存放的是索引文件

/var/cache/apt/archives 存放的是下载好的软件包

我们在使用apt下载一个软件包时,首先会到/var/lib/apt/lists寻找索引文件,进而索引文件会在软件源中找到

适合当前系统使用的软件包,进而下载,下载成功的软件包被存放到/var/cache/apt/archives

下载并且安装方式:sudo apt-get install 软件包名称

安装失败原因:

1、没有网络

2、索引文件太陈旧造成了根本找不到软件源

解决方案:a、更新索引文件,sudo apt-get update

b、更改软件源

3、安装过程手贱不小心中途取消了,可能会造成软件包之间的依赖关系被破坏

解决方案:修复依赖关系 sudo apt-get -f install

4、如果在终端提示:请删除某个路径下的某个文件,照做.

不完全卸载:sudo apt-get remove 软件包名称

完全卸载:sudo apt-get –purge remove 软件包名称

和软件包相关的命令就是上面这些

下载软件包源码:sudo apt-get source 软件包名称

sudo apt-get upgrade 更新当前系统中所有已安装的软件包

sudo apt-cache pkgnames | wc -l

| 叫做管道

wc 用来统计的

-c 统计字节

-l 统计行数

-w 统计单词

命令有三要素:命令名称 选项 参数

三要素之间最少要有一个空格。通常选项和参数可以互换位置,通常带-的是选项

history显示的是当前终端历史命令

history -c 清除当前终端输入过的历史命令

上面两条不记住没有影响

如何知道一个终端最多存放多少历史命令?

vi ~/.bashrc

HISTSIZE=1000 确定了每个终端最多存放1000条历史命令

打印一个变量的内容,需要使用echo命令,并且变量前要加echoHISTSIZE

如果修改了一个配置文件的内容,如果想要使配置文件生效,执行source + 指定的文件名 使配置文件重新运行一次。

echo 普通字符串 输出结果就是原有字符串

echo hello <==> echo “hello”

echo hello world != echo “hello world”

这是两个字符串 一个字符串

echo 使用选项时一定要将选项加在参数的前面

echo -n “hello”

取别名:alias 别名=’命令’ 注意:=左右没有空格

如果上面命令单纯在终端上运行,只适用于当前终端。

如果将命令添加到某个配置文件中的最后一行(比如/etc/bash.bashrc),最后保存退出重启配置文件。永久生效。

ls -a 显示当前目录下所有内容

ls -sh s作用显示文件大小,但是不满足4K以4K为单位显示 了解

h作用是以某种单位来显示文件大小

ls -R 从当前目录递归显示所有目录下内容

很多命令的选项如果见到r或者R通常都是递归的作用

ls -l

d rwx r-x r-x 3 root root 4096 Jul 8 14:55 sl-3.03

文件类型 用户权限 组权限 其它用户权限 硬链接个数 用户名 组名 文件大小
4000
文件最后一次修改时间 文件名

文件类型:b(块设备文件) c(字符设备文件) d - l(软链接文件) p(有名管道文件) s(域套接字文件) 现在我们才接触了2种(d -)

linux@linux:~$

当前用户

如何创建其它用户? sudo adduser 用户名

切换用户?su 用户名

返回原有用户?exit 千万别使用su切换

和用户相关的配置文件:/etc/passwd存放的是用户所有信息 /etc/group存放组信息 /etc/shadow存放密码

默认情况下,用户名和组名同名。通常情况下一个组内部只存放了和其同名的一个用户。

如何删除用户?但是如果直接删除用户系统会有警告(组已经空了)

1、添加一个已存在的用户到需要删除的用户对应的组中。

假设现在需要删除farsight用户,将linux用户添加到farsight组中。

sudo usermod -a(添加) -G(指定组名) farsight(组名) linux(任意存在的用户名)

2、删除用户:sudo deluser 用户名

3、删除组:sudo delgroup 组名

权限:r代表读 w代表写 x代表执行

如何表示权限?通常使用的是8进制

rwx r-x r-x

111 101 101

7 5 5

如果已知权限?0123 –x -w- -wx

对于一个文件来说,只能使用三部分的一部分。

chmod 修改文件的原有权限

1、chmod u或g或o或a+或-权限 文件名

注意:+ -的左右不能有空格

2、chmod 八进制 文件名

如何确定使用哪部分?

-rw-rw-rw- 1 farsight farsight 34 Jul 8 17:22 1.c

1.c文件属于farsight用户,属于farsight组

假设我们当前使用的用户为linux,如果在linux下操作1.c文件使用的是哪部分权限?

1、肯定不会使用1.c的用户位置权限,只是给1.c属于的用户使用的

2、假设sudo usermod -a -G farsight linux 将linux用户添加到了farsight组中

此时linux用户操作1.c文件使用的是组权限

3、如果linux用户不属于farsight组,使用其他用户权限

对于普通文件:r代表可读 w代表可写 x代表可执行 除了可执行文件之外其他的普通文件默认权限一般为0664或者0666

对于目录文件:

r控制了是否能查看目录下内容

w控制了是否能在目录下新增文件

x控制能否进入目录

对于目录一般常用权限为0775或者0777

文件最后一次修改时间:也叫做时间戳 给make工程管理器使用的。

linux系统中有一些具有特殊功能的字符,被叫做通配符。

通配符:

*在命令行中或者在脚本文件中具有匹配任意长度字符的功能 重点

?只匹配一个长度字符

[afw]匹配其中的一个字符

[1-9]只能代表一个字符不可能出现[1-100]这里不是100 1 0 0三个字符

[^123] 除了指定的字符其他均可匹配,但是要注意:操作的还是一个字节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux