【无标题】

Shell:计算机语义命令解释器
(1)开启一个终端:CTR+ALT+T
(2)关闭一个终端:ALT+F4
(3)shell提示符
  #:一般表示你是超级用户,root
  $:一般表示你是普通用户
  怎么切换用户?
  答:sudo su 从当前的用户切换为Root用户
  su user 从Root用户切换为普通用户,其中的user是安装时候用的用户名
  或者直接输入exit,也可以Ctrl+D组合键退出Root用户
(4)清除屏幕:Clear 快捷键:CTR+L
(5)查看你当前所在位置:PWD
(6)查看指定目录下有哪些文件: ls [选项] [路径]
  选项参数:
  -a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件
  -l(小写的L) 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
  -t 将文件按照创建时间排序列出。1103
  -A 和**-a一样,但是不列出“.”(当前目录)和“…”(父目录)。
  
-R** 递归列出所有文件,包括子目录中的文件。
  选项参数可以组合使用。

根目录讲解:
/ 称之为根目录
文件不能存放文件和目录

Tab键可以自动补齐路径和文件名

目录切换命令:
cd 目录路径(绝对路径,相对路径)
cd /:进入到根目录“/”下,Linux系统的根目录为“/”
cd /usr:进入到目录“/usr”里面
cd …:进入到上一级目录
cd ~:切换到当前用户主目录

创建一个目录:mkdir abc
删除一个空目录: rmdir abc
rm -r 删除非空目录
rm 删除一个文件

系统信息查看命令uname
命令格式:uname [选项]
选项参数如下:
-r:列出当前系统的具体内核版本号
-s:列出系统内核名称
-o:列出系统信息

gedit 创建一个文本
cat [选项] [文件]
  选项主要参数如下:
  -n:由1开始对所有输出的行进行编号。
  -b:和-n类似,但是不对空白行编号。
  -s: 当遇到连续两个行以上空白行的话就合并为一个空白行

rm 文件名* (其中的*号是通配符),比如文件有.c,.s,.o的,使用之后就会把目录下的这同文件名的.c,.s,.o文件删掉

显示全部文件:ls -a

gcc编译:gcc 源程序文件名 -o 文件名

在命令行下翻屏:
shift + pgup
Shift + pgdn

切换到字符控制台:
CTR + ALT + SHIFT + (F1~F6)
切换回图形界面:
ALT + F7

进程管理命令:
查看进程信息: ps aux
kill -9 进程号
kill -SIGKILL 进程号
Ctr + C 终止当前shell的前台进程

Ifconfig 是一个跟网络属性配置和显示密切相关的命令,通过此命令我们可以查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络IP地址等等,此命令格式如下:
Ifconfig interface options|address
主要参数:
Interface: 网络接口名称,比如eth0等
Up: 开启网络设备
Down: 关闭网络设备
Add: IP地址,设置网络IP地址
Netmask add:子网掩码

