Linux最常用的基础命令

时间:2021-09-08 14:39:11

Linux最常用的基础命令个人总结

计算机基础知识:

32bit和64bit系统的区别、系统运行机制

32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存
64bit=内存的最大寻址空间是2**64,差不多支持16TB的内存

操作系统也是一个软件

操作系统简称:OS:operation system

苹果系统绑定了硬件,微软系统只卖软件不绑定硬件

计算机;主要目的是计算:
人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思。28个手指关节,10根手指
计算机的电源。类似于人类的心脏:电源给计算机供电,心脏给人体供血

打开软件是操作硬盘的,打开程序的快慢速度取决于硬盘的读写速度
cpu相当于人的大脑

电脑上应用程序的运行过程:打开一个软件,cpu先从磁盘中加载文件,也就是计算机将把硬盘里的数据读取到内存,程序就开始运行,在程序运行的过程中,产生的临时数据也会写入内存,程序的打开速度取决于硬盘的质量和硬盘的读写速度
软件打开后,的使用过程中所有的数据都是CPU直接从内存中读写和存放的所以软件使用过程中的流畅度,取决于cpu的性能和内存的大小(CPU值越大性能越强)

操作系统(Operating System, OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。
硬盘:存储资料和数据的设备,有容量大,断电数据不丢失的特点。
内存:负责硬盘等硬件上的数据与CPU之间数据交换处理; 缓存系统中的临时数据。断电后数据丢失。内存中的数据是通过电流来表示的,所以一断电,内存中的数据就没有了

Android 是基于Linux内核的移动操作系统

操作系统发展历史

二进制
计算机的编码:
ASSIC  每一个字符统一都需要8个bit来存储

计算机的CPU是由集成电路这种电子部件构成的, 电路只可以表示两种状态——通电、断电,因为这个特性,计算机只能识别二进制数(0或1)

计算机的CPU只能认识 0 和 1 所以电脑只懂 0和 1组成的机器语言。

编码:将计算机能理解的语言转换成人类能懂的语言

将编程语言翻译成机器语言,即0和1, ——这个过程叫编译
编译就是:通过编译器执行一个编译的过程,把程序编译成机器语言。
解释就是:在程序运行的时候,通过解释器逐行解释代码,然后运行。

计算机中如果没有特殊的要求数字是从0开始算起的
平常生活中数字是从1开始算起的

二进制:逢二进一   ,二进制的表示数字: 0, 1

八进制: 逢八进一,八进制的表示数字:01234567

十六进制: 逢十六进一,十六进制的表示数字: 01234567ABCDEF

计算机容量的单位表示

1位 也就是一个二进制数(0 或 1)= 1bit 比特大小
8 bit 比特 = 1byte = 1字节
1024bytes = 1kbytes =1KB 1024个字符,小文档 ,几百k可以表示一张图片
1024KB = 1Million Bytes = 1MB = 1兆 , 几万字的文档, 大图片
1024MB = 1Gigabytes , 一个清晰的电影,不是高清,高清能达到数10个g
1024GB = 1TB ,
1024TB = 1PB,

00000000
00110001
00000001

bit (比特)(Binary Digits) 里面存放的是一个二进制数字,即 0 或 1, 也是计算机中最小的存储单位。
字节 byte:8个二进制数为一个字节,一个字节是由8个(0 或 1)组成
1B bytes比特 =8 bit位
1 KB = 1024 B
1 MB Megabyte 兆字节 简称“兆”    = 1024 KB,
1 GB Gigabyte 吉字节 又称“千兆”  = 1024 MB,
1 TB Trillionbyte 万亿字节 太字节  = 1024 GB,

平常我们上网所说的下载速度和宽带的速度的计算方式:

1字节(byte)=8比特(bit)

1兆(M)=1024千(k)

4M的网的话理论下载速度应该是
4×1024/8=512KB

运营商的单位是bit,而我们下载的单位是K 即字节byte, 宽带运营商按照二进制来计算,所以100M的宽带要除8才是我们平常说的下载的速度。

什么是编程语言?

定义好一套与计算机交互的语法规则,这套规则 就可称为一门编程语言
我们听不懂日语是因为不懂日语的语法规则
学编程 == 学语法规则
编程能干什么?
print hello world
eject cd
一堆指令的组合 == 》 软件

有很多套与计算机交互的语法规则,
600多种编程语言

1970 Unix系统的诞生年
1989年python 诞生
C语言是编译型的语言,不太支持跨平台
Django 江购
C = 各个操作系统的开发语言 1973
C++ = C++是C语言的加强版 ,1983年,贝尔实验室的Bjarne Stroustrup在C语言基础上推出了C++[1] 。 C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。

java = 1995 由sun 公司开发出来,java 虚拟机 支持跨平台
php = 1994, 纯web开发语言, 1994 Netscape 浏览器诞生了
python = 1989年诞生, 刚开始被做为脚本语言, 开发小任务, 跟linux同年诞生,89,1991,苏联解体, 1991年正式版本

C# = c sharpe =C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

ruby =
Ruby, 一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人*(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。
Ruby on rails web框架

perl = Unix平台上开发出来的语言,做文字处理非常强大, 可以写出没人能看懂的代码

shell = 脚本语言, 简单易学,基于unix,linux, 做一些简单的系统管理任务, 运维人员必学

scalar = Scala是一门多范式的编程语言,一种类似java的编程语言[1] ,大数据开发

erlang = 是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信,函数式编程

go ===Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

javascript = 是当下使用最为广泛的语言,主要写前端的语言,
nodejs =后端 全栈式的语言
vb = 微软的脚本语言,bat脚本

lua = nginx 的脚本语言, ngnix 是时下最nb web服务器

python
编译型 = 全部翻译,再执行 ,翻译=编译 ,c,c++
解释型 = 边执行边翻译, python php java c# perl ruby javascript

虚拟机;

虚拟机中的三种网络模式:

Bridged(桥接模式) : 桥接模式就是将我们虚拟机中的网卡的网络地址 放在我们真实的物理机的网卡上。 这样的话,我们的虚拟机就好像跟我们的宿主机所在的局域网中的一台机器一样。
NAT(网络地址转换模式) : 在宿主机上制作一个虚拟网卡,通过这个网卡,给虚拟机分配IP。虚拟机通过宿主机去上网。
Host-Only(模式): 该模式下虚拟机只能访问到物理主机。无法访问外网。

林尼克斯:linux对硬件的基础要求:

电脑的配置:
软件配置:64位操作系统,win7旗舰版或者Win10专业版 :不要用企业版:很耗资源
硬件配置:16G内存,i7,固态硬盘200G
类型:游戏本(性能最强的)
处理器:GHz 值越大越好,越大运算速度越快

Linux的创始人:林纳斯,脱袜子
http://linuxdown.net/
红帽,有麒麟,centos,ubtun
Linux,Windows,Unix,MacOX

Ubuntu 乌班图:我的存在是因为大家的存在,非洲的价值观,Ubuntu(乌班图)是一个基于Debian版的发行Linux版
安装linux操作系统或是安装软件的时候可以断网安装,这样就不会在安装的过程中,软件会从网上找东西更新而导致安装过程超级的慢

Ubuntu修改登录密码
rw init=/bin/bash
passwd 用户名
输入两次新的密码

什么是文件系统:

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。
常见的文件系统类型:ext2、ext3、ext4、fat、ntfs

Linux系统的目录结构:

/ : 所有目录都在
/boot : boot 配置文件、内核和其它启动 时所需的文件
/etc : 存放系统配置有关的文件
/home : 存放普通用户目录
/mnt : 硬盘上手动 挂载的文件系统
/media : 自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。
/cdrom : 挂载光盘?
/opt : 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下
/root : 系统管理员的目录,对于系统来说,系统管理员好比上帝,他可以对系统做任何操作,比如删除你的文件,一般情况下不要使用root用户。
/bin : 存放常用的程序文件(命令文件)。
/sbin : 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp : 临时目录,存放临时文件,系统会定期清理该目录下的文件。
/usr : 在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如游戏、打印工具等。/usr目录包含了许多子目录: /usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。/usr/local : 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。
    /usr/bin/ 非必要可执行文件 (在单用户模式中不需要);面向所有用户。
    /usr/include/ 标准包含文件。
    /usr/lib/ /usr/bin/和/usr/sbin/中二进制文件的库。
    /usr/sbin/ 非必要的系统二进制文件,例如:大量网络服务的守护进程。
    /usr/share/ 体系结构无关(共享)数据。
    /usr/src/ 源代码,例如:内核源代码及其头文件。
    /usr/X11R6/ X Window系统 版本 11, Release 6.
    /usr/local/ 本地数据的第三层次, 具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/.

/var : 该目录存放那些经常被修改的文件,包括各种日志、数据文件;
/var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。
/var/lib/ 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。
/var/lock/ 锁文件,一类跟踪当前使用中资源的文件。
/var/log/ 日志文件,包含大量日志文件。
/var/mail/ 用户的电子邮箱。
/var/run/ 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。
/var/spool/ 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。
/var/spool/mail/ 用户的邮箱(不鼓励的存储位置)
/var/tmp/ 在系统重启过程中可以保留的临时文件。
/lib : 目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。
/lib32 : 同上
/lib64 : 同上
/lost+found : 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在;
/dev : 存放设备文件
/run : 代替/var/run目录,
/proc : 虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
/sys : 和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;

/ 根目录
/etc/ 程序的配置文件
/home 普通用户的家目录默认的存放位置
/mnt 挂载就是将硬盘连接在系统上
/root 管理员的家目录,默认系统中只有一个管理员
/var 存放系统中经常被修改的文件,比如日志文件

SWAP分区的作用:

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

--------------
Linux中没有消息就是最好的消息;报错的时候linux才会有提示
-----------
sudo 类似于Windows上的以管理员的权限运行程序

帮助命令:info,man(Manual手册),help
date :年月日星期 时间
date -s 更新系统当前显示的时间
即使电脑关机了你的电脑的主板上也是有个电池给主板上的时钟供电的

cal 日历

cal -y 打印本年的日历
CST:中国的时区
gedit linux中的notepad++工具:Ctrl+C关闭某个软件或程序
Tab 自动补齐
Tab+Tan 列出当前目录下的所有文件
Ctrl+L 假装清屏
Ctrl+K 删除光标后的位置
Ctrl+U
Ctrl+W 以空格为分割来删除命令
Ctrl+Y 恢复删除的命令
Ctrl+R 搜索最近使用的命令
Ctrl+D 结束输入
Ctrl+C 中断当前操作

林尼克斯系统开关机:

reboot 重启
shutdown -r 重启
shutdown -h 指定时间的关机

文件操作,目录操作

. 当前目录
.. 上一级目录
passwd 修改当前用户的密码,每个用户都可以修改自己的密码
passwd 用户名 修改指定用户名的密码,管理员权限才可以执行

man -k passwd 模糊匹配
ls -a 查看所有文件包括了以.点开头的隐藏文件隐藏文件默认是不显示的
ls -A
ls -a /var/ 查看指定目录中的所有文件
ls -l 显示文件的权限等信息
ls -lh 以Kb为单位显示文件的信息,默认是按照文件名的a-z排序的
ls -lht 以Kb为单位显示文件的信息,并按照文件的修改时间排序
ls -lhtr 以Kb为单位显示文件的信息,并按照文件的修改时间排序,最上面的时间越早
ls -R
ls -l 1.txt 2.txt 查看指定文件的属性信息
ls -l *.txt 找出所有txt结尾的文件
ls -l .bash* 找隐藏文件

sed、awk
sed 命令:一次处理一行数据
cat -n 有行号的查看指定文本的内容

ls -R 递归的查看

tree
yum install tree

鼠标的滚轮向下按,是将选中的文字粘贴或是在Portplay中放大或是缩小的命令
---------
- 普通文件
d 目录文件
l 快捷方式文件,链接文件
--------------
./ 执行某个程序文件
----
mkdir 目录文件名 创建目录文件
mkdir -p 递归创建目录文件

touch 修改文件的创建时间的(修改文件的访问和修改时间),如果指定的文件不存在就创建这个文件

---------
rm 删除文件
rm -i 删除的时候有提示确认是否删除
rm -rf 空目录文件名 删除指定的空目录文件
rmdir 删除指定的空目录文件

mv 1.txt new_1.txt 给文件重命名
mv test new_test 给目录文件重命名
mv 1.txt new_test/ 将1.txt移动到new_test目录中

cp 的时候源文件与新文件都是存在的
cp 1.txt new_1.txt 对指定文件进行复制
cp -r test/ new_test/ 对指定目录进行复制

cp 1.txt 11.txt
cp -a 1.txt 11.txt 复制的时候保留原文件的属性
stat 1.txt 查看指定文件的状态信息

ls 显示目录内容
cd 将当前工作目录切换到指定目录
cp 复制文件或复制目录文件
一次将多个文件复制到某个目录中去
cp -v file1,file2,file3 Desktop/
cp -v file{1-3} Desktop/
复制单个文件
cp -v /etc/fstab /root/fstab.bak
目录的复制:

cp -r  dir1  dir2  # 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名
cp -R /etc /home
mv 移动文件或重命名
mv oldfile newfile 将文件oldfile改名为newfile
将多个文件移动到指定目录中去
mv newfilea newfileb newfilec newfiled newdirectory/
mv newfile[a-d] newdirectory/
pwd 打印当前工作目录的路径
rm 删除文件或删除目录文件
删除单个文件,删除的时候需要确认是否删除
rm filea
删除多个文件,删除的时候不需要确认是否删除
rm -f filea fileb filec
rm -f file[a-c]
删除目录
rm -R dira
删除目录,删除的时候不需要确认是否删除
rm -f -R dira

rmdir 删除空目录文件
rmdir dira
mkdir 新建目录文件
新建一个目录文件
mkdir dira
新建一个多级目录
mkdir -p dira/dirb/dirc
删除一个多级目录
rmdir -p dira/dirb/dirc
权限修改:
chgrp 修改文件的所属组
chmod 修改文件的访问权限
+ 表示在文件原来权限的基础之上添加指定的权限
- 表示在文件原来权限的基础之上去除指定的权限
= 表示不考虑文件原来的权限,将文件的权限设置为指定的权限
r:read 可读权限 W:write 可以修改的权限 x:execute 可以执行的权限
u:user 文件或目录的所有者
g:group 文件所属的组
o:others 除了所有者和所属组之外的其他人
a:all 表示所有用户
chmod a-r,u+x filea 所有用户去除可读的权限,所有者添加可执行的权限
chmod a=rwx filea 给所有用户可读,可写,可执行的权限
chmod 700 filea 文件所有者具有可读,可写,可执行的权限,其他用户没有任何权限
chown 修改文件的所有者或所属组

find 查找文件

-name 按文件名进行查找
-gid 按照组id进行查找
-uid 按照用户id进行查找
-group 按照组名进行查找
-user 按照用户名进行查找
-empty 查找文件大小为0的目录或文件
-size 按照指定的大小查找对应的文件
-type 按照文件的类型查找文件
b:块设备:block device
c:字符文件:character device
d:目录文件:directory
f:普通文件
-mtime 文件内容被修改的时间,modify time),指的是文件内容最后一次被修改的时间,单位以24小时计算。
-ctime 变更时间(change time),指的是文件本身(权限、所属组、位置......)最后一次被修改的时间,单位以24小时计算。
-atime atime:被访问时间(access time)指的是文件最后一次被读取的时间,可以使用touch命令更改为当前时间,单位以24小时计算。
逻辑运算符:
与:表示并且 and
或:多种条件中只要有一个成立即可 or
非:不是 not

ln 创建文件的快捷方式
linux中链接文件分为两种:
硬链接 hard link 需要与源文件在硬盘的同一个分区中
符号链接symbolic link :删除源文件后,就失效了,它存放的是源文件的访问路径
mkdir 创建目录文件
mkdir -p 递归的创建目录文件
umask 显示文件的权限掩码
新建的目录默认的权限是755(777-022)
批量创建目录文件
mkdir dirname_{a,b,c,d,e,f}
touch 创建普通的文本文件
修改文件的时间属性,修改的是文件的时间戳
-a 修改文件最后一次的访问时间
-m 修改文件的最后一次修改时间
查看一个文件的时间属性
stat filenamea
批量创建文件
touch filename{a,b,c,d,e,f}
进入一个目录
cd Desktop/

whereis 显示一个命令的所在路径,查看一条命令相关的文件的存放位置(命令源代码文件的位置和man帮助文档的位置的绝对路径)

which 显示一个命令的绝对路径,查看一条命令对应的文件的存放的位置的绝对路径,是基于系统中的环境变量PAth来查找的
file 查看一个文件的类型:判断一个文件是目录文件,还是设备文件还是普通文件

rename 修改文件的名称

文本编辑,文本过滤

cat 查看小文件的内容
cat -b filenamea 显示非空行的行号

cat 命令:
cat -n 显示行号
cat -s 合并空行
------------
tac 命令 从最后一行开始倒序查看文件

more 查看大文件的内容
more -15 filenamea 以每个屏幕15行的内容显示文件的内容

less 分屏显示文件内容
grep 搜索匹配的内容,过滤
-w 整个单词匹配
-x 整行匹配
-i 忽略大小写的不同
head 查看一个文件前几行的内容,显示一个文件开头多少行的文件内容
head -n 2 filenamea 查看一个文件头两行的内容

tail 查看一个文件后几行的内容
wc 统计个数:可以统计单词数,行数
sort 排序,排序的时候按照的是英文字母对应的ASCII码值进行比较大小
split 切割文件
diff 比较两个文件的不同
diff from-file to-file

find与grep之间的区别:

find在目录结构中搜索文件查找满足寻找条件的文件
grep是查找匹配条件的行,find是搜索匹配条件的文件。
grep是文本中找匹配条件的行

grep -i hist 过滤hist开头的单词
------------
more、less、head、tail、ls、用户权限
more 命令:空格表示一页一页的翻看 回车Enter表示一行一行的显示
b键,向上返回
q键,退出查看
------------
less 命令:Alt+. 快捷键,按less后按alt后再按.点切换找之前的命令
less ESC+.

wc 命令:统计个数

\n 表示两个字符
wc -c 查看有多少个字节,统计字节数
wc -l 查看有多少行,统计行数
wc -m 查看有多少个字符,统计字符数
wc -w 以空格为分割符,查看个数,统计字数
一个汉字

sort 命令:排序

sort -r
sort -n 按数字大小排序,越大放在越下面
sort -t
sort -k
python之禅 import this
按第三列来排序:
sort -t ":" -k 3 -n /etc/passwd

uniq 命令:忽略重复行

uniq -c
uniq -u
uniq -i 不区分大小写

cut 命令:

cut -d: -f 1 /etc/passwd 以:作为分隔取出文本内容中的第一列
cut -d: -f 2 /etc/passwd 取出文本内容中的第2列
cut -d: -f 3 /etc/passwd 取出文本内容中的第3列

根据字符来取
cut -c 5
cut -c 1,5
cut -c 1-5,6

tee 命令:

标准输入:stdin
标准正确输出:stdout
标准错误输出:stderr

awk命令:

awk 命令:对指定的文本内容进行切片分析和处理
awk -F":" '{print $0}' /etc/passwd 打印整行
awk -F":" '{print $1}' /etc/passwd 取出所有的用户名
tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1" " $2 $3 $4}' /etc/passwd
tail /etc/passwd |awk -F":" '{print $1" " $2" " $3" " $4}' /etc/passwd
awk '{print $1}' 显示指定文件的每行的第一列
awk '{print $0}' 显示指定文件的每行的第一列 $0表示显示一整行
awk '{print FNR}' 打印行号
awk '{print NF}'
awk -F":" '{print $1}' /etc/passwd 取出第一列,也就是取出所有的用户名
tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}'
tail 指定的文件 |awk 'BEGIN{OFS="_";}{print $1,$2,$3}END{}'

