Linux系统入门笔记
写在前面
本人大一,啥都不懂,纯粹以啥都不懂的角度写的笔记。这篇笔记是我在跟着bilibili up主正月点灯笼
的教学视频学习时整理的,这里是他的视频地址Linux入门教程。这个up讲课讲的超级好,强烈推荐!!!一定要给他投币点赞哦(众所周知bilibili是个学习网站)
喜欢的话点赞收藏哦~
文章目录
1.简单命令
代码 | 作用 |
---|---|
date | 打印系统时间 |
cal | 打印今天日历 |
cal +年份 | 打印某年日历 |
cal +月份+年份 | 打印某月日历 |
clear | 清屏 |
2. Linux的文件相关
-
总目录是叫root,Linux中用
/
-
文件的类型是三段式的
u
-g
-o
: user-group-other 作者-小组-其他r:read可读。 w:write可写。 e:execute可运行
一些代码
代码 | 作用 |
---|---|
pwd | 显示当前目录 |
cd / | 跳到总目录 |
ls | 列出所在目录下文件 |
ls -l | 列出所在目录下所有文件的详细信息 |
cd 【文件夹名字】 | 进入文件夹 |
cd … | 退回上一级目录 |
mkdir 【文件夹名字】 | 创建文件夹 |
rmdir 【文件夹名字】 | 删除文件夹 |
cp 【A】 【B】 | 将【A】复制成为【B】 |
cat 【A】 | 查看文件内容 |
diff 【A】 【B】 | 对比两个文件有没有区别,一样就没反应,有的话会有提示 |
head 【文件名字】 -n 【数字】 | 查看这个文件的开头几行(tail是看最后几行) |
wc 【文件名】 | word count数文件里面多少行(-l),多少个单词(-w),大小(-c) |
rm 【文件名】 | 删除文件(没有回收站) |
mv 【A】 【B】 | 把A的名字改成B |
mv 【文件名】 xxx/(目录) | 移动 |
less 【文件】 | 以阅读器的方式打开,按q退出 |
chmod | 修改权限,比如chmod u-r xxx.txt 作者不能读。chmod u+r xxx.txt 作者可以读了。chmod go -r xxx.txt 除了作者都不能读了。 |
grep 【正则表达式】【文件名】 | 在文件中查找(正则表达式)内容,红色代表重复(更复杂的用法找help) |
./ | 运行可执行文件 |
3.Linux脚本
3.1 一些补充
- 重定向符号
>
<
-
脚本:指的是一堆Linux命令或者其他命令。我们把它写到一个文件里面,结尾
.sh
-
脚本中的命令可直接在命令行中执行
3.2 脚本的运行
sh xxx.sh
可以运行该脚本
3.3 变量(脚本里面)variable
a=10 #设置一个变量10,‘=’两边不能打空格
echo $a #echo用于输出,类似C语言中的printf,’$‘符号:Linux中要读取时要加$,但是赋值不加。
echo "Hello world" #输出字符串,可以不写双引号(写了更好看)
脚本支持计算
a=1
b=2
c=`expr $a + $b` #这里用的符号是数字1左边那个符号。expr 个指令。乘法用'\*',单独的乘号是认作正 则表达式,括号也是类似的用法。ps:运算符两边要加空格
echo $c
条件语句
a=1
b=2
if [ $a -gt $b ] #-gt是大于的意思
then
echo $a
else
echo $b
fi
一些符号对应关系
C语言符号 | Linux脚本 | 英文解释 | 中文解释 |
---|---|---|---|
= | -eq | equal | 等于 |
!= | -ne | not equal | 不等于 |
> | -gt | greater than | 大于 |
< | -lt | less than | 小于 |
>= | -ge | greater than | 大于等于 |
<= | -le | less than | 小于等于 |
循环语句
#for循环
for x in 1 2 3 4 5 6 7 8 9 10
do
echo $x
done
#或者这样写
for x in {1...10}
do
echo $x
done
#while循环
x=1
while [ $x -le 10 ]
do
echo $x
x=`expr $x + 1`
done
3.4 字符串
字符串的定义
a="hello"
b="world"
输出
echo $a
echo $b
echo "$a $b " #将ab输出在同一行,中间那个空格会直接输出,双引号可不要
输入
read
例1:用户输入两个数字,求和
echo "Please enter a: "
read a
echo "Please enter b: "
read b
c=`expr $a + $b`
echo $a + $b = $c
例2:判断字符串是否一致(验证密码)
passward="hello world"
echo "Please enter a: "
read userPassword
if [ $password = $suerPassword] #相同只有一个等号,不相同是'!='
then
echo "密码正确!"
else
echo "密码错误!"
fi
字符串拼接
str1="hello"
str2="world"
str3="$str1 $str2"
echo $str3
判断一个字符串是否是空的
if [ -n $str ] #-z判断这个字符串是不是零(zero) -n判断是不是不是零
then
echo "str1 不是空的"
else
echo "str1 是空的"
fi
3.5 数组
sh
可能不支持数组,若包含数组,要用bash
arr=(7 8 9 10)
echo ${arr[0]} #这里下标和C语言是类似的
echo ${arr[1]}
for i in ${arr[@]} #类比C语言的for循环
do #i走的是元素本身
echo $i
done
例:输出数组最大值
arr=(7 8 9 10 4 5 6 7)
max=${arr[0]}
for i in ${arr[@]}
do
if [ $i -gt $max ]
then
max=$i
fi
done
echo $max
4. 全局变量
4.1 USER
当前用户名
4.2 HOME
保存了用户主目录
如cd ~
和cd $HOME
4.3 PATH 环境变量
我们把写好的程序放在环境变量之下,就可以到处运行了
PATH=$PATH:/home/workspace
,假设这个目录下面有程序example的话,那么在哪里都可以运行example
注意上面那个代码用的是:
(不同于win用的;
)
5.文件压缩
5.1zip
zip CProgram.zip * #在某个目录下压缩,'*'代表全部文件
zip test.zip -r test/* #层层打包
unzip CProgram.zip #解压
5.2tar
tar -zcvf A.gz A/B #将目录压缩为A.gz
参数含义
- -z:按照gzip压缩算法压缩
- -c:创建目标
- -v:显示压缩过程
- -f:文件重命名
tar -zxvf A.gz #解压A.gz至目录
6. 网络下载
命令wget URL(网址) -O A
ps:-O是大写的英文字母,A是重命名