文件操作命令
1.创建新文件命令-touch
格式如下:
Touch [参数] [文件名]
参数:-a 只修改存取时间
-c 不建立任何文件
-d<日期> 使用指定的日期,而非现在的日期
-t<时间> 使用指定的时间,而非现在时间
2.文件夹创建命令-Mkdir
格式如下:
Mkdir [参数] [文件夹名目录名]
参数:
-p 如所要创建的目录其上层目录目前还没有创建,那么会一起创建上层目录。
3.文件及目录删除命令-rm
格式如下:
Rm [参数] [目的文件或文件夹目录名]
参数:
-d 直接把要删除的目录的硬连接数据删成0,删除该目录
-f 强制删除文件和文件夹(目录)
-i 删除文件或文件夹之前先询问用户
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除
-v 显示删除过程
-rf 递归删除一个文件夹及里面的子文件夹
4.文件夹(目录)删除命令–rmdir
这个是直接删除文件夹的命令,可以不加任何参数。格式如下:
Rmdir [参数] [文件夹(目录)]
参数:
-p 删除指定的文件夹(目录)以后,若上层文件夹(目录)为空文件夹的话就将其一起删除。
5.文件复制命令–cp
格式如下:
Cp [参数] [源地址] [目的地址]
参数:
-a 此参数和同时指定“-dpR”参数相同
-d 在复制有符号连接的文件时,保留原始的连接
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
-I 覆盖现有文件之前询问用户。
-p 保留源文件或者目录的属性
-r或-R 递归处理,将指定目录下的文件和子目录一并处理
6.文件移动命令–mv
可用于将一个文件或者文件夹移动到另一个地方去,或者给文件或文件夹进行重新命名。格式如下:
Mv [参数] [源地址] [目的地址]
参数:
-b 如果要覆盖文件的话覆盖前先进行备份
-f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录
-I 在覆盖之前先询问用户
注意,重命名的时候是不能加参数的
7.文件查询和搜索
(1)命令find
用于在目录结构中查找文件,格式如下:
Find [路径] [参数] [关键字]
路径:要查找的目录路径,如果不写的话表示在当前目录下查找
参数:
-name(filename) 按照文件名称查找,查找与Filename匹配的文件,可使用通配符。
-depth 从指定目录下的最深层的子目录开始查找。
-gid(群组识别码) 查找符合指定的群组识别码的文件或目录。
-size(文件大小) 查找符合指定文件大小的文件。
-type(文件类型) 查找符合指定文件类型的文件。
-user(拥有者名称) 查找符合指定的拥有者名称的文件或目录。
关键字:文件名的一部分。
实例:find /etc/ -name vim*
(2)命令grep
find命令用于在目录中搜索文件,我们有时候需要在文件中搜索一串关键字。Grep就是完成这个功能的,grep命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep命令就把包含指定关键字的这一行标记出来,grep命令格式如下:
Grep [参数] 关键字 文件列表
Grep命令一次只能查一个关键字,参数:
-b 在显示符合关键字的那一列前,标记出该列第一个字符的位编号。
-c 计算符合关键字的列数。
-d(进行动作) 当指定要查找的是目录而非文件时,必须使用此参数!否则grep指令将回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。
8.文件类型
我们使用ls -l就能显示文件的详细信息,每行最前面的第一个字符标记了当前文件类型,这些字符表示的文件类型如下:

  • 普通文件,一些应用程序创建的
    d 目录文件
    c 字符设备文件,Linux驱动里面的字符设备驱动,比如串口设备,音频设备等等
    b 块设备文件,存储设备驱动,比如硬盘,U盘等
    I 符号连接文件,相当于Windows下的快捷方式
    s 套接字文件
    p 管道文件,主要指FIFO文件
    上面红色字体的比较重要,因为开发Linux驱动基本是在和字符设备文件和块设备文件打交道。
    文件的权限有三种:读®、写(w)、执行(x)。可以用3bit表示,如下表格:
    权限 二进制数字 八进制数字
    — 000 0
    –x 001 1
    -w- 010 2
    -wx 011 3
    r-- 100 4
    r-x 101 5
    rw- 110 6
    rwx 111 7