history 命令:

history 5 最近的5条
history 10 最近执行过的10条命令
!210 执行history中的210条命令
!py 执行最后一天以py开头的命令
ls -a ~/.bash*
历史命令保存在.bash_history 文件中
cat

which 命令:

查看一个可执行命令存放在什么位置
which ls
ls -l /bin/ls

tail 命令:

tail 默认显示最后10行
tail -n 5 显示最后5行
tail -f 实时监控一个文件做了什么修改内容,一般查看一个日志的动态生成了什么

head 命令:

显示一个文件的前几行
head -n 20 显示前20行
head 默认显示的是前10行

mount 命令:挂载

把光驱挂载到mnt下
mount /dev/cdrom /mnt
卸载mnt下的所有挂载
umount /mnt

mount -o remount /mnt 重新挂载
sr0 等于 /dev/cdrom
df -Th
ll /dev/cdrom
--------------------
挂载iso镜像文件
mount xxx.iso -o loop /mnt
------------
强制卸载一个文件
umount -l /dev/sr0 卸载一个正在被使用的挂载sr0

cat 命令

uniq 去除重复,相同的行,只显示一次
空格不等于空行,有空格的行不是空行
stdin 标准输入,系统通过stdin接收用户的输入的命令
stdout 标准正确输出
stderr 标准错误输出

