Wiesler

导航

Day2 Linux基础

Linux里的一个概念,一切皆文件

这一节我们承接上一次,在配置好了VMware+Linux+XShell,并且成功连接之后。在XShell上操作(注意:IP地址并不是分配给一个机器的而是分配给一个连接的设备的,如果断网之后再次连接,那么随机分配的IP地址可能不一样,有可能需要重新获取Linux的IP地址再连接XShell)

Linux常用命令,:

#ifconfig  这个命令很像Windows的ipconfig,可以查阅自身的IP地址和网络配置(subnet mask等)

#pwd 知道自己当前所在的路径  /表示根目录。对比与Windows的图形用户界面,根目录就是计算机(我的电脑),里面可以接触到C:D:E:等硬盘

#cd /  表示进入根目录 (是change directory的缩写,用法 cd+空格+路径)

#cd ..  表示向前退回一级目录,退回多级目录: #cd ../../../../退回四级目录

#ls      查看当前路径下的所有文件或目录

输入命令的时候比如 cd+空格+文件名时,文件名写一点可以用tab自动补全

如何查看一个目录下哪些是文件哪些是目录呢,这些文件或目录的大小类型等信息如何查看呢(Windows中我们可以在文件夹中右击选择查看-详细信息就可以得到)

#ls -l

文件的类型可以从第一列中判读出来(第一列的第一个字符是d的表文件夹,其他表示文件),第二列,第三列表示用户名,第四列表示文件大小(单位Byte),第5,6,7列为文件的最后修改日期,

#ls -lh 可以看出来文件大小并带有单位(KB)[h for human意指人性化展式数据 ]

#ls -a  可查看当前文件夹下的隐藏文件

#ls -lha 结合前边的命令,这就是把隐藏的文件的信息人性化展式出来

#ls -lh dir_name   查看一个文件夹下的信息,不一定要进入这个文件夹,直接把文件夹名写后边

#vim .test   创建一个名为test的隐藏文件

一个文件夹有4KB,而其中有两个隐藏文件夹如.和..也各占4K,这表示这个总文件夹自己本身就占4K,一个空文件夹就要占4K

#vim aaa   创建一个名为aaa的可见文件(Linux 默认创建了以后会自动跳入这个文件,但还没有开启编辑模式,点击i后进入insert模式,才可以向文件中写内容)

编辑结束后,需要保存时,先按esc键退出insert模式,然后按shift+:冒号键,看到显示一个冒号后,输入wq后回车。wq表示write and quit保存且退出

 

查看文件:

  1. 查看或者编辑,就可以再次输入#vim aaa, 对于已有的文件,Linux会打开并不会创建产生冲突。#vim aaa +25 可以打开后直接跳转到该文件的第25行

  2. 仅查看, 内容不分页(文章很长的话,不遍于阅读),可以输入#cat aaa

  3. 仅查看,内容分页,方便阅读(按回车:再下一行,按空格:再下一页),#more aaa

但是如果我查看到了想要的,不想看剩下的内容可以按q退出


#mkdir dir_name  创建一个名为dir_name的文件夹,创建目录,make directory

#mv aaa dir_name   将aaa文件移入到dir_name这个路径之下,这个路径是个文件夹(剪切并粘贴的效果)。如果dir_name这个位置也是个文件,就会将第二个文件覆盖掉

可以创建一个文件夹,进入它,再创建子文件夹,以此类推创建一个路径。但是如果想创建一个路径,并且已经想好了一个路径的结构,那么可以一次创建完成

#mkdir -p China/gansu/lanzhou/anning  这样一次性地创建了这个路径中所有的文件夹(-p表示递归方式地创建)


#tree China  显示China目录的树结构,很清晰直观地显示China这个文件夹下的路径树结构

#tree 或者#tree . 表示查询当前目录树结构

#tree .. 表示查询上一级目录树结构