上面的截图中,”-rw-r–r--”中第一个字符‘-’表示普通文件,‘rw-’表示文件拥有者的权限,第一个‘r–’表示文件拥有者所在用户组的权限,最后一个‘r–’表示其他用户权限。
a、u、g和o表示文件的归属关系,用=、+和-表示文件权限的变化。
字母 意义
r 可读权限
w 可写权限
x 可执行权限
a 所有用户
u 归属用户
g 归属组
o 其他用户
= 具备权限

  • 添加某权限
  • 去除某权限
    对于文件,我们想要修改其归属用户对其拥有可执行权限,那么就可以使用:u+x。如果希望设置归属用户及其所在的用户组都对其拥有可执行权限就可以使用:gu+x。
    9.权限管理命令
    我们可以使用Shell来操作文件的权限管理,主要用到“chmod”和“chown”这两个命令。
    (1)权限修改命令chmod
    命令“chmod”用于修改文件或者文件夹的权限,权限可以使用字母表示也可以使用上面的8进制表示,命令格式如下:
    chmod [参数] [文件名/目录名]
    主要参数:
    -c 效果类似“-v”参数,但仅回显更改的部分。
    -f 不显示错误信息。
    -R递归处理,指定目录下的所有文件及其子文件目录一起处理。
    -v 显示命令的执行过程。
    (2)文件归属者修改命令chown
    命令chown用来修改某个文件或者目录的归属者用户或者用户组,命令格式如下:
    chown [参数] [用户名.<组名>] [文件名/目录]
    其中[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用“.”隔开,其中用户名和组名中的任何一个都可以省略,参数:
    -c 效果同-v类似,但仅回报更改的部分
    -f 不显示错误信息
    -h 只对符号连接的文件做修改,不改动其他任何相关的文件
    -R 递归处理,将指定的目录下的所有文件和子目录一起处理
    -v 显示处理过程

1.gcc c文件名 -o 可执行文件名
Gcc编译器的编译流程是:预处理、汇编、编译和链接。
Gcc命令的格式是:
gcc [选项] [文件名字]
主要选项如下:
-c 只编译不链接为可执行文件,编译器将输入的.c文件编译为.o文件。
-o<输出文件名> 用来指定编译结束以后的输出文件名,如果使用这个选项的话GCC默认编译出来的可执行文件名字为a.out。
-g 添加调试信息,如果要使用调试工具(如GDB)的话就必须加入此选项,此选项指示编译的时候生成调试所需的符号信息。
-O 对程序进行优化编译,如果使用此选项的话整个源代码在编译、链接的时候都会进行优化,这样产生的可执行文件执行效率就高。
-O2 比-O幅度更大的优化,生成的可执行效率更高,但整个编译过程会很慢。

MakeFile:描述哪些文件需要编译、哪些需要重新编译的文件就叫做Makefile。
Makefile规则格式:
目标……:依赖文件集合……
命令1
命令2
……
Make的执行过程:
(1)make命令会在当前目录下查找以Makefile命名的文件
(2)当查找到Makefile文件以后就会按照Makefile中定义的规则去编译生成最终的目标文件
(3)当发现目标文件不存在,或者目标所依赖的文件比目标新(也就是最后修改时间比目标文件晚)的话就会执行后面的命令来更新目标

Makefile中的变量都是字符串,类似C语言中的宏。
编写Makefile文件:
#Makefile变量的使用
objects = main.o input.o calcu.o
main: $(objects)
gcc -o main ( o b j e c t s ) 关 于 上 面 的 (objects) 关于上面的 (objects),解释下。Makefile中变量的引用方法是“ ( 变 量 名 ) ” , 上 面 的 (变量名)”,上面的 ()(objects)就是使用变量objects。
Makefile中的运算符:
(1)、“=”:右值变量如果在赋值语句之后还被改变,左值在赋值语句之后也会被更新。
比如下面的代码:
name = zzk
curname = $(name)
name = zhengjinbo

print:
@echo curname: $(curname)
(2)、“:=”:右值变量如果在赋值语句之后还被改变,左值在赋值语句之后不会被更新。
可以尝试修改上面的curname = $(name)。
(3)、“?=”:如果左值变量再赋值之前有被赋值过,那么此次赋值将更新左值变量,否则不。
(4)、变量追加“+=”:Makefile中的变量是字符串,有时候我们需要给前面已经定义好的变量添加一些字符串进去,此时就要使用“+=”,比如:
object = main.o input.o
object += calcu.o
最终结果就是main.o input.o calcu.o

Windows和Ubuntu下的文件互传我们需要使用FTP服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值