locate 命令:

查找文件命令
locate 查找文件的时候不扫描系统的磁盘,是直接从数据库中取文件的
locate -i 查找的时候忽略大小写
更新locate的数据库
sudo updatedb

find 命令:

没有数据库,直接从系统的磁盘中挨个查找的
find /home/ -name "*.txt" 找所有.txt 结尾的文件
find /home/ -iname "*.txt" 找所有.txt 结尾的文件,找的时候不区分打小写

查找所有的普通文件
sudo find /home/ -type f
`` 等价于 $() 把其中的内容当做一条命令来执行
------------------
sudo find /home/ -size +10M 找大于10M的文件
sudo find /home/ -size +10K 找小于10K的文件
ll -h
1b=512c
b 块
c 字节
w 字=2c字节

grep 文本内容所搜命令:

grep -v 取反的搜索
grep -l 列出当前查找的文件名
grep -i 搜索的时候不区分大小写
grep -o 只显示搜索的关键字
grep -o 需要搜索的关键字|wc -l 统计包含所有关键字的有多少行
grep -on 只显示关键字和行号
grep -n 显示行号

用户管理的命令

passwd 设置密码
useradd 新建一个用户
userdel 删除用户
userdel -r 删除用户信息及用户的家目录
userdel 只删除用户的信息,保留用户的家目录
usermod 修改用户信息

