命令提示符:

mt:当前登陆的用户
mt:主机名
~:当前所在目录(家目录)
$:普通用户(#:超级管理员用户)
date
用法:date +%Y/%m/%d
输出结果:

用法:date +%H:%M
输出结果:

cal
输出结果:

语法:cal 2016

语法:cal [month] [year]
例如:2016年10月
cal 10 2016
输出结果:

bc
计算器
输出结果:

^:指数
%:余数
注意:
1/10 不应该是0.1吗?
输出结果:

这是因为bc默认仅输出整数,如果要输出小数点下位数,那么就必须要执行scale=number命令,number指小数点位数

quit:离开bc计算器
cd命令
change directory缩写
cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
ls命令
就是list的缩写
ls -a 列出目录所有文件,包含以 . 开始的隐藏文件

ls -A 列出除.及..的其它文件

ls -r 反序排列

ls -t 以文件修改时间排序

ls -S 以文件大小排序

ls -h 以易读大小显示

ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls / 列出跟目录下所有目录

pwd
pwd 以绝对路径的方式显示用户当前工作目录

pwd -P 查看软链接的实际路径
mkdir
-m 对新建的目录设置存取权限
777:创建目录的同时设定权限为777

-p
who 查看当前用户

rm
删除任何.log文件;删除前逐一询问确认
rm -i *.log
删除test子目录及子目录中所有档案删除,并且不用一一确认
rm -rf test
删除以-f开头的文件
rm -- -f*
touch
创建文件

rmdir
从一个目录删除一个或者多个子目录项
ps:不能删除非空目录

同时删除test4和test5文件

mv
移动文件或者修改文件名
mv test1 test1_1
test1_1不存在则为修改test1的名称为test1_1

mv test1_1 test2
test2存在则为将test1_1移动至test2文件夹中

mv 1.txt 2.txt
将文件1.txt改名为2.txt,如果2.txt已经存在,则改名字为2.txt,文件中的内容不会变

mv -i 1.txt 2.txt
将文件1.txt改名为2.txt,如果2.txt已经存在,加-i会有提示信息,文件中的内容不会变

mv * ../ 移动文件夹中的所有文件和文件夹至上级目录

cp
copy的缩写
-i 提示
-r 复制目录及目录内所有项目
-p 连带文件属性一起复制
-d 若源文件是链接文件,则复制链接属性
-a 复制的文件与原文件各属性一样(相当于-pdr)
cp -i 2.txt test2
将2.txt文件移动到test2中,若test2中存在则提示是否重写overwrite

cp 3.txt test1_1 3.txt的文件内容会直接覆盖test1_1的文件内容

cp -ai 2.txt test2
复制2.txt文件到test2文件夹中,并且文件各属性和2.txt一致

cp -s a.txt link_a.txt
为2.txt建立一个链接(快捷方式)
-s的含义是什么?不加-s结果为第三个,加-s结果为第二个

cat
cat 2.txt 显示整个文件的内容

cat > 2.txt 修改原有的文件内容(ctrl+c结束)

cat -b 2.txt 对非空的文件输出行号

cat -n 2.txt 输出所有行号,包含空行

more
功能类似于cat, more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按 b 键就会往回(back)一页显示
+n 从笫n行开始显示
-n 定义每次输出n行
less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
less -N 2.txt 显示行号

-s 显示连续空行为一行
b 向后翻一页
d 向后翻半页
h 显示帮助界面
q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
head
打印文件内容,默认显示前10行

head 2.txt -n 13 显示文件的前13行

head 2.txt -n -13 不显示文件的后13行
tail
打印文件内容,默认打印后10行

which
查找文件
which指令会在环境变量$PATH设置的目录里查找符合条件的文件
which which

which vi

whereis
查看文件的位置
该指令只能用于查找二进制文件、源代码文件和man手册页
-b 只查找二进制文件
-m 只查找说明文件
whereis bash 查看指令bash的位置

whereis -b bash 显示bash 命令的二进制程序

whereis -m bash 显示bash 命令的帮助文件

locate
locate命令用于查找符合条件的文档
locate 12.txt

locate /mt1/2 查找mt1目录下以2开头的文件

-i 忽略大小写
locate -i ~/r 忽略大小写搜索当前用户目录下所有以m开头的文件
为何不显示m.txt r1.txt r2.txt r3.txt r.txt

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找
find
在指定目录下查找文件
- -type 按文件类型搜索(f:文件)
- -name 按文件名搜索
- -maxdepth 指定搜索深度,应作为第一个参数出现
- -size 按文件大小搜索。单位:k,M,G
- -exec 将find搜索的结果集执行某一指定命令
- -xargs 将find搜索的结果集执行某一指定命令。当结果集数量过大时,可以分片映射
find . -name "*.txt" 将当前目录及其子目录下所有文件后缀为 .txt 的文件列出来

find . -type f 将当前目录和当前目录子目录中所有的一般文件列出

find . -ctime -20 将当前目录及其子目录下所有最近 20 天内更新过的文件列出

find /etc -size +20k -a -size -50k 查找etc目录下,大于20kb并且小于50kb的文件。-a表示and;-o表示or

find /etc -size +20k -a -size -50k -exec ls -lh {} \; 查找etc目录下,大于20kb并且小于50kb的文件,并且显示详细信息

find /etc -size +2M -a -size -5M 查找
注意:k要是小写,M要是大写
find ./ -maxdepth 1 -name "*.txt" 查找当前目录的文件,按文件名搜索结尾是.txt的

find /usr/ -name '*tmp' -exec ls -ld {} \; 查找usr目录下已tmp结尾的文件

find /usr/ -name '*tmp' | xargs ls -ld 查找usr目录下已tmp结尾的文件

两者运行结果一样,但是xargs会进行分片映射,性能更加优化(例如有一万个文件,exec直接进行查找,xargs会把一万个文件分为很多组进行查找)
xargs的缺点:
当一个文件的文件名包含空格时,使用xargs时就会报错,这时候就需要用- print0来解决
例如创建一个文件:abc def

find ./ -name 'abc def' | xargs ls -ld 使用xargs查找当前目录文件名为abc def的文件

此时会报错,这是因为xargs是用空格来进行识别字符的。使用- print0就能解决此问题
find ./ -name 'abc def' -print0 | xargs -print0 ls -l

chmod
(英文全拼:change mode)命令是控制用户对文件的权限的命令
u 表示该文件的拥有者
g 表示与该文件的拥有者属于同一个群体(group)者
o 表示其他以外的人
a 表示这三者皆是
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限
r 表示可读取
w 表示可写入
x 表示可执行
X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行
将文件 2.txt 设为所有人皆可读取 :
chmod ugo+r 2.txt
chmod a+r 2.txt
将文件 1.txt 与 2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w 1.txt 2.txt
也可以用数字表示权限
r=4,w=2,x=1
| # | 权限 | rwx | 二进制 |
| 7 | 读 + 写 + 执行 | rwx | 111 |
| 6 | 读 + 写 | rw- | 110 |
| 5 | 读 + 执行 | r-x | 101 |
| 4 | 只读 | r-- | 100 |
| 3 | 写 + 执行 | -wx | 011 |
| 2 | 只写 | -w- | 010 |
| 1 | 只执行 | --x | 001 |
| 0 | 无 | --- | 000 |
权限一共分成3组,3个一组,分别是所有者,所属组,其他人
第一个代表文件类型,-代表是普通文件,d代表是文件夹
例如:1.txt 4+2--4+2--4 即就是664

我们给1.txt 777的权限
chmod 777 1.txt
则1.txt变为 -rwxrwxrwx

tar
用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成
tar -czvf test.tar.gz 2.txt 将2.txt压缩到test.tar.gz

tar -tzvf test.tar.gz 列出压缩文件的内容

tar -xzvf test.tar.gz 解压文件

rar
zip
chown
命令用于设置文件所有者和文件关联组的命令
sudo adduser mt2 创建用户mt2

sudo chown mt2 2.txt 修改文件2.txt的所属用户为mt2

sudo deluser mt2执行完后发现文件拥有者变成了1001,这是因为用户被删了找不到了

sudo addgroup mt3 创建用户组mt3
sudo chgrp mt3 3.txt 修改文件3.txt所属用户组为mt3

sudo delgroup mt3 删除用户组,删除后也变成了1001
df
命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
第一列指定文件系统的名称,第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存

用一个-i选项的df命令的输出显示inode信息而非块使用量
df -i

df --total 显示所有信息

输出的末尾,包含一个额外的行,显示总的每一列
df -h 可以产生可读的格式df命令的输出

du
显示目录或文件的大小
会显示指定的目录或文件所占用的磁盘空间
du 只显示当前目录下面的子目录的目录大小和当前目录的总的大小
du 2.txt 显示指定文件所占空间
du -h 2.txt 以方便阅读的格式显示指定文件所占空间

ln
为某一个文件在另外一个位置建立一个同步的链接
链接分为:软链接,硬链接
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间
软链接:
以路径的形式存在,类似于windows系统中的快捷方式
软链接可以跨文件系统,硬链接不可以
软链接可以对一个不存在的文件名进行链接
软链接可以对目录进行链接
硬链接:
以文件副本的形式存在,但不占用实际空间
不允许给目录创建硬链接
硬链接只有在同一个文件系统中才可以创建
命令参数:
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
--help 显示帮助信息
--version 显示版本信息
ln -s 2.txt link2021 给2.txt创建软链接,如果2.txt丢失,link2021也将失效

ln 3.txt ln2023 给3.txt创建硬链接,3.txt和ln2023各项属性相同

grep
查找文件里符合条件的字符串
-v:排除指定字符串
-i:忽略大小写
egrep
egrep命令用于在文件内查找指定的字符串,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范
fgrep 命令用于查找文件里符合条件的字符串,等同于grep -F,相对于grep和egrep的执行速度最快
grep "root" /etc/passwd

grep -v "/bin/bash$" /etc/passwd
显示/etc/passwd文件中不以/bin/bash结尾的行

grep "\<[0-9]\{2,3\}\>" /etc/passwd
egrep "\<[0-9]{2,3}\>" /etc/passwd
找出/etc/passwd文件中的两位数或三位数

netstat -tan | grep "LISTEN[[:space:]]*$"
找出"netstat -tan"命令的结果中以'LISTEN'后跟0,1或多个空白字符结尾的行

这是因为执行文件不存在,根据下面提示下载即可

创建文件4.txt 内容为:Wulianyu is a good boy but mother say wulianyu often lazy11111 I think he is very goooo.
grep mother 4.txt 筛选包含mother的行

grep -v mother 4.txt 筛选不包含mother的行

grep "[a-z]ulianyu" 4.txt 匹配ulianyu且是a-z开头的(a-z区分大小写)

grep "[^a-z]ulianyu" 4.txt 匹配ulianyu且不是a-z开头的(a-z区分大小写)

grep "\.$" 4.txt 以.结尾的行,此处\表示转义

grep "^[^A-Za-z]" 4.txt 第一个不是大小写字母
grep "[^A-Za-z]" 4.txt 不是大小写字母

grep "^$" 4.txt 匹配空行

ps aux | grep 'mt1' 检索进程结果集。例如检索进程名为mt1的,一条数据说明没有进程名为mt1的
![]()
ps aux | grep 'kworker' 检索进程名为kworker的

wc
wc命令用于计算字数
4.txt的行数为5、单词/字数20、字节数112

wc 4.txt 1.txt 查询多个文件的时候会输入总用量

wc -c 4.txt 只输出字节byte数

wc -l 4.txt 只显示行数

wc -w 4.txt 只显示字数

字数是如何统计的?
ps
命令用于显示当前进程的状态,类似于 windows 的任务管理器

ps -A 列出所有的进程
ps -au 显示较详细的信息

USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
ps -ef | grep linux 查找指定Linux的进程

ps ef 显示所有进程信息,连同命令行

top
top命令用于实时显示 process 的动态
使用权限:所有使用者

top -c 显示完整的命令
top -b 以批处理模式显示程序信息
top -S 以累积模式显示程序信息
关闭输入回显:stty -echo
打开输入回显:stty echo
poweroff:立刻关闭虚拟机
切换到root用户:sudo -i 或者 sudo su
sudo -i 运行结果 PWD=/root

sudo su 运行结果 PWD=/home/用户名(当前用户主目录)

root用户切换到mt用户:sudo - mt

vi和vim的区别:vim支持正则表达式,vi不支持
who:当前在线的用户

netstat -a:查看网络的联机状态
ps -aux:查看后台执行的程序
echo $PATH:显示当前PATH的环境变量
![]()
find和grep的区别:
find:在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正式表达式是包含匹配
Linux系统目录:
bin:存放二进制可执行文件
boot:存放开机启动程序
dev:存放设备文件
home:存放用户
etc:用户信息和系统配置文件
lib:库文件
root:管理员宿主文件(家目录)
usr:用户资源管理目录
Linux系统文件类型:
普通文件:-
目录文件:d
字符设备文件:c
块设备文件:b
软链接:l
管道文件:p
套接字:s
浙公网安备 33010602011771号