Linux基本操作命令

1 linux操作
2 gedit 打开文本文档
3 vi 文本编辑器
i 切换插入模式
[EXC]返回
:q q! wq(保存退出)
4 mkdir 1911 -p / / / 递归创建多级目录
5 变换路径:cd 1911

6 移动操作/重命名:mv 文件名 路径
7 拷贝: cp 拷贝对象 文件名 /目标路径
8 移动/重命名 mv 操作对象 目标路径
9查看当前路径 pwd
10 mkdir 文件夹一 文件夹二
11 touch 文件一 文件二
12 cd …返回上一级
13 cd / 打开跟目录 :
14 rm 删除文件 -f强制删除
15 rmdir 删除文件夹
16 bin 可运行程序 cp mv boot 系统启动时要用的程序
17cd /home 可以看到用户
18 mnt 一般是空的
19 --help //帮助 教你如何使用 可以看看辅助命令
20 rename from to fire
待修改内容 修改后内容 需要修改的文件名
21cat 查看文件内容
22 ps当前运行的进程
24 kill 中断进程
25clear 清屏
26ls .txt ls ?.txt 或者 fire.txt
27 >> 和 > 2 1
28 tar -cvf fire01.tar fire 压缩
29 kill -9 进程号 强制终止
kill -15 进程号 终止
kill -19 进程号 暂停
kill -18 进程号 继续
ctrl + z
30 date 日期 cal 日历

2020 4 18
1补充 rm -r 删除 一个目录下的全部路径和文件
-f 忽略不存在的文件 不会出现警告
rm -rf 也常使用 rm -rf
2 3个创建文件的命令 touch/vi/gedit
3 管道命令竖线 他的功能就是把第一个命令command1执行的结果 作为command2的传入command2
4 mv file1 file001
rename file1 file001 file*
修改前部分 修改后部分 修改文件
5 文件名称:list
查找单词名称:fail
操作命令:
(1)more list | grep -o fail | wc -l
(2)cat list | grep -o fail | wc -l
(3) grep -o fail list | wc -l

wc:-l统计行数、-c显示文件字节数、-L查看最长的行的长度
总 grep命令就是输出包含指定字符串的行 ‘条件表达式’
6 grep -v 反向匹配 就是不含的
7 -n 显示行数 -e 正则表达式 也可以egrep
8 egrep -n ‘1+ ′ 文 件 名 纯 数 字 行 的 输 出 + ' 文件名 纯数字 行的输出 + +到行末重复匹配
9 egrep -n ‘2’ 文件名 数字开头的行
10 egrep -n ‘3+ ′ 文 件 名 纯 英 文 输 出 11 e g r e p − n ′ [ 0 − 9 , a − z . A − Z ] + ' 文件名 纯英文输出 11 egrep -n '^[0-9,a-z.A-Z]+ 11egrepn[09,az.AZ]+‘文件名 纯英文+数字 不含其他字符
12 egrep -n ‘4’ 文件名 英文开头的行
13 egrep -n ‘[a-z,A-Z]’ 文件名 存在英文的行
14 egrep -n ‘[0-9]’ 文件名 存在数字的行
15 crol z 停止程序
16 linux的文件类型
-普通文件
d目录文件
l连接文件
b块设备文件
c字符设备文件
p管道文件
17 drwxr-xr-x 第一位是linux的文件 后面都是3个一组 分别是指本身的权限 组权限 其他权限
18 su 用户名 切换用户
19 sudo su 超级用户
20 777最高 r 4 w 2 x 1
21chmod 三位数字 文件名 修改文件权限命令
22 :q!//退出编辑器,且不保存
:wq //退出编辑器,且保存文件
vi的退出
23了解用户相关文件路径
用户信息文件在 /etc/passwd
密码文件 /etc/shadow
用户组文件/etc/group
组密码文件/etc/
24 了解UID的概念
超级管理员 root uid =0
普通用户 500~65535
伪用户 1~499
可以通过id root 或者 id xuhuangcan 查看id
25 cd /home 通过这种绝对路径 可以直接跳转
26 编辑模式→(插入模式,命令模式)
你在编辑模式 = 复制 移动…非手打 可以 i,a,o…进入插入模式 = 手打模式
命令模式中:wq保存退出 q!不保存退出 q退出vi(没有改过)
27 gcc world.c -o text 产生可执行程序或者目标代码
gcc world.c -o text.i 预处理
gcc text.i -o text.s 编译
gcc text.s -o text.o 汇编
gcc text.o -o text 连接
./ text 执行显示结果