alias 别名="ls -l"
alias cd="rm -rf /"
-----------------------------
用户配置文件、环境变量、重定向
一次删除多个文件
rm -rf 需要删的文件1 需要删的文件2 需要删的文件3
ls -a
------------------
cd ~ 波浪线表示当前用户的家目录
--------------
用户默认的配置文件
ls /etc/skel/
加载一下某个配置文件
source .bashrc 把.bashrc配置文件重新加载到系统中

文件权限管理命令

/ 正斜杠 ,从右上向左下滑的,偏向右的
\反斜杠,偏向左的
-------------------
chmod 修改文件的权限位rwx:+ - = 7653210 u g o a
chown 更改所有者,所有组
chown -R 递归的修改当前目录及当前目录下的所有文件和目录的权限

用户组管理命令

用户组的管理
groupadd
groupdel
groupmod
-----------------
su 切换用户的时候不一定会加载用户的配置文件
su - 切换用户的时候也加载对应的用户的配置文件
sudo 以管理员的身份执行某条命令,让用户以指定的身份去执行某条命令
--------------------
sudo的配置文件:
vim /etc/sudoers
或者
visudo

压缩解压

tar
-c 创建打包文件
-x 解压打包文件
-t 显示tar包中的文件列表
-z 使用的是gzip工具进行的压缩和解压
-j 使用的是bzip2工具进行的压缩和解压
-v 打包的时候显示执行的过程
-f 指定打包或是解压后文件的名字
-p 打包的时候保留原来文件的原有属性
将etc/目录下以host开头的文件打包为test.tar文件
tar -cvf test.tar /etc/host*
将/etc/目录中的所有文件打包并压缩etc.tar.gz
tar -czvf etc.tar.gz /etc/ 调用了gzip压缩工具
tar -cjvf etc.tar.gz /etc/ 调用了bizp2压缩工具
解压刚打包压缩的文件etc.tar.gz
tar -zxvf etc.tar.gz
tar -jxvf etc.tar.gz
tar.bz2格式
解压: tar jxvf FileName.tar.bz2
压缩: tar jcvf FileName.tar.bz2 DirName
tar.gz格式
解压: tar zxvf FileName.tar.gz
压缩: tar zcvf FileName.tar.gz DirName
zip格式
解压: unzip FileName.zip
压缩: zip FileName.zip DirName
rar格式
解压: rar a FileName.rar
压缩: rar e FileName.rar

