第一天

一、操作系统

1.1.1操作系统的目标

·方便:使计算机系统易于使用

·有效:以更有效的方式使用计算机系统资源

·扩展:方便用户有效开发、测试和引进新功能

1.1.2 操作系统的地位

操作系统——向下封装硬件

系统编程:在某个系统上面编程,系统调用,调用操作系统提供的接口

Unix => Linux

2.文件系统

2.1目录和路径

Windows \

Unix/Linux /

(记住 /   /bin 和 /home)

(记住lib C语言使用时候需要的库函数)

usr == Unix System Resource4

/ 根目录

/home 家目录

/bin 放工具

/lib 放库文件

/usr/include 头文件

2.3 一切皆文件

2.权限问题:

ls -l stdio.h

开始的-代表文件,-后面有9个字符,三个三个为一组,分类

第一组:文件所有者

第二组:用户组(相当于qq群..)

第三组:其他用户

root root 代表root用户组的文件所有者root

-没权限

r读

w写

x可执行

第一步:whoami 查看我是谁

第二步:cat /etc/group 查看到root组的群号是0

第三步:cat/etc/passwd

解读:

我的蜜罐子你叫做呼号

改一下权限(这个以后会学)

然后ls -l,gedit stdio.h 就会发现编辑器上没有只读的限制了。

3.命令:

ls –help

ls -a  显示所有文件(包括隐藏文件)

4.命令使用方式和技巧

(其实好像是manual的简写)

命令printf aaa

有一个函数也叫printf

如果直接输入 man ls

那么其实查询的是命令

敲一下 man man 看一下手册说明

原来输入man printf的时候查询的是第一章节的内容,

所以以后查询的时候指定第三个章节好了,

自动补全: 按tab让它自动补全

05:常用命令:ls

1.ls -l -a -h (-human更人性化)

ls -lah

2.ll (是ls -l-a的一个别名)

3.

(.. 和 . 算两个文件夹)

4.ls stdio.h 看看有没有这个文件,如果有stdio.h就会显示出这个名字

ls *.c

ls te* 找te开头的

ls ?.c 只匹配一个字符的

ls [1-9].?

5.touch 如果文件不存在,则创建文件

如果文件存在,文件修改时间就会变成当前时间

touch *.c 把所有.c文件改成当前时间

touch \*.c (这时创建了一个文件,不是通配符,而是转义字符)

6.常用命令:重定向、more、管道

1.ls > test.txt

把ls显示到屏幕的东西写到test.txt中(覆盖)

2.cat /usr/include/stdio.h

3.more /usr/include/stdio.h(分屏显示)

4.管道: cat stdio.h | more

5.ls | grep std 输入的是ls 输出的要grep

7.常用命令:clear、cd、pwd

1.clear 或者 ctrl+l

2.cd .. .

cd什么都不加或者加~ 去到用户主目录

cd – 回到上一次进入的目录

8.常用目录:mkdir、rmdir、rm

1.mkdir创建目录 参数-p可以递归创建目录库

mkdir ./a/b/c -p

2.rmdir 只能删除空的文件夹

mkdir a 加a这个参数

3.rm a -r 删除掉这个文件夹

-f 不进行提示

删除所有文件:rm * -rf 用这个时候小心

因为可能会出现这种情况:

rm * .png -rf (中间多了一个空格结果导致所有文件和.png都被删除)

9.常用命令:grep

  1. 重定向:

touch 1.txt

touch 2.txt

cat 1.txt 2.txt > abc.txt

2.检索:

按行的搜索Mike并标记: grep a.txt Mike -n

3.grep a.txt -i(忽略大小写) -n(显示行数) -v(取反:即匹配到的都不显示,显示相反的)

grep a.txt -niv

grep a test.txt -ni

grep “a” test.txt -ni

grep ‘a’ text/txt -ni

看起来好像是一样的,加不加双引号都行

但是有一个问题:如果文本中有

这样的,

grep 1 2 3 test.txt -ni

查找1或者2或者3

这样就不好了,所以最好加上双引号

grep ‘1 2 3’ test.txt -ni

grep ^a test.txt -ni

grep a$ test.txt -ni

里面还可以加各种正则表达式

10.常用命令:find、cp、mv、file

1.ls | grep abc

2.find ./ -name *.c

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

find ./ -size +12k -size -5M

3.cp 01.c 02.c

+++++ cp abc/ cba -r (递归的拷贝)

要是不加-v就会感觉卡住没提示,所以最号加-v

4.mv mike.c ../

5,file查看文件类型

hello.exe word.txt

10.常用命令:tar、gzip

1.磁带归档(打包)

tar -cvf  (c代表create v代表进度 f代表file) f必须放在最后

tar -cvf aaaa.tar 1.txt 2.txt /cmd /floder

或者

tar -cvf aaaa.tar *

2.解包:

tar -xvf aaaa.tar (什么都不写 默认是在当前路径)

l  tar只负责打包、解包,不进行压缩

打包: tar -cvf xxx.tar 需要打包的文件

解包: tar -xvf xxx.tar (不指定路径,默认在当前路径解包)