如果显示tree不存在可能需要安装#yum -y install tree


Linux基础2:

#clear 清屏,将屏幕上的代码和结果清除

#q   退出

#df  查看当前磁盘的使用情况 #df -h   人性化展式信息,有单位

这里的dev/sda3和dev/sda1和Windows的盘符差不多;这里的Mounted on表示这个分区挂载在哪个位置


在Windows中我们可以通过ctrl+alt+del来调出task manager,来查看内存和CPU的使用情况。

#top  查看当前占用内存或CPU使用最高的进程

虽然现实内存memory的使用率很高,但是不一定有那么忙。cached表示的缓存,暂时未使用但是预留的空间。buffers表示将要使用的空间

CPU:

us表示user,用户进程所占的CPU

sy表示system,操作系统本身所占的CPU

id表示idle,表示CPU空闲率

iowait,表示CPU等待io的时间比

Mem:

total  全部的 1000MB

Used 内存使用 800MB

Free内存空闲200MB

Cached缓存,预留的使用空间500MB

buffered缓冲区,正要使用的空间40MB

Total free=free+cached+buffered=740MB相当于真正空闲的空间

Total usage=1000-740MB=260MB

 


#kill  进程号(PID) 关闭进程,这个PID可以从#top中看到

#find / -name aaa    在根目录下查找文件名为aaa的文件

如果不知道文件的具体名字,只知道一部分,可以模糊查询

#find / -name *aaa*   在根目录下查找文件名包含aaa的文件

#find / -size +1000M   在根目录下查找文件大小    大于1000MB的文件

#find / -size +1000M | xargs ls -lh    除了找到指定条件的文件还要额外地显示文件地大小

竖线符号|表示将前边命令执行的结果当做后边的输入,xargs也是这个作用


线上查询及帮助命令

#man ls  这个man命令可以查阅我们不知道的命令的解释,比如查阅ls命令

#命令 --help   这个命令可以帮助我们查阅命令的简单的解释

#help 命令(比如cd)  查看一些Linux命令行的内置命令

(查阅帮助时,可以先用man命令查看,如果不行就用help命令查看)


文件和目录操作命令

#ls /etc/  命令ls后可以接一个路径,显示指定路径下的信息,不接路径就是显示当前路径下的信息

#cp aaa /etc/ 将文件aaa复制并移动到etc路径里面

#find / -name “yum.log” 从根目录开始找文件名为yum.log的文件,/表示从根目录开始找,.表示从当前目录开始找#find / -name “*.log”

#tree 命令如果无法使用,可能需要安装,输入#yum -y install tree然后就可以使用tree命令了

#tree .  查看当前文件夹或目录下的树结构,#tree /etc/  查看etc目录下的树结构


#rm 文件    谨慎使用这个命令,这个命令就是销毁文件,Windows删除文件会进入回收站而这里rm 文件会永久删除。比较安全的做法是把文件移入到tmp文件夹中,#mv 文件 /tmp/ 这样需要的时候还可以找回文件。另外一个方式可以代替rm命令的是,#> 文件 可以将文件的内容都清空

#touch 命令可以创建一个空文件


查看文件及内容处理命令

#grep 命令行 文件名  可以查看这个命令行是不是这个文件的内容

#grep 命令行 -n 文件名  还可以查到这个命令行是该文件中的第几行 #egrep是grep的扩展


文件压缩/解压缩/下载命令

#tar zcvf demo.tar.gz 文件1 文件2 文件3...  打包一个或几个文件成为demo,zcvf命令不可少,.tar.gz是个习惯地写法

#sz demo.tar.gz 可以下载文件或者压缩的tar文件,#sz 文件名 。如果命令不存在,需要安装,yum -y lrzsz


信息显示命令

#df -h 显示磁盘的使用率,总大小等信息

#du -sh 查看当前目录的大小

Linux中所有隐藏文件以.开头