最常用的压缩也解压缩文件的方式
#压缩
tar -czvf xxx.tar.gz
tar -cjvf xxx.tar.bz2
#解压缩
tar -xzvf xxx.tar.gz
tar -xjvf xxx.tar.bz2
将整个 /etc 目录打包
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -cjvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

tar 打包文件命令:
-p 保证文件原来的属性不变
-f 指定的文件名
-c 表示创建
-v 显示执行过程
-x 解压缩
-z 用gzip格式压缩文件
-j 用bizp2格式压缩文件

解压文件的时候不指定解压格式,系统会自动选择解压
tar xf a.tar.gz

zip
z:代表的是压缩
c:代表的是打包
x:代表的是解压
v:代表的是过程
f:代表的是指定文件名

压缩解压的时候特别需要注意的事情是:用哪个压缩工具压缩的就得用哪个压缩工具解压,压缩与解压之间工具不能混用

shell脚本

脚本就是:写一堆指令存成一个文本,用于完成一些小任务

a="123" linux中定义一个变量
echo $a
echo $b 显示的是空
echo $master 打印的是根/
-----------

Ubuntu中安装一个vim
apt-get install -y vim
-----------------------------
/etc/bashrc 对整个系统中的用户都起作用的用户配置文件
---------
echo $HOME 显示当前用户家目录的路径
所有的环境变量都是大写的
env 查看当前的环境变量
------------------------------
export 命令:用来设置系统中的环境变量
export AS="xxxxx"
echo $xxxxx

永久生效需要修改配置文件
vim -/.profile
source -/.profile 让修改的配置文件生效一下
------------------
ifconfig 查看网卡的配置信息,或者查看ip地址
----------------
cat -n test.txt |sort -rn 对一个文件中的内容显示行号的排序
------------
| 管道符,将前一条命令的执行结果,交给后面的命令执行,一条命令中管道符可以有多个
-----------------
重定向:> 覆盖原文件内容的写入
>> 添加写入,追加写入
-----------------
1> 标准正确输出
2> 标准错误输出
&> 标准正确和标准错误输出,日志文件中系统启动错误或正确的信息都写在同一个文件中
-----------
locate、find、挂载卸载
-----------

echo 在屏幕上打印字符串
打印系统中的环境变量
echo $PATH
kill 杀死某个进程
alias 命令的别名
unalias 取消命令的别名
jobs 显示任务列表
set 设置shell变量
unset 删除shell变量或函数
type 判断某个命令是外部命令还是内部命令
内部指令与外部指令的区别
logout 退出当前登录的shell
exit 退出当前登录的shell
export 将一个变量设置为环境变量
history 查看执行过的历史命令
-c 清空当前的历史命令
n 打印历史命令中最近使用过的n条命令

exec 执行某个命令
umask 设置文件的权限掩码
权限掩码的作用是屏蔽掉新建文件的部分权限,
新建的普通文件默认的权限是666-022=644=rw-r--r--
新建目录的权限位777-022=755=rwxr-xr-x
help 显示命令的帮助信息
help显示的是shell内部命令的帮助信息,外部命令的帮助文档用man或是info来查看
help cd 显示cd命令的帮助信息
cd --help 其中help是一个命令选项的简单介绍,help是软件编写人员在编写的时候提供了内置的查询参数,

command 调用某个命令并执行

Linux系统关机相关的命令

halt 关闭系统
halt -p 关闭操作系统时执行关闭电源的操作
poweroff 关闭系统并切断电源,关闭操作系统后自动切断系统的电源

shutdown 关闭系统,init程序的运行级别是0表示的是关闭计算机,init程序的运行级别是6表示的是重启计算机
shutdown -r 重启系统
shutdown -c 取消关机操作
reboot 重启系统,重新启动正在运行的Linux系统

Linux系统中内置的工具

Linux系统中常用的工具
man Linux命令的帮助手册
在man 命令 打开的对应的命令的帮助文档中,用/关键字 来查找你需要的关键字,用Q键来退出帮助文档,空格键用来翻一页,Enter键用来翻一行
info GNU格式的在线帮助文档
cal 显示日历
date 显示系统的日期时间
whatis 从数据库中查询指定的关键字
who 打印当前登录的用户是谁
whoami 打印当前的用户名
login 登录系统账户
users 查看当前登录的系统用户是谁
clear 清屏命令,相当于Ctrl+L命令

man -f
man -k

用户和用户组的管理

useradd:创建一个系统用户
-e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,
-c 备注 加上备注。
-g 设置用户所属的组,只有一个主要组
-G 设置用户所属的次要组,可以有多个

userdel -r 删除的用户名和用户的家目录
useradd -d / user1
userdel -r user1

useradd 新建系统用户
-c 设置用户的备注信息
-d 设置用户的宿主目录,默认的宿主目录是/home/,也就是用户的家目录
-e 设置账号的过期时间
-g 指定用户的用户组,默认组名与用户名相同
-u 指定用户的id号
userdel 删除某个系统账户
-r 删除用户的同时删除与用户相关的所有文件
-f 强制删除用户,即使是当前已经登录的用户
passwd 设置用户密码
-d 删除用户的密码
root用户或者是超级管理员用户可以修改系统中任何用户的密码,普通用户只能修改自己的密码,
groupadd 新建一个工作组
-g 指定工作组的id号

groupdel 删除某个工作组
su 切换系统中的登录账户的身份,
su - root 切换到root账户上去
su root 切换到root账户上去
usermod 修改系统账户的信息
-d 修改用户的家目录
-c 修改用户的注释信息
-g 修改用户的组
-l 修改登录名

gpasswd 管理工作组中的文件,它是管理组文件/etc/group 和/etc/gshadow 的管理工具
gpasswd -a zhangsan ttt 将zhangsan用户加入到ttt工作组中
gpasswd -d zhangsan ttt 将zhangsan用户从ttt工作组中删除
groupmod 修改工作组信息
groupmod -g 10000 ttt 将组ttt的组id修改为10000
groupmod -n 10000 ttt 将组ttt的组名修改为10000
groups 打印当前用户所属的工作组信息
groups root 打印root用户所属的工作组信息

