Linux入门学习(一)

一、基本命令

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 $HOMEcd ~为进入主目录命令

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: 部分加粗头部变色 bold
-B: 全部加粗头部变色 Bold
-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 命令提供了相当多的查找条件,功能很强大,对应的学习难度也比较大

参数 描述
-print 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.txttelphone.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 文件名称 来实现。

posted @ 2021-05-13 13:41  yu10001  阅读(227)  评论(0编辑  收藏  举报