Linux基本命令
Linux 基本命令:
Linux终端 类似于windows下面的 cmd 控制台
1.whoami 我是谁
2.pwd 我在哪 print working directory
3.ls list
列出当前目录下的文件
ls -a 查看隐藏文件
ls -l 详细显示文件信息
ls -lk
ls -lh h 4k
ls -t 按照时间排序显示
ls -r 逆序显示
ls -rt 按时间倒序显示
ls -s
drxwxr - xr - x 3 root root 4096 12 月 16 2017 bin
第一个字符 代表文件类型:
d 文件夹
- 普通文件
l 链接文件(桌面的快捷方式)
s socket文件
p 管道文件
c 字符设备文件
b 块文件文件
rwxr - xr - x 文件的用户权限
r read 用户拥有阅读的权限
w write
x execute 可执行 如果是目录代表可进入 - 代表没有此权限
三组权限代表三种“人”
属主(拥有者) - 属组(同一组的用户) - 其他人
unix多用户的操作系统
一台服务器 每个人有自己的账户
3 数值 代表文件的硬链接数
一个文件只有当硬链接数为0时,其所在磁盘上的文件才会被删除
否则只是硬链接数-1
软链接(访问的快捷方式)
硬链接(访问文件的一个方式)
ubunto 用户名
ubunto 组名
4096文件大小 目标大小为4096(目录结构大小)
时间 代表文件最后修改的时间
文件名/目录名
4.cd 我要去其他地方 切换目录 change directory
相对路径:相对当前目录
绝对路径:从根目录表示的路径
. 表示当前所在的目录
… 表示当前所在的上一级目录
~ 当前用户主目录 进入终端时的默认位置
/ 根目录
- 返回刚才的目录
5.mkdir 创建目录
如果需要创建层级关系的目录 可以用 -p 选项
mkdir pu/child 如果pu不存在 child无法被创建
6.rmdir 只能删除非空目录
7.rm remove
rm -r 能够删除非空目录
rm -f 强制删除
rm -i 询问式删除
rm 删除的文件无法找回
8.mv move 移动 剪切
可以把文件和目录 移动到其他目录 也可以移动到当前目录改名
mv day03 ./桌面/day03/ day03作为桌面/day03的子目录
mv day03 ./桌面/day03 day03作为桌面的子目录
mv -i 如果目标目录下有相同文件,询问是否覆盖
9.cp 复制 copy
cp -r复制文件夹
cp -i询问是否覆盖
cp -f强制执行
cp -ri cp -ir 随意组合 顺序无所谓
10.安装软件
studo apt-get install xxx -----安装xxx软件
studo apt-get install upgrade-----升级
studo apt-get install update-----更新
studo apt-get install remove xxx-----卸载
11.以树形结构显示目录结构
tree
12.虚拟机联网
windows能够联网
虚拟机设置-设备-网络-桥接网卡-选择windows上上网的网卡
虚拟机中,关闭网络-启用网络
13.在unix下隐藏文件是以 . 开头
14.touch 创建新文件
如果文件存在,则更新文件最后的时间戳
15.创建链接文件 ln
ln[-s] 目标文件 链接文件 给目标文件创建一个链接文件
如果 -s 选项,表示创建软连接文件
软链接:快捷方式 文件中的内容只储存了目标文件的路径
当目标文件消失后,软链接文件失效
创建软链接 文件的链接数不变
目录也可以创建软链接
读写软链接 本质读写的是目标文件
硬链接:访问目标文件的一种途径
每次删除文件本质上是硬链接数-1
当硬链接数为0时,数据才是真正的删除
16.echo 显示
17.输出重定向
覆盖内容
追加内容
ls >> a.txt 将详细信息输出到a.txt
18.clear清屏
19.cat 查看文件内容
more/less
more显示一屏内容 按Enter向后翻一行 Space翻一屏 B向前翻一屏 Q退出
less
head/tail
tail -f 实时监测文件末尾写入的内容
tail -5 查看最后五行
20.find 查找文件
find 目录 -name.file
find ~ -name “*.txt”
通配符
代表多个任意字符
?代表一个任意字符
[a-z]代表区间的一个字符
find ~ -name “.txt”
find ~ -name “???.txt”
21.grep 查找文件内容
grep -n strocontent 文件名 查找内容 显示所在行及内容
^ 匹配开始行 “^hello”
$ 匹配结束行 “hello$”
. 代表任意一个字符
? 匹配0或者1次
.* 匹配0或多次
- 匹配1次或多次
{n,m}
找出主用户目录下所有.c文件中 包含 #include 的文件
find ~ -name “” | xargs grep “”
22.管道
| 管道
前面命令的输出作为后面命令的输入
23.man nuix 下最强的 手册
man ls 用法 描述 选项 参数
退出查看 Q
24.gedit 打开
25.gcc 编译
26…/a.out 运行当前目录下的a.out程序
ps,df,du,top,chmod,tar,
vi/vim
从hello.c窥视C语言程序设计:
1 C语言程序设计都是以.c文件为后缀
2 C语言中以#开头的都是C语言预处理指令
#include
#include<stdio.h>
#include”stdio.h”
#include 导入头文件内容
<>从系统配置的目录下查找该头文件 如果没有则报错
“”从当前目录下查找该头文件,如果找不到,则去系统配置的目录下 查找
把stdio.h文件中的内容导入到当前.c文件中,递归导入
#define
#if #else #ifdef #ifndef
3 main函数是C语言的入口函数,一个C语言程序中有且只有一个main函数 主函数
main函数返回值类型 有些是int 有些是void
建议使用int,可以检测程序是否正常退出
void main(){}
int main(){}
C语言函数的形式:
返回值类型 函数名(){
}
4 函数调用
printf(“Hello world\n”);//这个函数定义在stdio.h中 标准库中已经实现
直接调用即可
函数调用语句 函数名(参数);
5 C语言的语句以分号为结尾
一条语句一个分号,一行一条语句
6 编码风格
一行一条语句
7 代码注释
//代码的解释 方便代码理解 代码一定要有注释
//写项目的时候必须要有注释
//单行注释
/*
多行注释
可以写多行
注释的内容不会被编译
*/
多行注释里不能有嵌套
C语言基础数据类型:
short short int
int
long long long long int
double long double
float
char
unsigned 无符号
signed 有符号
1.为什么有这些数据类型?
数据的形式不一样
2.同为整数,为什么要分short,int,long,long long类型
数值范围不一样
为了节省内存 对整数进行了划分
3.printf(“%d\n”,-1); \n换行
printf(“%u\n”,-1);
printf(“%d\n”,97);
printf(“%c\n”,97);
-1 在计算机底层中二进制是固定的
“%d” 格式占位符 整数
“%u” 无符号整数 第一位符号位看做是数值位
“%c” ascii码 每一个字符都用对应的整数来表示和存储
-1在计算机底层中是 11111111 11111111 11111111 11111111
二级制:
源码、翻码、补码(计算机中保存数据都是用补码保存)
补码:正数的补码 和源码相同
负数的补码 符号位不变 反码加一
用最高位来表示符号位 0表示正数 1表示负数
补码-1 --- 反码 --- 符号位不变,其他位取反
内存单位:
1byte(字节) = 8bit(比特 二进制位)
1K = 1024byte
1MB = 1024K
1G = 1024MB
1T = 1024T
一个二进制位:0和1
8个二进制位:不考虑负数 0000 0000 - 1111 1111
类型 字节大小
char unsigned char 1byte(java char 2byte)
short unsigned short 2byte
int unsigned int 4byte
long unsigned long 4byte/8byte(考试常见)
long long 8byte
double 8byte
float 4byte