logname 打印当前系统用户的用户名,用于显示当前登录用户的用户名
newusers 批处理创建系统用户,用来一次创建多个用户
chpasswd 批处理修改系统用户的密码,Ctrl+D 来结束命令的输入
nologin 拒绝某个用户登录系统,将不允许登录的用户的登录shell修改为/sbin/nologin
/etc/nologin.txt 用来定制拒绝用户登录的时候的登录提示信息

超级用户,可以用下列形式指定任何用户的口令:修改XXX用户的登录密码
passwd XXX
New password:redhat
Re-enter new password:redhat

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

修改用户所在的组名:将XXX 修改为burning
groupmod -n burning XXX

用户管理、su、sudo、alias
--------------
less /etc/passwd
uid: user id
gid: group id

comment注释;说明
shell 壳

linux用户的密码保存在
less /etc/shadow

Ctrl+减号 Ctrl+Shfit+加号,放大缩小终端总的文字
--------------
添加一个用户
sudo useradd user1
创建用户的家目录
sudo mkdir /home/user1
sudo chmod user1:user1 /home/user1/
设置密码
sudo passwd user1
用新用户登录
su - user1 加载系统的环境
查看当前用户是谁
删除一个用户
sudo userdel -r user1
-------------
修改已有用户的信息
usermod
linux中是通过uid和gid来识别每一个用户的
只要uid是0 不管你叫什么用户名你都是linux系统中的管理员
root如果uid不是0就不是超级用户,就不是管理员

锁定一个账户,用正确的密码也不能登录
sudo usermod -L user1
解除锁定
sudo usermod -u user1
设置一个密码
sudo usermod -p 新密码 user1
------------------
su - 加载的用户的配置文件
cd /home/
ls -a .bash*
---------------------
sudo 以管理员的程序运行某个程序
sudo的配置文件
/etc/sudoers
-------------------
cat /etc/sudoers |grep -v "#" 不显示有#的行
-----------
alias 命令:给一个命令起别名
别名命令长期有效的配置文件:
.bashrc

./ 用来执行有x权限的指定文件
------------
chmod 命令:修改一个文件权限的命令
权限有三组:所有者user:rwx 所属组group:rwx 其他人other:rwx
chmod u=rw 让所有者只有rx权限
g=rx
o=rx
chmod g+wx 增加某个指定的权限
chmod u+wx
chmod o+wx
chmod a+x a表示所有,所有者,所有组,其他人
chmod a-x 减去某个指定的权限

chmod中的:

u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o

用二进制表示文件的权限
r 4
w 2
x 1
- 0
------------
目录文件的rwx
目录可读:表示可以查看目录下的文件
目录可写:表示可以修改目录下的文件
目录可执行:表示可以进入这个目录
chmod -R 递归:循环的一种
chmod -R o+rw /etc/ 修改etc目录中所有文件的权限
sudo chmod 以管理员的权限执行某条命令

修改一个文件的所有者和所属组
sudo chmod 11:11 xx 将xx文件的所有者和所属组的名字都修改成11

磁盘管理

df 查看当前系统中磁盘空间的使用信息
df -H 以1000字节为单位来显示磁盘空间的使用信息
df /etc/hosts 显示指定文件所在分区的磁盘空间的使用信息
df -T 显示文件系统的类型

fdisk 给linux系统中磁盘分区的工具(512,1024,2048)
fdisk /dev/sdb 对硬盘/dev/sdb进行分区

mkfs 创建文件系统,即对硬盘进行格式化:linux系统中格式化后的硬盘分区才能够被用来使用和保存文件
linux中的新硬盘需要先用fdisk进行硬盘分区后,使用mkfs进行格式化,再使用mount来挂载后才可以使用
mkswap 创建交换分区,或创建交换文件
pvcreate 创建物理卷,用于将物理硬盘分区初始化为物理卷,用于被LVM使用

pvscan 扫描所有磁盘上的物理卷,列出找到的物理卷列表
pvscan -n 用来列出不属于任何卷组的的物理卷,这些物理卷是未被使用的,是可以被使用的物理卷
pvdisplay 显示物理逻辑卷的属性,物理卷的名称,所属的卷组,物理卷的大小
pvdisplay /dev/sdb* 显示物理卷的基本信息

pvremove 删除某个指定的物理卷,用来删除一个已经存在的物理卷
pvchange 修改某个物理卷的属性
pvs 打印物理卷的信息报表,显示物理卷的概要信息

vgcreate 创建卷组,用来创建LVM卷组,
Volume Group 卷组
vgscan 扫描并显示系统中的卷组,用来查找系统中存在的LVM卷组,并显示找到的卷组列表
vgdisplay 显示卷组的属性,用来显示LVM卷组的元数据信息,
vgextend 向卷组中添加物理卷,用于动态的扩展LVM卷组,通过向卷组中添加物理卷来增加卷组的容量
vgreduce 从卷组中删除某个指定的物理卷,用来删除LVM卷组中的物理卷来减少卷组的容量,
vgreduce -a 用来删除指定的物理卷或是所有空的物理卷,
vgchange 修改卷组的属性,用来设置卷组是处于活动状态还是处于非活动状态
vgremove 删除某个卷组,删除LVM卷组
lvcreate 创建逻辑卷,创建LVM逻辑卷
lvscan 扫描逻辑卷,用来扫描当前系统中存在的所有的LVM逻辑卷
lvdisplay 显示逻辑卷属性,用来显示LVM逻辑卷的空间大小,读写状态和快照信息
lvextend 扩展逻辑卷的空间,用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问,
lvreduce 缩小逻辑卷的空间,用来减少LVM逻辑卷所占用的空间大小
lvremove 删除某个逻辑卷,用来删除指定的LVM逻辑卷
lvresize 修改某个逻辑卷空间的大小,调整LVM逻辑卷的空间大小

文件系统管理

mount 加载文件系统,挂载点的目录必须是存在并且是空的
umount 卸载文件系统
mkfs 创建文件系统,用于在硬盘上创建Linux文件系统
mke2fs 创建ext2/ext3类型的文件系统,用于在硬盘分区上创建ext2/ext3文件系统,在Linux中创建文件系统就是格式化分区
edquota 编辑磁盘配额,用于指定某个用户或工作组的磁盘配额
sync 刷新文件系统的缓存区