#free -m 查看当前服务器的内存,服务器的内存是第二行的最后一个数值(它是free,buffer和mem的和)


#top 查看当前服务器内哪个程序消耗的CPU或者内存最大

#ip a 查看当前服务器的ip地址


系统安全相关的命令

#useradd 用户名  这个命令可以用来添加用户

#chown  用户.属组  文件名  可以修改一个文件的用户和属组(用户组)

前边的oldboy表示用户,后边的oldboy表示属组

#chown root.root 文件名,这样就把用户和属组就改回来了

注意用ls -lh看到的文件类型,除了第一位d表示文件夹以外,别的字母是什么意思呢?

[r]表示read                                         4

[w]表示write                                       2

[x]executable可执行文件                   1

[-]表示没有权限                                  0

对于drwxr-xr-x 第一段:drwxr表示用户的权限,第二段:xr表示属组(用户组)的权限,第三段:x表示其他用户的权限

[drwxr              -xr              -x]

用户             用户组           其他

7                     3                  1


权限777表示  rwx-rwx-rwx 当然这个权限是极为不安全的

#chmod 755 文件名  设置某个文件的权限,用户可以写看执行,用户组和其他都只可以看和执行不可以写

所以放置到服务器上的文件一定要有合适的权限

#su - 用户名  切换用户

Linux需要掌握的150个命令

线上查询及帮助命令(2个)

#man xxx   #helpxxx/ #xxx --help 如常用所述


文件和目录的操作命令(19个)

#ls #cd #cp #find #mkdir #mv #pwd #rm #tree 如常用所述

#rmdir dirname 从一个目录中删除一个叫dirname的目录(一个目录被删除前必须为空,且必须具有对父目录写的权利)

#rmdir -p dirname  当子目录被删除,父目录为空时也一并被删除

#rename 可以用来给文件批量重命名,#mv可以用来给单个文件重命名

#rename  [被替换部分] [替换部分] [替换模式?/*]

如果我有几个文件夹名字为foo0, foo7, foo18, foo100

#rename foo foohaha foo?     把名字具有foo后边只跟一个字符的文件里的foo部分换成了foohaha, 结果是foohaha0, hoohaha7, foo18, foo100

#rename foo fooaaa foo??     把名字内具有foo后边跟两个字符文件的名字里的foo换成fooaaa,结果是:foo0, foo7, fooaaa18, foo100

#rename foo fooX foo*   把名字内具有foo后边不论有多少字符的文件的名字里的foo换成fooX,结果是fooX0, fooX7, fooX18, fooX100


#touch fileA  如果fileA已经存在,可以修改这个文件或目录的时间戳(存取时间,修改时间); 如果fileA不存在,那么就创建一个空白文件fileA

#touch [参数] file, 修改了文件之后可以用#stat file来查看文件的access,modify,change time

Access time是文件的存取访问时间。modify time是文件的内容改变时间。change time是文件的属性改变时间也叫状态改变时间,如文档的索引节点发生了变化(位置,用户属性,组属性等),使用chmod,chown命令修改一次文件属性,change time就会更新


参数列表:

-a   或--time=atime或--time=access或--time=use  只更改存取时间access time

#touch -a file  会将file的access time改为当前时间

-c   或--no-create  不建立任何文档。


-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   或--time=mtime或--time=modify  只更改变动时间 modify time

#touch -m file 会将file的modify time改为当前时间

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

#touch -r ref_file file  将file的时间改为和ref_file时间相同

-t  使用指定的日期时间,而非现在的时间。[[CC]YY]MMDDhhmm [.SS]将access和modify统一调整

#touch -t 201401120958.36 file将access和modify改为2014年1月12日9:58:27

-d  使用指定的日期时间,而非现在的时间。[DD-Month-YYYY]统一调整access和modify

#touch -d ‘12-January-2014’ file 将access和modify时间改为2014年1月12日