解包指定路径: tart -xvf xxx.tar -C xxxxxx(路劲)

(很特别,如果想指定某个目录,必须加-C)

3.文件压缩

如何查看某个目录大小:

du ./目录 -h

gzip 压缩tar包

gzip  xxx.tar 自动在当前路径生成xxx.tar.gz

gzip -d xxx.tar.gza

压缩打包:tar -zvcf xxx.tar.gz 所需文件

解压解包:tar -xzvf xxx.tar.gz

将当前目录的都所有文件压缩打包:tar -cvzf xxx.tar.gz *

压缩打包:tar -cjvf xxx.tar.bz2 所需文件

解压打包:tar -xjvf xxx.tar.bz2 -C 指定路径

zip -r test * 把所有的压缩叫test(必须要加-r)

unzip -d ./ test.zip

(为了兼容windows的)

du ./cmd/ -h

常用命令which

which ls

which gc

which sudo

这样的,

grep 1 2 3 test.txt -ni

查找1或者2或者3

这样就不好了,所以最好加上双引号

grep ‘1 2 3’ test.txt -ni

grep ^a test.txt -ni

grep a$ test.txt -ni

里面还可以加各种正则表达式

C语言基础 (1) 操作系统介绍,linux入门的更多相关文章

  1. Python与C语言基础对比(Python快速入门)

    代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3 如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同 ...

  2. Go语言基础之操作Redis

    Go语言操作Redis 在项目开发中redis的使用也比较频繁,本文介绍了Go语言如何操作Redis. Redis介绍 Redis是一个开源的内存数据库,Redis提供了5种不同类型的数据结构,很多业 ...

  3. Go语言基础之操作MySQL

    Go语言操作MySQL MySQL是常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库. Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的 ...

  4. C语言基础课程 第一课 Linux环境配置小实战httpserver

     网段我需要改成如下 10.重启网络服务 并且查看ip 11. 打开windows的浏览器数人Linux的IP地址出现REDHAT的欢迎界面 11.进入目录 12.编写一个简单的html脚本 13 ...

  5. day05<Java语言基础--数组>

    Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...

  6. 2.JAVA语言基础部分

    1.语言基础 二进制操作 "&"按位与:a与b同时为1结果为1,否则为0: "|"按位或:a与b其中任一个为1,否则为0 "~"按位 ...

  7. Java语言基础(数组)

    Java语言基础(数组概述和定义格式说明) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数 ...

  8. 【Linux基础】Unix与Linux操作系统介绍

    一.Unix和Linux操作系统概述 1.Unix是什么 UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2.Unix特点 (1)多用户:在同一时刻可以有多个用 ...

  9. Linux入门所必备的Linux命令和C语言基础

    文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ...

随机推荐

  1. js 屏蔽非数字字符输入

    在有输入字符为数字字符的需求时,首先想到的是设置 input 的 type 为 number / tel,原因见之前的 移除input number的上下箭头 . 好巧不巧的时,在最见的项目中,碰到了 ...

  2. luoguP4512 【模板】多项式除法 NTT+多项式求逆+多项式除法

    Code: #include<bits/stdc++.h> #define maxn 300000 #define ll long long #define MOD 998244353 # ...

  3. 机器学习实战笔记--AdaBoost(实例代码)

    #coding=utf-8 from numpy import * def loadSimpleData(): dataMat = matrix([[1. , 2.1], [2. , 1.1], [1 ...

  4. Python IDE和编辑器

    1.什么是IDE? IDE也就是集成开发环境,较常用的有PyCharm 2.编辑器 (1)Sublime Text Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Pytho ...

  5. JavaScript 常见创建对象的方式

    JavaScript 有哪几种创建对象的方式? javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用. (1)对象字面量的方式 ...

  6. 【codeforces 812B】Sagheer, the Hausmeister

    [题目链接]:http://codeforces.com/contest/812/problem/B [题意] 一个老大爷在一楼; 然后他有n楼的灯要关(最多n楼); 每楼有m个房间; 给出每个房间的 ...

  7. Docker学习总结(13)——从零开始搭建Jenkins+Docker自动化集成环境

    本文只简单标记下大概的步骤,具体搭建各个部分的细节,还请自行搜索.第一.二部分只是对Jenkins和Docker的简单介绍,熟悉的同学请直接跳到第三部分. 一.关于Jenkins Jenkins简介 ...

  8. spring mvc过滤器filter

    SpringMVC 过滤器Filter使用解析 1.如上所示的spring-web.jar包结构所示, Spring的web包中中提供有很多过滤器,这些过滤器位于org.springframework ...

  9. HDU 4308 Contest 1

    纯BFS+优先队列扩展. #include <iostream> #include <cstdio> #include <cstring> #include < ...

  10. ABAP FIELD-SYMBOLS 有大作用- 将没有可改參数的增强出口变得也能改主程序的值了

    看下图代码: report  z_xul_test2 中 定义了 全局变量 G_DATA1 , 分别调用了 z_xul_tes1 中的 form  和 function zbapi_test , 这两 ...