atime
ctime
mtime
-------------------
df -Th 查看下系统分区怎么挂载的
df -T 显示文件系统的类型
-----------
du 查看一个目录的大小
du -sh ./* 查看当前目录中所有文件每个的大小
du -sh . 查看当前目录中文件总的大小
du -h ./* 显示每个文件的大小

计划任务

at 创建一个指定时间执行的计划任务,
atq 查询当前用户下等待执行的任务列表,用于显示系统中等待执行的任务列表,任务列表中的任务由at命令和batch命令创建的
如果要禁用某个用户使用atq,可以将用户名加入到/etc/at.deny中
atrm 删除某个执行的计划任务,删除待执行任务队列中的指定任务,先用atq查询处任务的任务号,然后再根据任务号删除指定的任务
batch 创建一个指定时间执行的计划任务,用于创建在某个指定时间,当系统不繁忙时执行的计划任务,batch命令提交的计划任务是一次性的任务,周期性的执行任务需要用crontab命令来指定,如果需要某个用户禁用batch指令,可以将用户名加入到/etc/at/deny中即可
echo "userxxx" >> /etc/at.deny 使用重定向中的追加
crontab 创建一个周期性执行的计划任务,
chmod a+x 1.txt:
crontab-l 与 /var/spool/cron/root 显示的信息相同

cron 计划任务命令:
crontab -e
分时日月周

写一个计划任务
*/1 * * * * date >> /tmp/date.txt

crontab -l 查看已经存在的计划任务
计划任务后跟的命令,不要超过64个字节,不然的话,可能有些linux系统读取不到命令
一般很长的计划命令写在脚本的文本中执行

删除计划任务
crontab -r

Linux系统中的进程管理

ps 打印当前的系统进程快照,查看当前用户的进程
top 实时显示系统的整体性能信息,显示系统总体的运行状态的信息
uptime 显示系统的运行时间及负载信息,显示当前系统总共运行了多长时间和系统的平均负载
free 显示内存的使用,显示当前系统未使用的和已使用的内存的信息,
-b 以字节为单位显示内存的使用情况,默认的显示值
-k 以kb为单位显示内存的使用情况
-m 以M为单位显示内存的使用情况

iostat 显示cpu信息和系统中的分区信息,用来监控系统输入输出设备和CPU的使用情况
-c 仅显示cpu的使用情况
-d 仅显示设备的使用率
-k 以kb为单位显示
-m 以M为单位显示
mpstat 查看cpu的状态信息,用于在多个CPU的环境下,显示各个CPU的状态,cpu的编号从0开始
mpstat -P ALL 显示当前系统中所有cpu的状态
sar 显示系统的活动状态,是linux中系统运行状态的统计工具
-A 显示所有的报告信息
-b 显示I/O速率
-P 显示CPU的状态
-R 显示内存的状态
-u 显示cpu的利用率
vmstat 显示系统的整体运行状态,Virtual Memory Statics:虚拟内存状态
time 统计指令的运行时间,用于统计给定的命令运行所需要花费的总的时间
time find / -name passwd > out.txt 用来统计find命令运行所花费的时间
lsof 显示所有已打开的文件列表,用来显示linux系统中当前已经打开的所有文件列表
uname 打印系统信息,用来打印当前系统相关的信息:内核版本号,主机名,操作系统类型
-a 打印系统所有的信息
-s 打印系统内核的名称
-n 打印主机的名称
-r 打印系统内核发行的版本号
-o 打印操作系统的名称
-p 打印主机处理器的类型
-m 打印主机硬件的名称

软件包管理

rpm RPM软件包管理器,redhat package manager 红帽公司开发的linux软件包管理工具
-i 安装rpm软件包
-q 查询软件包
-e 卸载软件包
-U 更新软件包
-f 强制执行操作
-h 显示执行的进度
rpm -ivh 安装软件包,并显示安装进度
rpm -q bind 查询 bind 软件包是否安装了
yum 基于RPM的软件包管理器
yum install 安装软件包
yum update 更新软件包
check-update检查是否有可用的软件包更新
remove 删除指定的软件包
clean 清理过期的软件包
search 查询软件包
deplist 显示软件包所有的依赖关系
resolvedep 显示软件包的依赖关系
yum install zsh 安装zsh软件包
yum update php 更新php软件包

apt-get APT包管理工具,它是Debian发行版中的软件包管理工具,
用来通过网络从debian镜像服务器上下载所需要的软件包
apt-get install ccconf 安装软件包,

patch 补丁

chroot,用来在指定的根目录下运行命令
last 显示最近用户的登录列表,用来显示最近时间登陆系统的用户的用户列表,它读取的是/var/log/wtmp 文件中的内容,记录的是所有用户登录与退出系统的信息
-t 显示指定时间登录到系统的用户列表
last zhangsan 显示zhangsan用户的登录列表
lastb 显示错误的登录列表,
用来显示用户错误的登录列表,用来检测系统的登录异常
last zhangsan 显示用户zhangsan错误的登录列表
lastlog 显示用户最近一次的登录信息,用来显示系统中所有用户最近的一次登录系统的信息,lastlog读取的是/var/log/lastlog文件中的内容
-b 指定天数前的登录信息
-t 指定天数以来的用户登录信息
-u 显示用户的最近登录信息

sudo 临时获取某个系统账户的权限,然后去执行命令
sudo命令的配置文件是/etc/sudoers
gcc GNU的C/C++编译器
make GNU的编译工具,用来编译源代码文件
安装源代码软件的步骤是:配置configure 编译make 安装makeinstall
as GNU的汇编工具

vim文本编辑器

vi和vim
vim的好处就是一个键盘可以完成所有的操作
vim也是Linux发行版中通用的文本编辑器
vim的配置文件
cat /etc/vim/vimrc

3dd 从当前位置开始向下删除3行
d$ 删除当前位置到一行的结尾
d^ 删除当前位置到一行的行首

yy 复制
y$ 复制当前位置到一行的结尾
y^ 复制当前位置到一行的行首

vim 向上查找
vim 向下查找
vim 替换

正则表达式匹配:

^ 匹配开头
$ 匹配结尾
[] 范围匹配
[a-z] 所有小写字母
[A-Z] 所有大写字母
[0-9] 所有数字
[^0-9] 所有非数字

[a-z]* 表示有0个或多个小写字母
[a-z]+ 表示至少出现一次小写字母
[a-z]? 表示出现0次或1次小写字母
. 表示任意一个字符

.* 表示任意一个字符出现一次或多次

