Linux入门篇

Linux入门篇

1 Shell命令

  • ls:目录信息查看命令

    -a 显示所有的文件以及子目录

    -l 显示文件的详细信息

    -al

  • cd:目录切换命令
    cd / 进入到根目录“/”下
    cd /usr 进入到目录“/usr”里面
    cd … cd …/ 进入到上一级目录
    cd ~ 切换到当前用户主目录

  • pwd:当前路径显示命令

  • uname:系统信息查看命令

  • clear:清理屏幕

  • cat: 显示文件内容

  • sudo:切换用户身份命令

  • cp:文件拷贝命令

    cp a.c b.c		//把a.c复制给b.c
    
  • su:切换用户命令

  • mv:移动文件

    mv a.c test1/
    
  • mkdir:创建文件夹命令

    mkdir test
    
  • touch:创建文件命令

    touch a.c
    
  • rm:删除命令

    rm test/ -rf	//删除test文件夹及子文件
    rm a.c
    
  • ifconfig:显示和配置网络属性

  • reboot:系统重启

  • poweroff:系统关机

  • man:系统帮助命令

    man printf
    
  • sync:数据同步写入磁盘命令

  • find:查找文件

  • grep:查找内容

  • du:文件夹大小查看命令

    du test/ -sh
    
  • df:磁盘空间检查命令

  • gedit:使用gedit打开某个文件命令

  • ps:当前的系统进程查看

  • top:进程实时运行状态查看命令

  • file:文件类型查看命令

    file a.c
    

2 Ubuntu软件安装

  1. 通过APP Store安装

  2. 通过APT工具安装

    sudo apt-get install git
    
  3. deb软件包安装

    使用dpkg命令安装deb软件包,命令如下:

    sudo dpkg -i xxx.deb
    

    在Windows下,软件安装包为exe文件。在Ubuntu下,软件安装包为deb文件。

  4. 自己下载程序源码编译安装 如:tree软件

    一般命令为:

    make
    make install
    

3 Ubuntu文件系统结构

  • /bin 存放二进制可执行文件
  • /boot Ubuntu内核和启动文件
  • /dev 设备驱动文件
  • /home 系统默认的用户主文件夹
  • /lib 存放库文件
  • /media 此目录下放置可插拔设备,如:U盘
  • /mnt 用户可使用的挂载点,额外的设备挂载到此处
  • /opt 可选的文件和程序存放目录
  • /root 系统管理员目录
  • /sbin 和/bin类似
  • /srv 服务相关目录,如:网络服务
  • /sys 记录内核信息,虚拟文件系统
  • /temp 临时文件
  • /var 存放一些变化的文件,如:日志文件
  • /usr 存放与用户有关的文件,会占用很大的内存空间
  • /proc 虚拟文件系统

4 Ubuntu磁盘管理

4.1 Ubuntu磁盘文件

  • /dev/sd*文件是磁盘设备文件,它不能直接访问磁盘,必须要将磁盘挂载到某一目录下才可以访问

  • /dev/sdb和/dev/sdb1是U盘的设备文件

  • /dev/sdb表示U盘,/dev/sdb1表示U盘的第一个分区

4.2 磁盘和目录的容量查询命令

  • df 列出系统的磁盘使用量
  • du 查看当前目录文件大小
du -h --max-depth=1		//指定显示的目录深度

4.3 磁盘的挂载与卸载

  • mount 挂载
sudo mkdir udisk			//先创建挂载点
sudo mount -o tocharset=tf8 /dev/sdb1 /media/wjy/udisk/
  • umount 卸载
sudo umount /media/wjy/udisk -f	  //卸载之前要将U盘从启动器解锁

4.4 磁盘的分区与格式化

  • 磁盘分区
sudo fdisk -l		//查看磁盘分区
sudo fdisk /dev/sdb		//查看U盘分区
  • 磁盘格式化

​ 格式化就是给每个分区装一个文件系统,比如:FAT

sudo mkfs -t vfat /dev/sdb1

5 压缩与解压缩

Linux下常用的压缩扩展名:.tar .tar.bz2 .tar.gz

5.1 gzip压缩与解压缩

gzip虽然可以对文件夹进行压缩,但是并不提供打包服务,只是对文件夹中的所有文件进行了单独的压缩

gzip a.c		//将a.c压缩为a.c.gz
gzip -d a.c.gz		//将a.c.gz解压缩为a.c
gzip -r test		//对test文件夹进行压缩
gzip -rd test/		//对test.gz文件夹进行解压缩

5.2 bzip2压缩与解压缩