-d是一个非常智能化的命令,这里可以用 -d GMT3 来修改时区,甚至可以识别’next Sunday GMT3’ ‘1 year ago 13:03:27’


#basename [path] [suffix]  去掉文件的路径名或者后缀,只显示文件名本身

#basename /etc/aaa.txt   结果为aaa.txt

#basename /etc/aaa.txt .txt 传递了第二个参数.txt,结果为aaa


#dirname [path]  去掉路径最后的文件名部分,只显示路径部分

#dirname /etc/terminfo/aaa.txt   结果/etc/terminfo


#chattr  [-RVF] [-v version] [mode] file  修改file文件的属性,mode部分由一下参数组成

#lsattr [-RVadv] file    列出文件file的属性

#file aaa   查看aaa文件的类型

#md5sum [option] file   计算并检测md5 digest

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。MD5对任意长度的信息计算,产生一个128位的二进制数,作为fingerprint


查看文件及内容命令(19个)

#cat #more #vi/#vim 同常用所述

#tac file 也是显示文件的内容,和cat方式相反是把文件最后一行内容最先显示

#less file  显示文件的内容,相比于more更加灵活,可以向前翻页

#head -n 5 file  显示file文件的前5行

#head -c 20 file 显示file文件的前20个字节

#tail -n 5 file  显示file文件的后5行

#tail -c 20 file 显示file文件的后20个字节

#cut -b 3-5 file  显示file这个文件每一行的第3-5个字节

#cut -c 3 file   显示file这个文件每一行的第3个字符

#split [-c字节/-b字节/-l行/-行] file将文件每几个字节或行就切割一次

#paste [-d 分隔符/-s] file1 file2 file3.. 将文件合并在一起(-d表示用分隔符来分割,不写分隔符默认用tab键来分割。-s表示每个文件合并的时候各占一行而不是平行输出)

#sort aaa 将文件中每行按照首字母的ASCII码进行排序,升序输出

#sort -r aaa降序输出

#sort -n aaa将数字作为数字类型排序而不是字符类型(就不会出现10比2小的情况了)


#uniq aaa 去除文件中的重复行

#uniq -c aaa显示文件中的每行出现了几次

#uniq -u aaa仅显示不重复行   #uniq -d aaa仅显示重复行


#wc [-c字节数/-l行数/-w字数/-m字符数] aaa 统计文件中的


#iconv [-f原始编码/-t输出编码] file 转换指定文件的编码

#iconv -f utf-8 -t gb2312 aaa.txt>bbb.txt  读取aaa的数据将编码转换为gb2312,输出到bbb.txt


#dos2unix file1 file2 … 将Windows格式的文件转换为Unix或Linux格式,其实Windows下\r\n表示回车换行,而Linux中\n表示回车换行


#diff [参数] file1 file2 比较file1和file2或者目录间的不同之处

#vimdiff file1 file2 将会分屏显示file1在左和file2在右方便比较

#rev file  将file每行内容从右往左显示,#tac将所有行逆序显示,#cat所有行正常显示

#join file1 file2 将file文件中相同字段的内容合并起来

指令tr 是用来作替换的

#cat file|tr ‘A-Z’ ‘a-z’  输出file的内容,并将所有大写字母替换为小写字母

#cat file|tr -d ‘A’ 有匹配A的内容删除

#cat file|tr -d -c ‘c\n’ 不是c和换行符的都删除

文件压缩及解压缩命令(4个)

#unzip file 解压缩文件

#zip file 压缩文件  #zip -p ./* 将当前文件夹下的文件和文件夹都压缩

信息显示命令(12个)

#uname 显示操作系统, #uname -a显示主机名称,内核,CPU,硬件平台

#hostname 显示hostname

#dmesg 显示内核缓冲区内容

#uptime 显示当前时间,以运行时间,在线用户,平均负载

#du -h /etc/ 人性化地显示目录或文件所占空间大小,-h可以显示出单位