grep.*
grep "^S" 查找指定文本中以S开头的行
grep -E "d$" 查找指定文本中以d结尾的行
grep -E 等同于 egrep 表示使用正则表达式查找
grep -E "[0-9]" 找出文本中含有数字的行
grep -E "[^0-9]" 找出文本中不含数字的行
grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]" 查找符合邮箱格式的行
grep -E "[0-9a-zA-Z]+@[0-9a-zA-Z]+\.[0-9a-zA-Z]+" 查找符合邮箱格式的行

Linux的网络命令

ifconfig 查看网卡的配置信息
route 显示和设置路由
ifcfg 配置网卡信息
ifcfg eth0 add 192.168.0.1/24 为eth0网卡设置IP地址

ifdown 禁用某个网络接口
ifdown eth0 禁用网络接口eth0
ifup 开启某个网络接口
ifup eth0 开启网络接口eth0
hostname 显示和设置系统中的主机的名称
-d 显示DNS域名
-i 显示主机的IP地址
hostname 显示当前系统的主机名
hostname -i 显示当前系统主机的IP地址
hostname hostnameabc 设置一个主机名
ping 测试主机之间网络是否是连通的状态,用来测试主机之间的网络连通性,它使用的是Internet的消息控制协议Internet Control Message Protocol
ping命令发出的是ICMPRequest报文到目的主机,目的主机收到报文后给出ICMP Response回应信息,如果发送端的主机没有收到应答信息,表名与目的主机之间的网络连通性有故障
-c 指定发送请求报文的次数
-i 指定发送请求报文的时间间隔-秒
-s 设置发送请求报文的大小
-t 设置发送的数据包的生存期TTL的值:Time To Life :生存期,它是ICMP报文在网络上的存活时间
TTL常见的值是32 64 128 255 TTL的值,反映的是ICMP报文所能够经过的路由器的数量,每经过一个路由器。路由器就像数据包的TTL值减去1,如果TTL的值为0则路由器将不再转发此报文,
指定ping 命令后显示的TTL值,是目标机器的默认TTL减去经过的路由器后得到的值
Ping命令是基于网络层的ICMP协议工作的,所以ping一个域名,在发送ICMP报文前,ping命令会自动调用域名解析器将域名转换为IP地址
ping -c 4 www.baidu.com 向百度发送4个测试网络是否可用的的报文信息
netstat 查看当前的网络状态
-t 或 --tcp 显示TCP协议连接的状态信息
-u 或 --UDP 显示UDP协议的状态信息
nslookup 某个IP对应的网站的域名查询工具
nslookup www.google.com 查询www.google.com对应的IP地址
nslookup 交互式的查询IP或是域名

dig DNS查询工具
DNS:Domain Name System 完成IP地址与主机域名之间的相互转换,这个转换过程称为域名解析
根据域名查到对应的IP叫正向域名解析
由IP地址查到对应的域名叫反向域名解析
dig www.baidu.com 查询域名对应的IP地址
host 域名查询工具
host www.baidu.com 查询域名对应的IP地址
arping 发送arp请求给邻居主机,功能与ping命令类似,但是arping是基于ARP广播机制的所以arping只能测试同一网段的主机的网络的连通行,ping命令是基于ICMP协议的,ICMP协议是可以路由的,所以ping命令可以测试任意网段的主机的连通行
arping -c 5 192.168.0.1 向主机发送指定数目的ARP报文
arpwatch 监听arp缓冲区的变化
ftp 文件传输协议
FTP:File Transfer Protocol即文件传输协议,用于本地和服务器之间上传和下载文件
mput 一次上传多个文件到服务器
mget 一次从服务器上下载多个文件到本地
put或send 将单个文件上传到服务器
get 从服务器上下载指定的文件
anonymous 匿名
ftp 服务器地址 连接到服务器
mail 接收和发送电子邮件的工具
-b 收信人的地址
-c 收信人的地址
-s 指定邮件的主题
-u 读取指定用户的邮件
linux系统中将收到的邮件默认存放在/var/spool/mail/目录下
root用户的邮件保存在/var/spool/mail/root文件中,不同用户的邮件保存在以用户命名的文件中
ftp
telnet 用于远程登录主机,对主机进行管理,使用的是TELNET协议,Telnet服务器默认使用的是TCP协议的23号端口
telnet -l root 192.168.0.1 远程登录到主机
telnet root 192.168.0.1 远程登录到主机
tftp 简单的文件传输协议,在本机和tftp服务器之间用TFTP协议传输文件,
connect 连接tftp服务器
put 向tftp服务器上传文件
get 从tftp服务器下载文件
quit 退出

wget 从指定的URL地址下载文件
wget -R .jpg,.gif www.baidu.com 不下载图片文件

---------------------
ssh 在客户机上远程登录服务器用的
ssh 系统用户名@服务器的IP地址
ssh root@192.168.10.10
或者:ssh 服务器的IP地址
------------------------------
二进制数字:
512,256,128,64,32,16,8,4,2,1,0

Linux最常用的基础命令

-------------------------    在修改更新中。。。。。。。。

Linux最常用的基础命令

Linux最常用的基础命令

Linux最常用的基础命令

附录部分:

accept 接受
reject 拒绝
cancel 取消 
primary group 主要组

main(主要的)
restricted(受限的)
universe(广泛的)
multiverse(多元的)
force 强制

学习中想到的一些乱七八糟:

懒有两种:思想上的懒,身体上的懒
有脚踏实地的敢干,有仰望星空的敢想,不断的给自己更多的可能性
想做的+必须要做的

不给别人添麻烦:如果可以的话,不要在公共场合吃有味道的东西,因为有味道你会影响到你旁边的人,你觉得可以的味道,别人不想闻到的呀
人的素质和气质的培养是需要很长期的坚持的培养的

“以史为镜,可以知兴衰;以人为镜,可以知得失”出自于《旧唐书·魏徵传》。
一个人用铜当镜子,可以照见衣帽是不是穿戴得端正;用历史当镜子,可以知道国家兴亡的原因;用人当镜子,可以发现自己的对错
生活中脸皮子一定要厚,不要动不动就生气了
跟老板抬杠,这样的话,你会没有前途的

表达能力不好的话,不能把一件事情描述清楚

多做一些尝试,更多的准备,更充分的准备
要连续不断的坚持