本文主要是介绍Linux基础课 【合集】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 网页格式讲义
- Tip && Lecture notes
- class1
- homework 1
- homework 1 show
- order || command
- class2
- homework 2
- homework 2 show
- order || command
- homework 3
- homework 3 show
- order || command
- homework 4
- homework 4 show
- order || command
- homework 5
- homework 5 show
- order || command
- homework 6
- homework 6 show
- order || command
- homework 7
- homework 7 show
- order || command
- homework 8
- homework 8 show
- order || command
网页格式讲义
点击跳转
Tip && Lecture notes
class1
/一个点当前目录 ; ..上级目录 ; ~/ 表示家目录(用户的目录配置) 好像等效 /home/ Ctrl + c 向当前运行进程传一个终止信号 可以中断当前行直接重新起一行
Ctrl + u 清空一行ls tmp/ 按没有反应,第二下会出现提示各种命令加上 -h 选项 【人性化输出,更好看数据:2048KB】 规定 : 蓝色文件夹 白色:文本mv tmp.txt .tmp.txt (改名成文件名前加'.' ,变成隐藏文件 ls -a显示)cd /bin (显示出一堆东西) ls -al 与 ls-la 没有区别 pwd 当前目录cd- 返回上一个待过的目录cp (复制+粘贴+重命名)cp a/tmp.txt /b (把a目录下的文件tmp.txt 复制到b目录下) cp a b -r (-r递归缩写,把a整个文件夹复制到b的下面) rm a -r (把a整个删除)
rm a/* (把a里面的东西全删了)rm /* -rf 【删库跑路】
rm * -r (不会删除隐藏文件) mkdir --help 显示mkdir所有参数history 显示历史指令 mv 剪切+粘贴 ,同时也为重命名命令cat a/tmp.cpp cat只能查看文件,不能查看目录做作业 :
homework x show 展示要求
homework x create 创建作业环境 create就可以重做
cd homework x homework/lesson_1/homework_0 第一次作业的第一题的操作路径
homework x test 检测作业得分 在homework_0 中要先回到家目录 cd ~/ 才能跳转到homework/lesson_1/homework_1 :原理 想象图形界面,可以退出到上一级目录,相对路径进入 相对路径切换: homework_1 --> homework_2 用cd ../homework_2 反复横跳 ./././../ 一个提升敲命令的好习惯: ./都用键盘左边的中文'?'处 mkdir 创建目录
touch 创建文件 相对路径连退两级 : ../../
homework 1
homework 1 show
homework 1 test
order || command
简版
cd /home/acs/homework/lesson_1
cd homework_0
mkdir dir_a dir_b dir_ccd ../homework_1
cp a.txt a.txt.bak
cp b.txt b.txt.bak
cp c.txt c.txt.bakcd ../homework_2
mv a.txt a_new.txt
mv b.txt b_new.txt
mv c.txt c_new.txtcd ../homework_3
mv dir_a/a.txt dir_b
mv dir_a/b.txt dir_b
mv dir_a/c.txt dir_bcd ../homework_4
rm a.txt b.txt c.txtcd ../homework_5
rm dir_a dir_b dir_c -rcd ../homework_6
cat task.txt
mkdir dir_a
mv task.txt dir_a/done.txtcat task.txt
mv task.txt done.txt
mkdir dir_a
mv done.txt dir_a/cd ../homework_7
mkdir dir_0 dir_1 dir_2
cp a.txt dir_0/a0.txt
cp b.txt dir_0/b0.txt
cp c.txt dir_0/c0.txt
cp a.txt dir_1/a1.txt
cp b.txt dir_1/b1.txt
cp c.txt dir_1/c1.txt
cp a.txt dir_2/a2.txt
cp b.txt dir_2/b2.txt
cp c.txt dir_2/c2.txtcd ../homework_8
//删除错误不能 mv dir_b/task.txt dir_b/b_new.txt ,会保留b.txt
cd dir_a
cat task.txt
rm a.txt
cd ../dir_b
cat task.txt
mv b.txt b_new.txt
cd ../dir_c
cat task.txt
cp c.txt c.txt.bakcd ../homework_9
rm *.txt
【详细版】
1. 常用命令介绍:copy-Y总
(1) ctrl c: 取消命令,并且换行
(2) ctrl u: 清空本行命令
(3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
(4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
(5) pwd: 显示当前路径
(6) cd XXX: 进入XXX目录下, cd .. 返回上层目录
(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
(8) mkdir XXX: 创建目录XXX
(9) rm XXX: 删除普通文件; rm -r XXX: 删除文件夹
(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
(11) touch XXX: 创建一个文件
(12) cat XXX: 展示文件XXX中的内容
(13) 复制文本windows/Linux下:Ctrl + insert,Mac下:command + c
(14) 粘贴文本windows/Linux下:Shift + insert,Mac下:command + v
2.作业:
创建好作业后,先进入文件夹/home/acs/homework/lesson_1/,然后:(0) 进入homework_0文件夹,分别创建文件夹dir_a, dir_b, dir_c(1) 进入homework_1文件夹,将a.txt, b.txt, c.txt 分别复制成: a.txt.bak, b.txt.bak, c.txt.bak(2) 进入homework_2文件夹,将a.txt, b.txt, c.txt 分别重命名为: a_new.txt, b_new.txt, c_new.txt(3) 进入homework_3文件夹,将dir_a文件夹下的a.txt, b.txt, c.txt分别移动到文件夹dir_b下(4) 进入homework_4文件夹,将普通文件a.txt, b.txt, c.txt删除(5) 进入homework_5文件夹,将文件夹dir_a, dir_b, dir_c删除(6) 进入homework_6文件夹,查看task.txt的内容,并按其指示进行操作 (7) 进入homework_7文件夹,创建文件夹dir_0, dir_1, dir_2,将a.txt, b.txt, c.txt复制到dir_0下,重命名为a0.txt, b0.txt, c0.txt;将a.txt, b.txt, c.txt复制到dir_1下,重命名为a1.txt, b1.txt, c1.txt;将a.txt, b.txt, c.txt复制到dir_2下,重命名为a2.txt, b2.txt, c2.txt;(8) 进入homework_8文件夹,分别在dir_a, dir_b, dir_c文件夹下查看task.txt的内容,并分别按照指示进行操作(9) 进入homework_9文件夹,将其中所有txt类型的文件删除
3.完成作业:
cd homework/lesson_1/ls
cd homework_0
mkdir dir_a dir_b dir_c
homework 1 test
homework 1 show# Tab 补全:寻找目录中匹配的目录或文件名,自动猜测补全; 如: cp b. 按Tab .再Tab
cd ../homework_1
ls
cp a.txt a.txt.bak
cp b.txt b.txt.bak
cp c.txt c.txt.bakcd ../homework_2
ls
mv a.txt a_new.txt
mv b.txt b_new.txt
mv c.txt c_new.txt
homework 1 testcd ../homework_3
mv dir_a/* dir_b/ #正则表达式匹配 #若进入了cd dir_b/ 再移动: mv a.txt ../dir_a/ 移动需要相对路径【dir_a相对于dir_b】
#同理cd dir_b/ 查看: ls ../dir_a/
#瞎搞成功:mv ../dir_a/a.txt ../dir_b/ cd ../homework_4
ls
rm a.txt b.txt c.txt # a Tab按键 b Tab按键 c Tab按键
homework 1 testcd ../homework_5
ls
rm -r * #-r 删除目录
homework 1 testcd ../homework_6
ls
cat task.txt #将task.txt重命名为done.txt, 创建目录dir_a,将done.txt移动到目录dir_a下
mv task.txt done.txt
mkdir dir_a
mv done.txt dir_a/
homework 1 testcd ../homework_7
ls
mkdir dir_0 dir_1 dir_2
cp a.txt dir_0/a0.txt #类似命令按↑回滚命令,稍加修改
cp b.txt dir_0/b0.txt
cp c.txt dir_0/c0.txt
cp a.txt dir_1/a1.txt
cp b.txt dir_1/b1.txt
cp c.txt dir_1/c1.txt
cp a.txt dir_2/a2.txt
cp b.txt dir_2/b2.txt
cp c.txt dir_2/c2.txt
homework 1 testcd ../homework_8
ls
cat dir_a/task.txt #将a.txt删除
#可省略 ls dir_a/
rm dir_a/a.txt
cat dir_b/task.txt #将b.txt重命名为b_new.txt
cd dir_b/
mv b.txt b_new.txt
cd ..
cat dir_c/task.txt #将c.txt复制成c.txt.bak
cd dir_c/
cp c.txt c.txt.bak
cd ..
homework 1 testcd ../homework_9 #history后回车可以定位到当前命令输入行
ls
rm *.txt
homework 1 test
clear
4.常用作业命令
history 查看历史命令
homework 1 create 可以重新创建所有lesson_1的作业
homework 1 create id 可以单独创建lesson_1的第id个作业
homework 1 create 0 可以只重新创建lesson_1的第0个作业
homework 1 test 可以评测lesson_1的所有作业
5.补充小细节
mv a.txt dir/ #只写目录,说明保留文件名,移动到该目录
mv a.txt dir/new_a.txt 若为文件类型,说明移动的同时重命名文件
class2
/*homework 1 create 4 重建作业1的第4小题 删掉整个文件,可以再看文件,但啥也没有,因为文件都没了 tmux (1)分屏 (2)链接断开之后,仍然可以继续运行, 不用担心断网tmux可以开多个session对话, 每个session可以开多个windows窗口,每个窗口可以开多个pane , 每个pane可以开多个shell
【概念 + 操作 17个】 y总做了一个限制,占用带宽超过1M 断开链接,acwing滑动太快可能断开。
前缀建Ctrl + a ,后松开再按% ,即可分割页面 开发必练 : tmux + vim tmux操作:
选中一块【可以鼠标点击,也可以Ctrl + a 再方向键操作】,进行以下操作 (注意一下,这是y总改成了Ctrl + a ,实际不是)
Ctrl + a 松开 ,再按出% (shift + 5) ,左右分屏
Ctrl + a 松开 ,再按出" (shift + 5) ,上下分屏
Ctrl + d 关闭分屏 ,只剩下一块,再次按就退出tmux
Ctrl + a 松开,再按z[按两次恢复] (全屏/取消全屏)
Ctrl + a 松开,再按d 挂起 , 从session出来
Ctrl + a 再按s ,可以选择上下两个session 按右箭头 ,向右展开
每一块大小还可以拖动 tmux a (tmux attach 的简写) 在每一个色session可以展开 ,按箭头左右(展开和收缩) Ctrl + a ,在 按 c 新开windows
Ctrl + a ,在 按 w 选择windows 一般一个session只放一个windows (足够看) 鼠标可以实现翻滚
命令翻滚 Ctrl + a 加上 PgUp
命令行下的文本编辑器ESC任何模式均会返回一般命令模式 -------------------------------------------------------vim会按文件的后缀自动识别修饰(标亮) vim 编辑模式 i才能编写 下方会显示INSERT
可以做一些设置 , set nonu 无行号 ; set nu 行号 vim在编辑模式会卡在最后一个字母前 连续跳5 Ctrl + 5按 冒号:行数 (跳转对应行号)gc询问换不换 y换 n不换 v选中文本,可以删除ggdG 代码全删连招 Ctrl + q 中断 d删除选中 , dd是剪切,删除当前行 ,可以再粘贴回去
y复制选中 , yy复制当前行
u撤销gg=G 全文格式化set paste 取消缩进 , 再粘贴,直接格式化好
set no paste 开启缩进保证每一个文件只有一个进程打开,否则报错,需要关闭
删掉 .main.文件.swp 没有了警告,vim就可以同时开多个进程tmux左边看作业内容,右边做作业 */
做第二次作业 :
tmux环境 Ctrl + a 松开后按 % ,分屏:一边看作业内容,一边作业 根目录要/ 再 /home 其他不要前面加/ 第101个字符: 101+空格跳转
i编辑模式 再按back gg第一行 shift + g == G最后一行
ESC返回一般命令模式 , i编辑模式
16G或:16 跳转到16行
:wq 保存重置单个作业环境:cd .. (先退出,重置会删除该目录) homework 2 create x(单个作业) ESC一般命令模式 : /查找的单词 i编辑模式执行操作 多个目标按n跳转到下一个
back删前面的字符,delete键删除后面的字符
dd删去整行 代码复制到终端: 先冒号 :set paste i进入编辑模式 , shift + insert 复制完成 dd剪切 , 选中行的下一行按p粘贴v选中模式
$p
14<space> 第十四个字符的后面 <space>空格
G$p 到最后一个字符后面粘贴15Gv21G > 同理再v21G选中 再次 > 用v指定连续一段,要记得退出ESC
homework 2
homework 2 show
homework 2 test
order || command
cd homework_0
vim names.txt
输入 i 进入编辑模式
依次输入各个单词
按ESC返回一般命令模式
按 :wq 保存并退出cd homework_1
vim problem.txt[1] 最后一行第101个字符:G101<Space>i<Backspace>ESC
[2] 第3行第8个字符:3G8<Space>i<Backspace>ESC
[3] 第1行第30个字符:gg30<Space>i<Backspace>ESC
[4] 第16行第55个字符::16<Enter>55<Space>i<Backspace>ESC
[5] 第9行第80个字符:9G80<Space>i<Backspace>ESC保存::wq<Enter>cd homework_2
vim problem.txt
输入/two依次查找每个two
[1] 在第1个"two"的后面添加"abc" 按i进入编辑模式添加即可
[2] 在第2个"two"的前面添加"def" 按i进入编辑模式添加即可
[3] 将第3个"two"后面的连续12个字符删掉 按i进入编辑模式,然后直接删即可
[4] 将第4个"two"所在的行删掉 输入dd即可
:wq 保存并退出cd homework_5
vim problem.txt
[1] 删除第11行第15个字符(包含该字符)至第13行第5个字符(包含该字符) 11G14<Space>v13G5<Space>d
[2] 将所删除的内容粘贴到文件末尾(注意不要另起一行) G$p
[3] 复制第5行第88个字符(包含该字符)至第7行第6个字符(包含该字符) 5G87<Space>v7G6<Space>y
[4] 将所复制的内容粘贴到当前文件末尾(注意不要另起一行) G$p
:wq 保存并退出`注意开始删除第十五个字符及其后面,则需跳到14G(光标在后面开始删除,而结尾到第5个字符就跳转到5`
同理复制包含88及其后面,即87个字符起的后面`【与删除区别:back就是删除光标前面的,所以删除单个字符就直接锁定】`
`连续粘贴删除,每次都定位在起始,再按v然后定位结尾位置`
`$定位行最后一个字符`cd homework_4
vim problem.txt
[1] 删除第11行 11Gdd
[2] 将所删除的行粘贴到文件最后一行的下一行 Gp
[3] 复制第5行 5Gyy
[4] 将所复制的行粘贴到文件当前最后一行的下行 Gp
:wq 保存并退出cd homework_5
vim problem.txt
[1] 删除第11行第15个字符(包含该字符)至第13行第5个字符(包含该字符) 11G14<Space>v13G5<Space>d
[2] 将所删除的内容粘贴到文件末尾(注意不要另起一行) G$p
[3] 复制第5行第88个字符(包含该字符)至第7行第6个字符(包含该字符) 5G87<Space>v7G6<Space>y
[4] 将所复制的内容粘贴到当前文件末尾(注意不要另起一行) G$p
:wq 保存并退出此题忘先i进入编辑模式导致第一个字符被"吃掉"
//仅支持Windows和Linux系统的做法:
cd homework_6
vim source0.cpp
ggdG # 删掉全文
Ctrl-a, " 在tmux中打开一个新的pane
vim source1.cpp
:set nonu 删掉行号
选中pane, Ctrl + a z 全屏/退出全屏
shift + 选中前3行
Ctrl + insert 复制选中内容
选择source0.cpp所在的pane
:set paste 进入粘贴模式
i进入编辑模式
Shift + insert粘贴内容同理操作source1.cpp的第12-24行
保存source0.cpp :wq
退出source1.cpp :qcd homework_8
vim source.cpp
选中15-21行 15Gv21G
向右缩进一次 >
同理再缩进一次选中22-23行 22Gv23G
向左缩进一次 <
:wq 保存并退出最后学会抄代码,抄写链接页面的代码
https://www.acwing.com/activity/content/code/content/1694465/
#include<iostream>using namespace std;int main()
{int a, b;cin >> a >> b;cout << a + b <<endl; return 0;
}
homework 3
shell语法较多,详情请点击这里查看
homework 3 test
homework 3 show
#! /bin/bash# ********* homework_0 **********dir0=/home/acs/homework/lesson_1/homework_0for i in dir_a dir_b dir_c
domkdir ${dir0}/$i
done# ********* homwork_1 **********dir1=/home/acs/homework/lesson_1/homework_1for i in a.txt b.txt c.txt
docp ${dir1}/${i} ${dir1}/${i}.bak
done# ********* homwork_2 **********dir2=/home/acs/homework/lesson_1/homework_2for i in a b c
domv ${dir2}/${i}.txt ${dir2}/${i}_new.txt
done# ********* homwork_3 **********dir3=/home/acs/homework/lesson_1/homework_3for i in a.txt b.txt c.txt
domv ${dir3}/dir_a/$i ${dir3}/dir_b/
done# ********* homwork_4 **********dir4=/home/acs/homework/lesson_1/homework_4rm ${dir4}/*# ********* homwork_5 **********dir5=/home/acs/homework/lesson_1/homework_5rm ${dir5}/* -r# ********* homwork_6 **********dir6=/home/acs/homework/lesson_1/homework_6mv ${dir6}/task.txt "${dir6}/done.txt"
mkdir ${dir6}/dir_a
mv "${dir6}/done.txt" ${dir6}/dir_a# ********* homwork_7 **********dir7=/home/acs/homework/lesson_1/homework_7for ((i=0;i<3;i++))
domkdir ${dir7}/dir_$ifor j in a b cdocp ${dir7}/${j}.txt ${dir7}/dir_${i}/${j}${i}.txtdone
done# ********* homwork_8 **********dir8=/home/acs/homework/lesson_1/homework_8rm ${dir8}/dir_a/a.txt
mv ${dir8}/dir_b/b.txt ${dir8}/dir_b/b_new.txt
cp ${dir8}/dir_c/c.txt ${dir8}/dir_c/c.txt.bak# ********* homwork_9 **********dir9=/home/acs/homework/lesson_1/homework_9rm ${dir9}/*.txt
#! /bin/bashif [ $# -ne 1 ] #-ne不等于
thenecho arguments not validexit 1
fiif [ ! -e "$1" ] #-e等于
thenecho not existexit 2
fiif [ -f "$1" ] # 不写退出状态默认为0,表示正常退出
thenecho regular file
fiif [ -d "$1" ]
thenecho directory
fiif [ -r "$1" ] # 分别判断是否有读、写、执行权限
thenecho readable
fiif [ -w "$1" ]
thenecho writable
fiif [ -x "$1" ]
thenecho executable
fi
cd ../homework_2
vim main.sh
chmod +x main.sh
:wq./main.sh main.sh#! /bin/bashread na[0]=1
a[1]=1for ((i = 2; i <= n; i ++ ))
dox=$(expr $i - 1)y=$(expr $i - 2)a[$i]=$(expr ${a[$x]} + ${a[$y]})
doneecho ${a[$n]}
#! /bin/bashread n
read mfor ((i = 1; i <= n; i ++ ))
dost[$i]=0
donedfs() {if [ $1 -eq $n ]thenm=`expr $m - 1`if [ $m -eq 0 ] thenecho ${path[@]}return 0fireturn 1fi local j=0for ((j = 1; j <= n; j ++ ))do if [ ${st[$j]} -eq 0 ] thenpath[$1]=$jst[$j]=1if dfs `expr $1 + 1`thenreturn 0fist[$j]=0fidonereturn 1
}dfs 0
#! /bin/bashinput_file=$1
output_file=$2read n < $input_filesum=0for ((i = 1; i <= n; i ++ ))
dosqr=`expr $i \* $i`sum=`expr $sum + $sqr`
doneecho $sum > $output_file
order || command
homework 4
homework 4 show
order || command
homework 5
homework 5 show
order || command
homework 6
homework 6 show
order || command
homework 7
homework 7 show
order || command
homework 8
homework 8 show
order || command
这篇关于Linux基础课 【合集】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!