Linux初识

  • 前言
    • 环境
    • Linux背景
      • 简述发展史
  • 一、基础指令
    • ls
    • pwd
    • cd
    • touch
    • mkdir
    • rmdir 和 rm 指令
    • man
    • cp
    • mv
    • cat
    • more指令
    • less
    • head和tail
    • date
    • cal
    • find
    • grep
    • 有关用户的操作
    • zip和unzip
    • 热键
    • file
    • tar
    • bc指令
    • uname -r
    • 关机

前言

环境

作为程序员的我们,当我们拥有一台云服务器的时候,那一定是激动不已的。这也许和每个程序员怀揣着改变世界的梦想有关,有了一台云服务器,意味着我们离世界更近了一步,不再是孤单的alone代码。
这里我使用的是阿里云的服务器,让我们来开始Linux的学习生涯吧!

Linux背景

简述发展史

要说Linux,首先一定要提到UNIX 。
1970年上下,一位大佬用汇编语言写下了C语言,然后用C语言写下了UNIX,当然这个大佬是为了赚钱啦。
这件事发生在当时大名鼎鼎的贝尔实验室。
然而有一天,一个芬兰的大学生和我们现在大学生一样,秉持着能白嫖就白嫖的精神,在1991年仿造了unix,写下了一万多行的linux,并把它开源。这里就是当今linux的雏形。这位学生叫做托瓦兹。
UNIX一般都是实验室等地方使用的大型机器。在那一段时期,mac os 和 windows 作为面向普通用户的操作系统和unix一起在发展。其中mac os 和windows 都是非常巨大的公司,也有许多的竞争对手,这时候会有很多有实力的研究人员,黑客,工程师都加入了开源的linux社区,免费为了linux做贡献,还为了避免两大头进行垄断。linux的代码量从一万多行的小体量,变到现在的千万行级别,从而被我们现在所使用。
这里参与编写linux的人中,有愿景驱动型,为了改造世界,实现人生价值。而且大家都知道,把你的代码开源出来,可以更好的进步呀,有人给你看错误。
所以开源就意味着稳定性高,更安全,当然还有免费。
linux发展起来,开源的是linux内核,也就是操作系统源代码。
同时这样诞生了很多基于linux内核的发行版本,centos ubuntu debain kail 红旗 redhat。。。
这些版本不是开源的人做的,是企业组织个人等做的。他们有部分是为了赚钱的。但不一定所有的发行版都是为了赚钱,我们使用的centos是免费的。
他们使用linux内核是一样的,这些叫做各种应用发行版。相反的还有内核版本。每一种发行版还有自己的细节版本,centos7 、8。
linux、windows都是桌面的操作系统,也就是必须用pc。慢慢的我们产生了手机,并有一家美国小公司把linux内核移植到手机上,并进行基础开发。但之后被google收购了,google并把这些打包的软件进行了开源,为了对抗当时的苹果。
行了小故事就讲到这里吧!让我们开始真正的系统学习。


学习linux之前,我们首先要了解os,来看看基础的架构

我们学习的os,本质上是使计算机更好用。

一、基础指令

ls

说一下重要的,
ls-d :显示目录相关信息
ls-l :显示文件细节信息
这个不多说了,一般我直接使用 ll,给大家一个表参考一下:

pwd

显示当前路径

cd

这里多说一点,linux系统中,磁盘上的文件和目录是一棵多叉树,每个节点都是目录或者文件

为什么选择多叉树呢?
答案是显而易见的,每一个结点只有唯一的父节点,这样一来,每一条路径都是唯一的,便于查找。
cd+目录名可以直接改变到指定目录下。
这里有一个概念,叫做绝对路径和相对路径。


这几个命令是比较常用的。cd - 来回切换很好用;cd~ 进入家目录,也就是用户的工作目录;
cd … 放回上一级目录。当我们显示出linux的隐藏文件时候,ls -a,我们可以发现每一个文件中都有一个点和两个点这样文件,这里一个点为当前目录,两个点为上级目录。
我们在win中的双击就相当于 cd + ls了。

