Linux操作系统
2024-05-18 18:17:35
浏览量: 1009
概述
- 不同版本的linux命令有的用法有一些差异,如:在Ubuntu中命令参数可以写在最后,而unix中须写在中间
常用命令
- 查看系统环境变量信息
- echo $PATH
- 终端提示符,示例:aa@bb:~$
- aa 用户名
- @ 连接符
- bb 主机名
- ~ 路径(~家目录 /根目录)
- $ 权限
- $ 普通用户
- # 管理员权限
- 命令 --help
- 查看当前命令的帮助信息
- man 章节 命令/信息
- 获得指定命令帮助手册
- 章节,共9种类型,常用的有3种
- 1 命令信息
- 2 操作系统函数信息/系统调用
- 3 库函数(c库提供的函数)信息
- 章节可以省略,单有些命令不加章节号,查询的信息可能不准确
- man man
- 查看man自己的帮助信息
- pwd 查看当前目录的绝对路径
- cd 切换/进入指定目录
- cd ..
- 去上一层目录(父级目录)
- cd -
- 回到上一个命令下的路径(相当于windows下的回退,不一定是父级目录)
- cd ..
- find 路径 -name 文件名
- 在目录(包括子目录)中搜索匹配文件
- whereis <文件名|命令>
- 在系统中查找文件
- 查找指定命令的目录路径
- ls 查看当前目录详情
类型+权限 | 所属组 | 所属者 |
---|---|---|
drwx------ | xxx | xxx |
-
- 类型+权限:第0位(文件类型) 1-3(所属者权限) 4-6(所属组权限) 7-9(所有/其他用户权限)
- 文件类型(共7中):-普通文件;d目录;l连接;s可执行/套接字文件;c字符设备驱动程序;b块设备驱动程序;p管道文件
- 权限分类:r读;w写;x执行;-禁止
ls *[0-9]*.txt #使用正则匹配查看,文件名中有数字的文件
ls -l
# drwx------+ 11 shao staff 352B 12 29 22:15 test
# 类型+权限 链接文件个数 所属组 所属者 文件大小 时间 文件名
#可以使用分号同时执行多个命令
ls;pwd
- dir 列出目录信息
- vdir 列出目录信息
- cat 列出及合并文件、查看文件内容
- -n 显示行号
- more (向后)分页查看文件
- less (向前/向后)分页浏览查看文件
- head 查看文件开头
- tail 查看文件结尾
- touch 新建文件
- 如果文件已经存在,则更新文件的时间戳
- rm 删除文件/目录
- -f 强制删除
- -r 递归删除文件夹
- mkdir 新建目录
mkdir test1 test2 test3 #同时创建多个目录
mkdir -p test1/test2/test3 #递归创建目录
- mv 文件改名、移动文件
mv a.txt test/ #将文件a.txt移动到test目录中
mv a.txt a2.txt #文件重命名
mv test/ test2 #目录重命名
- cp 拷贝文件
cp a.txt test/ #复制a.txt文件到test目录下
cp test/ test2/ -a #复制tset目录下所有内容到test2目录中
cp a.txt a2.txt #当前文件下,文件复制
- ln [参数] 源文件名 链接文件名
- 建立硬连接和符号连接,类似于快捷方式
- -s 软连接
ln -s test.txt ltest
ls -l ltest
# lrwxr-xr-x 1 shao staff 8 2 2 17:45 ltest -> test.txt
# 链接文件名 指向 源文件名
- mc(Midnight Commander) 启动处理文件的图像化界面程序
- clear 清屏
- grep 查找信息 文件名 [参数]
- 在文件中查找指定的内容,会列出查找信息所在行的信息,高亮显示查找信息关键字
- -n 显示行号
- -R 递归查找子目录
grep aa * -R -n #不指定文件名,在当前目录下所有的文件及其子文件中查找
- tar [主选项+辅选项] 压缩文件名.tar.gz 源文件或目录
- 文件压缩
tar -zcvf mytar.tar.gz file1 file2 file3 #将file1 file2 file3压缩为mytar.tar.gz文件
tar -zxvf mytar.tar.gz -C /usr/local #解压缩到指定目录
#压缩和解压时bz2格式文件
tar -jcvf mytar.tar.bz2 file1 file2 file3
tar -jxvf mytar.tar.bz2 -C /usr/local
- ps
- 显示当前系统中的进程信息
- 查看当前进程信息
- ps
- 查看当前系统的所有进程
- ps -ef
- ps ajx
- kill 命令
- kill 信号编号 进程ID
- 向指定进程发送信号
- kill -9 123 杀死ID为123的进程
- kill -l
- 查询信号编号列表
- kill 信号编号 进程ID
- ipconfig getifaddr en0
- 查看电脑ip地址
非系统默认命令
- 有的命令可以单独安装
- 有apt-get工具的安装示例:sudo apt-get install 命令名
- tree 以树行方式图形化列出目录列表
软件包
Linux应用软件的安装包有三种:tar、rpm、dpkg
- rpm是Redhat Linux提供的一种包封装格式,有五种操作方式:安装、卸载、升级、查询、验证
BASH
bash(Bourne Again SHell)是自由软件基金会发布的Bourne Shell的兼容程序
- 默认情况下,linux命令的标准输入设备是键盘;标准输出设备是屏幕。
- 输出重定向:使shell命令的执行结构不是直接显示到屏幕而是送到一个文件,可以用输出重定向。
- > 可以覆盖或新建一个文件
- >> 可以在已存在的文件后面追加新内容
- 输入重定向:shell命令的输入可以来自一个文件,用输入重定向可以完成。
- 输入重定向的操作符一种是 <
- 另一种称为here文档,用 << 实现
- 错误重定向:与程序的标准输出一样,错误输出也可以重定向。
- 2> 新建或覆盖
- 2>> 在已存在的文件后面追加新错误信息
- 管道符:利用shell提供的管道(pipe)功能,可以将命令的标准输出作为另一个命令的标准输入
- | 管道操作符
ls --help | more #将ls帮助信息以分页的方式显示
- 历史表:linux系统为用户从各种角度提供了避免重复劳动的机制。历史表就是其中的一中。历史表由bash自动维护,可以保存500行命令。每次用户退出登录,系统自动将当前的历史表存入一个文件,其缺省的名字为.bash_history。下次登录,用户开始一次新会话,bash会自动将新的命令追加到已经建立的历史表中。用history命令可以查看历史表中命令行清单
- !! 重复执行最后一条命令
系统用户管理配置
- . 账号配置文件:linux中和用户管理有关的文件包括 /etc/passwd、/etc/group、/etc/shadow文件
- /etc/passwd文件:列出了所有有效用户名及其相关信息,每个用户名都有一行,分为7个字段,中间用冒号定界
- 用户名:密码:用户ID:组ID:注释:主目录:登录shell
- /etc/group文件:缺省的/etc/group文件包含有很多个组。每行含有四段
- 组名:口令:组ID:用户
- 添加用户命令
- adduser
- /etc/passwd文件:列出了所有有效用户名及其相关信息,每个用户名都有一行,分为7个字段,中间用冒号定界
- ip地址和主机名映射文件
- /etc/hosts
- 端口号和服务名之间的映射文件
- /etc/services
- 配置名字解析器
- /etc/host.conf
- /etc/nsswitch.conf
- 配置DNS客户
- /etc/resolv.conf
- 主机地址、掩码和缺省路由器
- /etc/init.d/network
Makefile
- make是linux系统中的一个命令,是个可执行程序,用来解析makefile文件的命令,存放在/usr/bin/中
- makefile 是一个文件,用于描述程序的编译或执行规则。类似于shell脚本文件
- make命令格式
- make [-f file] [targets]
- make默认在工作目录中寻找名为GNUmakefile、makefile、Makefile的文件作为make的输入文件,-f可以指定自定义的文件名作为make的输入文件
- targets:若使用make命令时没有指定目标,则make命令默认会执行输入文件内的第一个目标,然后退出。目标可以是一个或多个用空格隔开,也被称为假象目标(相当于别名)
- 编写makefile文件
# 文件书写格式
# 假象目标(相当于别名):依赖文件列表
# 命令...
# myMakefile 文件
main:main.o sub.o sum.o
gcc main.o sub.o sum.o -o main
main.o:main.c
gcc -c main.c -o main.o
sub.o:sub.c
gcc -c sub.c -o sub.o
sum.o:sum.c
gcc -c sum.c -o sum.o
clean:
rm -rf *.o main a.out
- 执行makefile
make -f myMakefile
# gcc -c main.c -o main.o
# gcc -c sub.c -o sub.o
# gcc -c sum.c -o sum.o
# gcc main.o sub.o sum.o -o main
make -f myMakefile clean
# rm -rf *.o main a.out
- makefile变量相当于c语言中的宏
- 自定义变量
- 在文件中自定义
- make命令传入
- 系统变量:make解析makefile前,读取将系统的环境变量并设置为makefile的变量
- 预定义变量(自动变量),可以直接使用
- $@ 目标名
- $< 依赖文件列表中的第一个文件
- $^ 依赖文件列表中去重复文件的部分,或所有依赖文件
- AR 归档维护程序的程序名,默认ar
- ARFLAGS 归档维护程序的选项(也就是参数)
- AS 汇编程序的名称,默认as
- ASFLAGS 汇编程序的选项(也就是参数)
- CC c编译器的名称,默认cc
- CFLAGSC c编译器的选项(也就是命令参数)
- CPP c预编译器的名称,默认值为$(CC)-E
- CPPFLAGS c预编译的选项(也就是参数)
- CXX c++编译器的名称,默认值g++
- CXXFLAGS c++编译器的选项(也就是参数)
- 定义:变量名=变量值
- 中间不能有空格
- 使用
- $(变量名)
- ${变量名}
- 自定义变量
cc=gcc
#cc=arm-linux-gcc
target=main
obj=index
$(target):
$(cc) *.c -o $(obj).out
echo $(PWD) #输出路径
echo "test=$(test)" #如果在系统韩剧变量中设置了一个test变量(如:export test=10)这里就可以拿到
#使用预定义变量编写makefile文件,编译所有.c文件
cc=gcc
target=main
obj=main.o main2.o main3.o
CFLAGS=-Wall -g
$(target):$(obj)
$(cc) $^ -o $@
%*.o:%*.c
$(cc) $(CFLAGS) -c $< -o $@
clean:
rm -rf *.o $(target) a.out
推荐文章
-
2024-03-17 07:12:40 浏览量: 1015
-
2024-04-24 19:57:51 浏览量: 1117
-
2024-04-17 14:24:51 浏览量: 1010
-
2024-05-16 10:08:01 浏览量: 1012
-
2024-05-18 18:17:35 浏览量: 1009
-
2024-02-23 17:39:12 浏览量: 1011
-
2024-05-04 10:37:44 浏览量: 1013
-
2024-04-24 08:00:02 浏览量: 1017
-
2024-05-05 06:27:43 浏览量: 1016
-
2024-02-15 20:56:24 浏览量: 1004
-
2024-03-15 08:46:32 浏览量: 1016
-
2024-03-22 13:42:22 浏览量: 1020
-
2024-04-06 10:10:52 浏览量: 1025
-
2024-03-15 04:54:17 浏览量: 1012
-
2024-03-21 00:57:53 浏览量: 1010
-
2024-02-29 09:32:30 浏览量: 1009
-
2024-04-15 21:32:54 浏览量: 1007
-
2024-03-22 08:42:43 浏览量: 1010
-
2024-02-15 23:08:03 浏览量: 1002
-
2024-03-22 05:17:24 浏览量: 1007