#date 查看当前时间

#cal 显示日历  #cal 2016显示2016日历    #cal 9 2016 显示2016年9月份的日历

文件搜索命令(4个)

#which file 查看可执行文件的地址

#whereis file 查看文件的地址, 不如find精确,更新比较慢(每周)有时会找到已删除的文件

#locate file  查看速度快,但是不精确,找不到最近创建的文件

用户管理命令(10个)

#useradd user 添加user用户

#usermod 修改用户账户

#usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]

#userdel user 删除user用户

#groupadd groupname 新增一个工作组

#passwd 普通用户只能修改自己的密码,而root用户可以修改任何一个用户密码#passwd user

#chage修改账号密码的有效期限

#chage[-l][-m mindays][-M maxdays][-I inactive][-E expiredate][-W warndays][-d lastdays]username

#id 查看当前登录的uid和gid的所属分组及用户名

#su root 如果当前在user用户下,那么会切换到root用户但是操作环境还是在user用户下,

#su-root 把用户名和操作环境都切换到root这里

#visudo

#sudo 是superuser do的简写,让普通用户执行一些root用户的功能。配置sudo必须通过编辑/etc/sudoers文件,还必须使用visudo编辑



系统性能监视高级命令

 

进程管理命令16个:

计算机简介

简介:计算机发展介绍,计算机硬件组成,计算机基本原理

二进制:每一位是1的话就表示下列的数,总数相加

1024 512 256 128 64 32 16 8 4 2 1

1024是后边所有位的数相加再减一

二进制数表示相应的负数,表示按位取反再加1

计算机硬件组成:输入单元,输出单元,算数逻辑单元,控制单元及记忆单元,其中算术逻辑单元和控制单元合称中央处理单元(Center Processing Unit, CPU)

主板:CPU,RAM,PCI插槽(作为接口,可以连接声卡显卡等外接设备),SATA接口(连接硬盘),IDE接口(现已淘汰),北桥(交换CPU处理的数据)和南桥(I\O操作,与硬盘交互)

鸟哥私房菜:Linux的基础书推荐

1Byte字节 = 8bit位, 字节是计算机最小的存储单位是字节Byte,计算机最小的识别单位是bit位

硬盘的特点:

  1. 数据断电后不丢失

  2. 可重复读写

  3. 相对于内存,速度慢

机械硬盘的转速:5400,7200,10000,150000

5400:写(30-50MB/s)读(50-80MB/s)

固态硬盘:非常贵,速度快,读(500MB/s) 写(300MB/s)

内存:

  1. 断电数据丢失

  2. 读写速度极快

时钟频率:每秒钟可以有多少次的震荡,频率越高,CPU每单位时间可以干更多的事

1000Hz=1KHz   1000KHz=1MHz 1000MHz=1GHz

CPU有两种指令集:1. 复杂指令集  2. 精简指令集

运算速度并不仅仅取决于CPU的主频,也受限于传输的速度等,这就是外频

RAM的DDR4 2400表示MHz

固态硬盘的速度还是要远低于内存的速度(6GB/s), CPU还必须要等待硬盘来加载数据到内存中


北桥的总线称为系统总线,因为是内存传输的主要通道,所以速度较快。南桥就是所谓输入\输出(I\O)系统总线,主要是联系硬盘,USB和网卡等周边设备

每次传输的位数就是系统总线的宽度,32位和64位。

32bit系统,硬件的前端总线和CPU的位数都是32位,能支持的最大的内存地址是4GB


现在的CPU:Intel和AMD

Intel:

I3-

I5-

I7-

CPU多核的概念,单核代表同一时间只能做一件事情,单核多线程,每件事都会分成很小的部分,几件事轮流分几次完成,CPU运算速度非常快,人无法感知,所以认为是同时发生的。













posted on 2016-05-22 11:29  Wiesler  阅读(196)  评论(0)    收藏  举报