bzip2 -z a.c		//将a.c压缩为a.c.bz2
bzip2 -d a.c.bz2		//将a.c.bz2解压缩为a.c

5.3 tar打包服务

tar --heip		//查看tar的帮助信息
tar -vcf test.tar test		//将test打包成test.tar
tar -vxf test.tar		//解包
    
tar -vcjf test.tar.bz2 test		//压缩
tar -vxjf test.tar.bz2 		//解压缩
    
tar -vczf test.tar.gz test		//压缩
tar -vxzf test.tar.gz 		//解压缩

5.4 zip压缩与解压缩

zip -rv test.zip test		//压缩
unzip -v test.zip		//解压缩

8 Linux连接文件

两种连接文件:软连接(符号连接)和硬连接

  • 软连接:类似于Windows中的快捷方式
  • 硬连接:通过inode连接来产生新文件名,而不是产生新文件

8.1 ln命令

ln命令用于创建连接文件

ln hello hello1		//为hello创建硬连接文件hello1
ll -i hello*		//查看hello*文件的结点

8.2 硬连接

  1. 所有硬连接文件的inode相同
  2. 源文件被删除,连接文件还会存在
  3. 通过创建硬连接来防止文件被误删
  4. 不论是修改源文件还是连接文件,另一个文件的数据都会被改变

注:硬连接不常用

8.3 软连接

  1. 源文件要使用绝对路径

    ln -s /home/wjy/hello hello3
    ll -i hello*
    
  2. 源文件被删除,连接文件就打不开了

9 vim编辑器

  1. 三种工作模式

    • 一般模式(指令模式):a -> 编辑模式
    • 编辑模式:Esc -> 指令模式
    • 命令行模式(输入冒号“:”进入命令行模式
  2. 保存退出

    • wq 保存退出
    • q 退出
    • q! 不保存退出
  3. 其他命令

    dd		//删除光标所在行
    ndd		//删除光标所在行及其下n行
    u		//恢复上一步
    .		//重复前一个操作
    yy		//复制光标所在行
    nyy		//复制光标所向下n行
    p		//复制光标上一行
    P		//复制光标上一行
    
    

10 Linux C 编程

gcc -o main main.c		//将main.c编译和链接,生成可执行文件main
./main		//运行main

11 make工具和makefile的引入

11.1 make工具

利用make工具可以自动完成编译工作,这些工作包括:

  • 如果修改了某几个源文件,则只重新编译这几个源文件
  • 如果某个头文件被修改了,则重新编译所有包含该头文件的源文件

利用这种自动编译可以大大简化开发工作,避免不必要的重新编译,make工具通过一个成为Makefile的文件来完成并自动维护编译工作,Makefile文件描述了整个工程的 编译,连接规则。

11.2 makefile文件

makefile示例代码:

main: main.o input.o caclu.o
	gcc -o main main.o input.o caclu.o
main.o: main.c
    gcc -c main.c
input.o: input.c
    gcc -c input.c
calcu.o: calcu.c
    gcc -c calcu.c
clean:
	rm *.o
    rm main

这同时也是我们之后通过 vi Makefile 命令,在Makefile文件中所撰写的程序。

make		//make命令将所有.c统一编译
make clean		//删除所有.o文件和可执行文件

makefile变量:

objects = main.o input.o caclu.o
main: $(objects)
	gcc -o main $(objects)
main.o: main.c
    gcc -c main.c
input.o: input.c
    gcc -c input.c
calcu.o: calcu.c
    gcc -c calcu.c
clean:
	rm *.o
    rm main

赋值符"=":

name = wjy
curname = $(name)
name = wanjinyao
print:
	@echo curname: $(curname)

输出:curname:wanjinyao

name变量的值取决于name变量最终的值

赋值符":=":

name = wjy
curname := $(name)
name = wanjinyao
print:
	@echo curname: $(curname)

输出:curname:wjy

name变量的值取决于name变量赋值时候的值

赋值符"?=":

curname ?= wanjinyao

如果变量curname前面没有被赋值,那么此变量就是“wanjinyao”,如果前面已经赋过值了,那么就使用前面赋的值

变量追加"+=":

objects = main.o input.o
objects += calcu.o

模式规则和自动化变量使用:

“%”的作用跟通配符类似

objects = main.o input.o caclu.o
main: $(objects)
	gcc -o main $(objects)
%.o : %.c
    gcc -c $< 
clean:
	rm *.o
    rm main

Makefile伪目标

避免make clean命令和工作目录下的实际文件(clean)出现名字冲突

这时,要编写一个规则:

.PHONY:clean
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值