我们来看一下一般普通用户登陆后的默认路径为:/home/xxx
这里的/,为路径分隔符,比较有意思的是,windows下的路径分隔符是,刚好是相反的,如果我们点开一个网址,
可以根据正反符号来判断这个网页是用什么系统写的。当然目录中的第一个/ 为根目录的标志,之后的才是路径分隔符。
还有一条指令:whoami可以查看当前用户。

touch

touch可以用来创建文件

mkdir

这个指令是比较重要的指令,用来建立一个文件夹。一般我们建立多个目录的时候,都需要带上 -p 选项
递归的建立多个目录。
像是这样:mkdir -p test/test1/test2 ,可以建立一整条路径。p是parents的意思。

rmdir 和 rm 指令

rmdir是一个与mkdir相对应的指令,只是用来删除空目录的指令。不过我们一般不使用,我们用下面的rm。
我们使用一般带上 -p ,递归的删除这一整条路径。子目录删除后,如果父目录也空了,也把父目录一起删掉。
rm命令可以同时删除文件或目录
rm -f 即使文件只读(写保护),也直接删除,强制删除
rm -i 删除前逐一询问
rm - r 递归的删除其下所有文件。

这里要提醒大家一点,rm -rf 很好用,但是一定要慎重,不要做删库跑路的那个人。删了就没了。
当然还有一个种常用的删除方式
rm *
这里的 * 是通配符 ,可以匹配当前目录下的任何内容
rm ./*
这就是清空当前目录。

man

man就是用来查命令、参数以及库函数的工具。
比如 :
man whoami
man printf,如果要查printf 那仅仅是这样写是不够的,我们要带上手册编号。
默认是查看1号
正确的查找方法是: man 3 printf

一般linux系统中会自带这8本手册。

cp

cp的功能是复制,常用的几个参数

-f,-i,-r ,分别是强制、询问、递归

还可以cp -fr * . .
这句指令的意思是,强制递归把当前所有文件 拷贝到 上级目录中。
还可以cp -rf *.txt . .
强制递归把当前所有.txt后缀文件 拷贝到 上级目录中。

mv

mv是移动文件夹,相当于剪切

同理 mv也可以 这样
mv *.txt . .
mv . ./ *.txt .

还可以重命名
mv dir .
mv dir1 dir2

-f -i,都是些常用的指令。

cat

查看目标文件的内容,一般我们使用的参数有三个

-b 对非空行进行编号,
-n 对输出的所有行编号
-s 不输出多行空行。

more指令

和cat类似

less

这个less和以上两个也一样,但是它是最强大也是推荐大家使用的查看器。
more无法向前翻,只能向后。less就可以使用上下键来回翻看。
而且less在查看之前不会加载整个文件。

head和tail

显示文件开头或者结尾几行的文字区域,
-n显示行数。
其中tail将文件写到标准输出,使用tail -f 可以方便查阅正在改变的日志文件。因为我们一般看日志都是从最新的开始看。


看了这么多东西,我来问一个有趣的问题

?:有一个文件有10000行,我想看50-100行的信息该怎么办?

这里我们需要简单介绍一下管道和重定向的概念

echo “hello world ” 会打印到屏幕上
echo “hello world ” > temp.txt 会重定向到temp.txt文件中。
这叫输出重定向,每次都要清空文件重新写入。
echo “hello world ” >>temp.txt
这是追加重定向,不会清空文件了,会补到后面。

那当然还有输入重定向喽
cat < temp.txt
它的效果是把文件里的东西写入。不重定向的话,那显然是从键盘输入。现在从文件输入了。重定向了。

那么究竟什么是重定向呢?
首先我们可以这样理解,linux下一切皆文件,显示器是文件、磁盘是文件、键盘网卡显卡都可以看作文件,这是一种设计哲学。文件之间怎么交互呢?

C程序会默认打开三个文件
stdin 标准输入 (键盘)
stdout 标准输出 ( 显示器)
stderr 标准错误 (显示器)
他们分别对应的文件指针
extern FILE * stdin;
extern FILE * stdout;
extern FILE * stderr;
他们都可以r,w,a,读、写、追加。
那么重定向就是改变了文件的方向。本来要输出到显示器,结果输出到temp.txt,本来要从键盘输入,现在从文件输入。
这是大概感性的理解,至于到底是为什么,我们以后再谈。

来到管道的概念

什么是管道,现实生活种管道是传输某种资源的,其中计算机上最重要的资源是什么?
那一定是数据,
所以管道的意思就是把一个数据传到另一个入口种。
没错,就是这个 |
我们用一命令来看
head -1010 file.txt | tail - 10
|之前生产数据,通过|传输数据,再给后面tail -10 读取数据。这样就把数据充分的利用了起来。效率很高。


接下来继续看看基础的指令吧

date

指定格式显示时间,如果有机会当我们一个进入机房,不允许带手机电脑手表,我们只能对着服务器操作,那我们没有时间了?常常工作到晚上三点了还不知道呢?
我们用date来看时间吧!


提到时间那就不得不提一下时间戳了

时间戳是从1970年1月1日北京时间早上八点开始到现在所经历的秒数,不考虑闰秒。
我们总会提问到,这个数字会一直大下去,那总有一天计算机会存不下,就会导致有关时间的严重问题,航班延误,起飞降落,火车进站出站,导弹飞行时间,卫星轨迹等等。这样的问题是存在的,这就叫做千年虫问题。我们要时刻注意着,更新存时间戳的设备。

date + %s 可以把时间变成时间戳
date -d@ 秒数 可以把时间戳变成正常时间。

cal

说完时间,就有日历了
阳历-太阳历-西历,地球绕太阳一周为一年

上面几个不太重要,我们再来一个重要的

find

搜索任何文件
find的功能非常强大,由于它的功能非常多,我们暂时先介绍一个
-name,按文件名查找。
find 真正的要在文件系统中进行查找直接访问磁盘,并且效率比较低。
which 可以查看命令文件的路径
alias 可以封装自己的指令

grep

在文件中搜索字符串,将找到的行打印出来
-i,忽略大小写
-n,输出行号
-v,反向选择


有关用户的操作

adduser
passwd
这两个为创建用户
su - 切换到root输入root密码
userdel -r 删除用户

我们想要把普通用户加入到新人列表中:
切换到root
vim /etc/sudoers
在这里添加上用户名就好了。

zip和unzip

zip压缩文件成zip格式
-r递归处理

zip test.zip test2 / * 将test2目录压缩
unzip test.zip -d /tmp 解压到tmp中
-d是指定目录的参数
默认情况况下只进行本层目录的压缩,-r可以递归压缩

热键
  1. ctrl d
  2. ctrl c
  3. 上下
  4. tab自动补全
  5. ctrl r
file

查看文件的更多属性信息。

tar

tar很重要,打包和解包,不打开文件直接看内容

我们比较常用的
tar -cvf 仅打包不压缩
tar -zcvf 打包后以gzip压缩
tar -jcvf 打包后以bzip2压缩
我们需要注意一下,参数f后的文件名要自己取,我们习惯上.tar命名
如果加z,文件名一般为.tar.gz或者.tgz
如果加j,则.tar.bz2

tar -ztvf 查看gzip内的文件内容

tar -zxvf 解压

还有多种多样的操作。

bc指令

这就是一个计算器

uname -r

这里有一个小tips,我们看系统的版本信息
x86:32位机器
x86_64 :64位机器
一般x86是指intel的处理器

关机

shutdown
-h 立即关机
-r 重启
-t sec 几秒后关机
注意我们云服务器是不关机的。

Linux手册---基本了解基本指令(1)相关推荐

  1. Linux系统 (二)- 指令学习2

    ~~~~ 前言 mkdir 基本语法 选项 -p rmdir 基本语法 -p选项 rm 基本语法 选项 -r 选项 -f 选项 -i stat man 基本语法 在线手册介绍 选项 number 选项 ...

  2. 【Linux】1.0常见指令以及权限理解(上)

    文章目录 1.Linux简介 1.1 Linux内核介绍 1.2Centos操作系统介绍 2.Linux 常见指令 1. ls 指令 2.pwd 指令 3.cd 指令 4.touch指令 5.mkdi ...

  3. 修改linux的时间可以使用date指令

    修改linux的时间可以使用date指令在命令行输入:date 显示当前时间 [root@localhost ~]# date 2011年 05月 16日 星期一 10:04:38 CSTdate - ...

  4. linux批量命令换行,Linux 下的这些高效指令,是你快速入门运维的神器

    原标题:Linux 下的这些高效指令,是你快速入门运维的神器 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它 ...

  5. linux pv命令,linux运维系列pv指令

    原标题:linux运维系列pv指令 Linux运维相对于其他的工作来说要简单一些,因为它不需要掌握那么多的编程语言,不需要进行技术开发,是很多学历不高但是想转行IT业人员的不错的选择,今天荣新科技就来 ...

  6. 【Linux】Linux操作的一些基本指令

    Linux操作的一些基本指令 标题顶部 基础指令 关机 重启 进程指令 防火墙 查看历史命令 切换用户 网络配置 目录.文件指令 目录的切换 查看目录文件 创建文件.目录 删除文件.目录 移动或复制文 ...

  7. linux系统下的ps指令详解

    文章目录 一.引言 二.初探ps指令 三.第二部分:进程信息解读 四.第三部分:进程过滤与排序 五.第四部分:实例应用与总结 一.引言 在Linux系统中,有许多命令可以帮助我们监控和管理系统中正在运 ...

  8. Linux启动并进入mongodb指令

    Linux启动并进入mongodb指令 操作环境 VMware16 Centos7 XShell6 首先在VMWare当中启动NoSql_1系统 可以使用系统当中的终端,也可以使用XShell6远程链 ...

  9. linux中php是什么指令,什么是linux命令

    linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...

最新文章

  1. java反射获得注释_Java反射、注解
  2. .gitignore for Visual Studio项目和解决方案
  3. markdown 创建表格
  4. Delphi_04_Delphi_Object_Pascal_基本语法_02
  5. MySQL 报 Can't create more than max_prepared_stmt_count statements
  6. 北京租房一个月多少钱?数据带你了解北京8月各区租金情况
  7. 双边分支网络:兼顾特征和分类的长尾问题解决方案
  8. Hbase的应用场景、原理及架构分析(转:https://blog.csdn.net/xiangxizhishi/article/details/75388971)
  9. functools学习有感
  10. java web 之间通信,【Java】Web发展中通信的方式有哪些呢?
  11. 谷歌逐步取消对IE6的支持
  12. php框架和不用框架_如何选择一个PHP框架
  13. VS启动多个实例调试
  14. php显示地址栏携带的错误信息_php-fpm搭建及加固
  15. java 编写a-z输出,有1-26个数字和a-z字母,用Java多线程实现先输出2和数字再输出2个字...
  16. google嗅探(简洁实用版)
  17. 安装svn + vs code配置svn
  18. 一份毕业指南给需要的人
  19. zhaow游戏知识问答
  20. 微信公众号开发之网页授权

热门文章

  1. 短语 、直接短语 、 句柄
  2. 【YAML】YAML语言|YAML配置文件|YAML库用法|相比json的区别优势
  3. python-openCV识别银行卡号,车牌同理,代码直接可用
  4. 更改Windows电脑的锁屏pin密码
  5. 微尘网络安全之---LXL角色信息详细分析
  6. java后端判断接收的日期范围不能超出一周
  7. 西门子1200 EPOS方式运动控制
  8. windows 新版skia编译 版本号m37_2062(2018.1.1)
  9. 60个非常实用的CSS代码片段,千万要收藏好了!
  10. 学习管理系统能为企业带来哪些好处呢?