静态库 程序在编译链接的时候把库的代码链接到可执行文件中。
动态库 程序在运行的时候才去链接共享库的代码,多个程序共享使用库的代码
静态库命名规则:lib[库名].a
29ar -crv libword.a world.o
gcc -shared -o libword.so world.o

2020 4/20 晚上作业
groups + 用户组 查看 用户所在的组
-g 指定组群
-G 指定附加组群
30

为什么在其他用户只能在 /tmp中有创建权限
可能要切换到登入的那个账号 再切换到那个root才能有权限
切换用户都在home下面切换
好像在/tmp可以直接切换账号
通过 chmod 更改权限 ls -l来看权限变化

4月21日
作业问题(解决)
1 id username 查看组 和 用户
groups username 相同功能
groupadd groupname
useradd -g groupname username ①创建用户 ②归属组
(注意这边组一定要先创建好)
-g 归属主组 -G 附属组 (就是不一定只有一个组的啊)
删除但是还是显示
2 高用户跳转到低用户不用输入密码 一般还是跳转自己的那个用户再跳转
*最暴力的方法还是重新开一个终端 sudo su 再转跳用户
3 当提示密码未通过字典检查,过于简单化等等,没有关系(只是一个提示而已)
4 gedit 也能打开.c文件
5 ps aux | grep 可运行程序
(就是指 obj 编译后的可执行文件,举例 gcc main.c -o 【可执行文件】 )
6 chmod u+s main.c 特殊权限 (了解)
7 umask 和chmod 是互补的 对于umark来说就是 文件的权限最高666 目录777
用法如下:
umark 002 //实际权限是664
touch 文件 (mkdir文件夹)
9 touch hello.c
touch hello.h
touch main.c

注意不同: gcc hello.c -o text gcc -o hello.c 的差别
方法一 把动态库 赋值到 /usr/local/lib
第一步 把gcc -fpic -c hello.c 生成.o文件 (.o文件才能生成动态库)
ls查看一下 是否有生成hello.o 的二进制文件
第二步 gcc -shared -o libhello.so hello.o 生成动态库的过程
第三步 cp libhello.so /lib (把这个动态库添加在lib里面)
第三步 gcc main.c -L…/ -lHello (生成a.out)
//第四步 cp hello.so /usr/lib(省略)
第五步 gedit /etc/ld.so.c.conf
添加 usr/lib 把系统的库路径添(共享库的路径)加到配置文件里面
第六步 ldconfig 生效指令
第七步 ./a.out 执行一下

调试 先编译
第三步 gcc main.c -L…/ -lHello -g (生成a.out)// 后面加个-g
gdb a.out(可执行程序)

2020 4/23

gcc hello.c -o hello.o 不行 中间少了 预处理 和编译
gcc -c hello.c 这样直接生成 二进制文件 .o
makefire //脚本命令

最高的写最前面 命令行tab写 生成物顶格 依赖

main:main.o hello.o
gcc main.o hello.o -o main (连接语句)
main.o:main.c
gcc -c main.c
hello.o:hello.c
gcc -c hello.c

1如果文件没有编译过,对所有.c进行编译连接
2 如果,某几个文件被修改后,make只编译被修改的.c文件,并进行重新链接

上课内容:

main:main.o hello.o
gcc main.o hello.o -o main (连接语句)
main.o:main.c
gcc -c main.c
hello.o:hello.c
gcc -c hello.c
通用
ELF=main
CC=gcc
src= ( w i l d c a r d ∗ . c ) o b j e c t s = (wildcard *.c) objects= (wildcard.c)objects=(src:.c=.o)
( E L F ) : (ELF): (ELF):(objects)
$(CC) $^ -o $@
$(objects):
clean:
rm -f $(objects) $(ELF)

1如果文件没有编译过,对所有.c进行编译连接
2如果,某几个文件被修改后,make只编译被修改的.c文件,并进行重新链接


  1. 0-9 ↩︎

  2. 0-9 ↩︎

  3. a-z.A-Z ↩︎

  4. a-z,A-Z ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值