一、基本命令
1、date命令可以查看当前的时间和日期,cal命令(calendar)查看的本月的日历,
使用cal+年查看某一年的所有日历,使用 cal+月+年 来查看具体某年某月的日历。
2、cd .. 表示回到上一层的目录
3、新建文件夹 mkdir 文件夹名字 ,在当前的目录下创建一个新的文件夹, rmdir 文件夹名字可以实现文件夹的删除。
4、复制文件的命令是 cp 复制文件的名字 复制出的文件新的名字
5、比较两个文件。用 diff 文件1名称 文件2名称 命令,如果没有结果,则表明两个文件内容完全相同,否则将会出现提1示,说明两个文件不同。
6、命令 head 文件名称 -n 数字 表示查看文件的文件头,文本文件的前n行的内容。
7、命令 tail 文件名称 -n 数字 表示查看文件的文件尾,文本文件的最后n行内容。
8、wc命令是word count的缩写,查看文件有多少个单词,wc 文件名 查找之后显示文件的行数、文件的单词数目、文件的字符数。如果想要查找文件的单词数,可以用 wc -w 文件名 来实现。 想要查找文件有多少行,可以用 wc -l 文件名称 来实现。想要查看文件的字节数可以用 wc -c 文件名称 来实现。
9、mv 命令可以修改文件名和移动文件。mv 文件1名称 文件1新的名称 这样将文件1的名字改成了新的名称。mv 文件名称 文件夹名称 移动文件到文件夹中。注意Linux里面大小写敏感,要注意文件的名字。
10、less命令类似于文件浏览器,使用 less 文件名称 能够使用上下左右键查看文件中的内容,按 【q】 能够返回命令行模式,退出查看。
11、chmod命令 分为三部分:u作者,g小组成员,o其他成员。每一部分里面都有:r读,w写,x运行三个部分。如果想修改权限的话 chmod u-r 文件名称 代表修改了作者的权限,不能够读。如果想添加权限 chmod u+r 文件名称 代表允许可读权限。如果使用 chmod g-r 文件名称 代表小组成员和其他人都不能读。chmod命令使用二进位表示为三位。
12、grep命令可以对文本文件的内容进行搜索。grep 想要搜索的内容 文件名称 就可以搜索文件中是否含有内容。
13、
- cd /etc 把文件夹跳到
/etc
(根下的 etc 下) - ls *release 查看当前目录下所有以 release 结尾文件
- cat *release 把所有以 release 结尾的文件内容合并输出
- pwd=print working directory 输出当前文件夹。
- whatis 可以告我们某条命令是干什么用的
- man 命令可以查看最详细的命令细节,man的意思是 manual,就是查手册,就是查说明书(比whatis更详细)
14、灵魂三问:whatis、whereis、which。
- whatis 你是谁
- whereis 你在哪
- which 到底在哪
pwd
显示当前操作的路径
touch
创建一个文件
mkdir
创建一个文件夹
rm'
删除文件或一个文件夹,值得注意的是,在删除文件夹的时候,要写rm 文件夹名 -r
。其中-r
的意思是递归。不管文件夹是不是为空都会删除!!
rmdir
删除文件夹(文件夹是空才能删除)
cat
可以查看文件的全部内容(不能编辑)还可以同时查看两个文件或多个文件的内容,例如:cat 1.txt 2.txt
ls 和 cd 的补充、相对路径和绝对路径
一行一般只写一个命令,如果非要写很多命令的话,记得要用;
把两个命令进行分开。
|
这个符号类似于“管道”的概念,例如:ls -alh | more
这样就可以实现分屏显示要显示的内容了。
对于相对路径和绝对路径的基本解释就不多做解释了。在Linux中 .\
A这个命令表示在当前目录先的A的文件夹下的目录下。也就是说一个点可以表示的 绝对路径。
而 ..
则表示是返回上一层的路径 例如:在目录 \home\python\A
下,使用命令 cd ..
则执行的结果就是返回上一次的目录,也就是到了python 的目录下。当然了之有.
和..
。不存在三个或者是多个点。
在本例要想返回到home 文件夹下,命令应该这样写:cd ..\..
这样就到了home 的文件夹下面,当然了也可以用绝对路径。
cd -
是快速返还上一次的路径,且只能执行一次。
cd ~
是快速返回到家目录。
二、Linux脚本Shell Script
1.基础知识
1、>
<
是重定向符号
2、脚本文件:将一些简单命令集合在一起,打包为一个文件,实现更加复杂功能。
一般是sh结尾,运行的时候 sh test.sh
就可以运行脚本。
3、脚本内的输出语句是: echo
+ 具体内容 。这里需要注意的是:输出变量的时候需要加 $ 符号(echo $10),变量复制的时候不需要使用,但是注意在给变量赋值的时候左右两边不要有空格(a=10),不能写为a = 10
。输出字符串:echo hello <==> echo "hello"
4、Linux和windows下的回车换行符是不兼容的。以下代码复制到Linux内运行后可能报错。
2.数字类型
1、Linux中的判断符表示形式如下:
大于--Linux中的表示形式--命令组成
> -gt greater than
< -lt less than
>= -ge greater than or equal to
<= -le less than or equal to
= -eq equal
!= -ne not equal to
2、if 语句(输出两个数中的较大数)
a=2
b=5
if [ $a -gt $b]
then
echo $a
else
echo $b
fi
3、循环语句(输出1、2、3、4、5)
#for循环
#for x in 1 2 3 4 5
for x in {1 .. 5}
do
echo $x
done
#while循环
y=1
while [ $y -le 5 ]
do
echo $y
y=`expr $y + 1`
done
3.字符串类型
1、输入
echo "enter a:"
read a
echo "enter b:"
read b
c=`expr $a + $b`
echo $a + $b = $c
2、字符串的比较
password="123sa"
echo "enter a password: "
read userPassword
if [ $password = $userPassword ]
then
echo "密码正确"
else
echo "密码错误"
fi
3、拼接
str1="hello"
str2="world"
str3="$str1 $str2"
echo $str3
str4="$str1$str2"
echo $str4
4、判空
str1="hello"
str2=""
#-z:表示字符串是不是0
#-n:表示not zero 不是0
#两个刚好相反
if[ -z $str1 ]
then
echo "str1为空"
else
echo "str1不为空"
fi
5、数组
数组的表示为arr()
,${arr[@]}
表示所有元素
arr=(1 2 3 4)
echo ${arr[1]}
sum=0
for i in ${arr[@]}
do
echo $i
sum=`expr $sum + $i`
done
echo $sum
三、全局变量
1、USER
记录当前登录系统的用户名,可以用echo $USER
输出
2、HOME
表示用户主目录。 cd $HOME
或cd ~
为进入主目录命令
3、PATH
表示环境变量。将当前路径( /home/ubuntu/workspace )加入到PATH里面 :$ PATH=$PATH:/home/ubuntu/workspace
,修改工程要小心,若写错路径会导致PATH所有路径出错。
四、解压缩文件
1.压缩命令:zip test.zip *
,表示将当前目录下的所有文件压缩到test.zip
2、逐层压缩:zip workspace.zip worksapce/*
表示将workspace文件夹里面的所有文件压缩到workspace.zip。zip workspace.zip -r worksapce/*
表示将子文件夹也一起做成压缩包。
3、解压命令:unzip workspace.zip
4、另一种压缩格式tar。tar的压缩命令 tar -zcvf test.tar.gz workspace/
,.tar.gz
为扩展名。
解压的命令是 tar -zxvf test.tar,gz
。
五、下载文件
1、从网络是下载文件的命令:wget https://www.baidu.com/download/test.tar.gz
, wget+下载文件的地址,即可下载文件。
wget https://www.baidu.com/download/test.tar.gz -O Mytest.tar.tz
,-O Mytest.tar.tz
表示修改下载的文件名为Mytest.tar.tz
六、终端应用实例
1、蒸汽机车
sudo apt install sl
sl
sl -l
sl -F
SL
代表 Steam Locomotive
,这个命令和 ls 很像,这个命令就是在 ls 打错的情况下提提神:
-l
选项:会出现一个小火车-F
选项:会让火车越飞越高,要注意是大写F-e
选项:允许中途被 ctrl+c 打断
2、黑客帝国
apt search matrix
apt show cmatrix
sudo apt install cmatrix
cmatrix
-b: 部分加粗头部变***old
-B: 全部加粗头部变***old
-o: 老式的 old school
-s: 屏保模式 Screensaver
-u: 我们可以设置中间 0-9 的间隔时间 ⏲
0 为无间隔非常快
9 为比较慢
-C 后面加上想要的颜色 (Color) 模式
目前支持红绿蓝青品黄黑白
cmatrix -b
cmatrix -u 9
cmatrix -C blue
一. 文件目录操作命令
ls命令
ls 用来打印出当前目录的清单。
如果 ls 指定其他目录,那么就会显示指定目录里的文件及文件夹清单。
参数 | 描述 |
---|---|
-a | –all 列出目录下的所有文件,包括以 . 开头的隐含文件 |
-l | 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 |
-h | –human-readable 以容易理解的格式列出文件大小(例如 1K 234M 2G) |
-t | 以文件修改时间排序 |
列出/home
****文件夹下的所有文件和目录的详细资料,有两种命令写法:
ls -a -l /home
ls -al /home
cd命令
从当前目录进入父目录,可以使用如下命令:
cd ..
从当前目录进入上次所在目录(- 表示上次进入的目录),可以使用如下命令:
cd -
pwd 命令
pwd 命令来查看“当前工作目录”的完整路径
mkdir命令
创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限
参数 | 描述 |
---|---|
-m --mode=模式 | 设定权限<模式> |
-p --parents | 可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录 |
-v --verbose | 每次创建新目录都显示信息 |
递归创建多个目录 ,可以使用如下命令:
mkdir -p zhou/test
创建目录显示信息,可以使用如下命令:
mkdir -vp zhou/test1
rm命令
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只会删除链接,原文件均保持不变。
参数 | 描述 |
---|---|
-f --force | 忽略不存在的文件,从不给出提示 |
-i --interactive | 进行交互式删除 |
-r --recursive | 指示 rm 将参数中列出的全部目录和子目录均递归地删除 |
-v --verbose | 详细显示进行的步骤 |
删除后缀名为.log 的所有,删除前逐一询问,可以使用如下命令:
rm *.log 或 rm -i *.log
mv 命令
将文件shiyanlou.log
重命名为zhou.log
,可以使用如下命令:
mv shiyanlou.log zhou.log
将文件zhou.log
移动到 test 目录下(test 目录必须已经存在,否则执行重命名),可以使用如下命令:
mv zhou.log test
cp 命令
将 test1 目录下的所有文件复制到 test2 目录下,覆盖前询问
cp -i test1/* test2
cat 命令
功能是将文件或标准输入组合输出到标准输出。
这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
把shiyanlou.log
的文件内容加上行号后输入zhou.log
这个文件里,可以使用如下命令:
cat -n shiyanlou.log > zhou.log
less/more 命令
less 命令也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。
显示shiyanlou.log
文件中的内容,并显示行号:
less -N shiyanlou.log
显示shiyanlou.log
文件中的内容,搜索字符串”shiyanlou”,可以使用如下命令:
less shiyanlou.log
/shiyanlou
tail /head命令
tail 命令主要用于显示指定文件末尾内容。常用查看日志文件。
参数 | 描述 |
---|---|
-f | 循环读取 |
-q | 不显示处理信息 |
-v | 显示详细的处理信息 |
-c<字节> | 显示的字节数 |
-n<行数> | 显示行数 |
显示shiyanlou.log
文件中的最后 5 行内容,可以使用如下命令:
tail -n 5 shiyanlou.log
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
二. 文件查找命令
which、whereis、locate 命令
which 命令一般用来确认系统中是否安装了指定的软件。
确认是否安装了 gcc,可以使用如下命令:
which gcc
whereis 命令主要用于定位可执行文件、源代码文件和帮助文件在文件系统中的位置。
搜索 gcc 可执行文件的路径,可以使用如下命令:
whereis -b gcc
如果要获得更全面的搜索结果,可以使用 locate 命令。
(1)搜索 etc 目录下所有以 sh 开头的文件,可以使用如下命令:
locate /etc/sh
(2)搜索 etc 目录下文件名包含 lou 的文件,可以使用如下命令:
locate /etc/*lou*
find命令【重点】
find 命令主要作用是沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作。
Linux 下 find 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大
参数 | 描述 |
---|---|
find 命令将匹配的文件输出到标准输出 | |
-exec | find 命令对匹配的文件执行该参数所给出的 shell 命令 |
-name | 按照文件名查找文件 |
-type | 查找某一类型的文件 |
-prune | 使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那么 -prune 将被 find 命令忽略 |
-user | 按照文件属主来查找文件 |
-group | 按照文件所属的组来查找文件 |
-mtime -n +n | 按照文件的更改时间来查找文件,-n 表示文件更改时间距现在小于 n 天,+n 表示文件更改时间距现在大于 n 天,find 命令还有 -atime 和 -ctime 选项 |
打印当前目录下的文件目录列表,可以使用如下命令:
find . -print
打印当前目录下所有以.txt 结尾的文件名,可以使用如下命令(截图只显示部分):
find . -name "*.txt" -print
打印当前目录下所有以.txt 或.pdf 结尾的文件名,可以使用如下命令(截图只显示部分):
find . \( -name "*.pdf" -or -name "*.txt" \)
xargs 命令
xargs 命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表
将多行输入转换为单行输出,可以使用如下命令:
cat a.txt | xargs
三. 其他命令
wc 命令
wc (word count )命令是一个统计的工具,主要用来显示文件所包含的行、字和字节数。
参数 | 描述 |
---|---|
-c | 统计字节数 |
-l | 统计行数 |
-m | 统计字符数,这个标志不能与 -c 标志一起使用 |
-w | 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串 |
-L | 打印最长行的长度 |
grep 命令 [重点]
用来找到文件中的匹配文本,并且能够接受正则表达式和通配符,同时可以用多个 grep 命令选项来生成各种格式的输出。
将/etc/passwd
文件中出现 root 的行取出来,关键词部分加上颜色显示,可以使用如下命令:
grep "root" /etc/passwd --color=auto
在当前目录下递归搜索文件中包含 main() 的文件,经常用于查找某些函数位于哪些源代码文件中,可以使用如下命令:
grep -r "main()".
cut、paste 和 tr 命令
paste: 将student.txt
和telphone.txt
文件中的内容按列拼接,可以使用如下命令:
paste student.txt telphone.txt
tr 命令常被用来更改字符,我们可以把它看作是一种基于字符的查找和替换操作。
将输入的字符中的数字删除,可以使用如下命令:
echo 'THIS 123 IS S1HIY5ANLOU!' | tr -d '0-9'
-d 删除匹配 '0-9'的内容,并不作替换
sort、uniq 和 join 命令
comm、diff 和 patch 命令
通常 comm 命令对比较文本文件的内容很有帮助。对于系统管理员和软件开发者来说,这个命令尤为重要。例如,一名系统管理员需要拿现有的配置文件与先前的版本做比较,来诊断一个系统错误。同样的,一名程序员经常需要查看程序的修改内容。
类似 comm 命令,diff 命令被用来监测文件之间的差异。然而,diff 是一款更加复杂的工具,它支持许多输出格式,并且一次能处理许多文本文件。
四.磁盘存储相关
df ( disk free )命令的功能是用来检查 linux 服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
参数 | 描述 |
---|---|
-a | 全部文件系统列表 |
-h | 方便阅读方式显示 |
-i | 显示 inode 信息 |
-T | 文件系统类型 |
-t <文件系统类型> | 只显示选定文件系统的磁盘信息 |
-x <文件系统类型> | 不显示选定文件系统的磁盘信息 |
显示磁盘使用情况,可以使用如下命令:
df
du (disk usage)命令也是查看使用空间的,但是与 df 命令不同的是 du 命令是对文件和目录磁盘使用的空间的查看。
参数 | 描述 |
---|---|
-a | 显示目录中所有文件的大小。 |
-b | 显示目录或文件大小时,以 byte 为单位。 |
-c | 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 |
-k | 以 KB(1024bytes)为单位输出。 |
-m | 以 MB 为单位输出。 |
-s | 仅显示总计,只列出最后加总的值。 |
显示指定文件所占空间,以方便阅读的格式显示,可以使用如下命令:
du -h file1.txt
显示指定目录所占空间,以方便阅读的格式显示,可以使用如下命令:
du -h Desktop
time 命令常用于测量一个命令的运行时间
五. 解决问题
1怎么查看当前进程?怎么执行退出?怎么查看当前路径?
答案:查看当前进程: ps;执行退出: exit;查看当前路径: pwd
2查看指定帮助用什么命令?
如 man 这个很全 而且有例子; --help 这个告诉你一些常用参数;
3Linux下命令有哪几种可使用的通配符?分别代表什么含义?
“?”可替代单个字符。
“*” 可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
4用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
wc 命令 - w 统计字数 - l 统计行数 - c 统计字节数 。
如果想要查找文件的单词数,可以用 wc -w 文件名 来实现。
想要查找文件有多少行,可以用 wc -l 文件名称 来实现。
想要查看文件的字节数可以用 wc -c 文件名称 来实现。