赞
踩
参考:全文是关于根据菜鸟教程、“兄弟连细说Linux”等教程资料学习的部分知识点记录。
ssh
端口:22
ftp
端口:20(用于传输数据) 21(用于连接)
分区目录下有lost+found/
目录则表示该分区会自动备份
pstree
可以查看进程树
/sbin/ifconfig
export ......
source ~/.bashrc
du
全称是 disk usage
,用来展示磁盘使用量的统计信息。
-s [summarize]
对 du 的每一个给定参数计算其磁盘使用量
例如: du -s ./*
或du -sh ./*
计算当前目录下所有文件/文件夹的大小。
-c [total]
对输出的各个对象来计算其磁盘使用量的总和
例如:du -ch ./*.tar.gz
计算当前目录下所有.tar.gz
文件的大小。
du -sh * | sort -nr | head -n 10
查找当前目录下占用磁盘空间最大的10个文件夹
df
全称是disk free
,命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
df -h
以人类可读的格式,显示文件系统的磁盘使用情况统计。
-a [all]
显示所有文件,包括隐藏文件(以.开头的是隐藏文件)
-l [long]
详细信息显示 [user, u [所有者,只能有一个]; group, g [所属组]; other, o]
-lh [human]
详细显示信息(以Kb\Gb显示文件大小)
-ld [direct]
只显示目录本身不显示所含文件详情
-i [inode]
显示文件的i节点(id号)
查看到的信息格式解释:
-rw-r—r—
(-二进制文件 d目录 l软连接文件)
u g o
权限:r读 w写 x执行
cat filename
-n
显示行号
-A
显示文件中所有内容,包括回车符等
cat -A filename
(当windows中的脚本在Linux中运行出错时,可以据此查看回车符是否正确,Linux中为回车符为$
,windows中回车符为^M$
。此时可以用dos2unix filename
即可)。
vi filename
:q!
关闭vi查看
cat和vi的区别:cat将文档内容输出到控制台,不能编辑;vi用于查看和编辑文档
tac filename
space或f 翻页
Enter 换行
q或Q 退出
pageup 向上翻页
↑ 向上翻一行
-n
指定行数 [head -n7 显示前7行]
-n
指定行数
-f
动态显示文件末尾内容
-c
统计字节数
-m
统计字符数
-l
统计行数
-w
统计单词数
-L
显示最长行的行数
grep "被查找的字符串" 文件名
例:grep ">" text.fasta
将 wc和grep同时使用:
grep ">" text.fasta | wc -l (统计text.fasta文件中">"的个数)
grep ">" text.fasta | sort -u | uniq | wc -l (统计text.fasta文件中去重复行后,">"出现的次数)
参考:(uniq) https://www.runoob.com/linux/linux-comm-uniq.html
(sort) https://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html
列操作参考:
https://www.runoob.com/linux/linux-comm-awk.html
https://juejin.cn/post/6844903860641726472列操作及分组统计:
https://www.cnblogs.com/hider/p/11834706.html
awk '{printf "%s\n",$1}' result_recep_endo_kegg_ppi.csv | sort | uniq | wc -l
sort [选项] 文件名
-f
:忽略大小写
-n
:以数值型进行排序
-r
:反向排序
-t
:指定分隔符,默认是制表符
-k n[,m]
:按照指定的字段范围排序。从第n字段开始,m字段结束 (默认到行尾)
sort -t ":" -k 3,3 /etc/passwd
(指定分隔符是":",用第三个字段开头,第三个字段结尾排序)
evince name.pdf
mkdir filename
-p
递归创建,创建一个子目录
cd [change directory]
cd filename或path/filename
cd .
当前目录
cd ..
切回上级目录
pwd [print working directory]
rmdir [remove empty directory]
rmdir /目录名/目录名/空目录
cp [copy]
cp /原文件或目录/目标目录
(复制过程中目标目录输入新的文件名可以直接修改文件名)
-r
复制目录
-p
保留文件属性
mv [move]
mv 文件名 新文件名
mv /原文件/目标文件
rm [remove]
-r
删除目录
-f
强制删除
rm -r folder_name
删除非空目录
rm -rf folder_name
强制删除非空目录
touch 文件名
tar -zxvf filename
gunzip filename
ln [原文件] [目标文件]
创建硬连接文件
ln /etc/issue /tmp/issue.hard
ln -s [原文件] [目标文件]
创建软链接文件
ln /etc/issue /tmp/issue.soft
硬链接和cp -p
的区别在于硬链接文件可以和原文件同步更新;
软链接和硬链接区别在于:删除原文件,软链接无法找到原文件,从而无法访问;但是硬链接依旧可以访问。硬链接不能垮分区,不能针对目录,但是软链接可以。
硬链接和原文件的i节点
是一样的。
umask -S
以rwx形式显示新建文件的默认权限
chmod [change the permission mode of a file]
chmod [{ugoa} {+-=} {rwx}]
chmod -R
改变目录权限同时改变其下各个文件的权限
u:该文件的拥有者(user);
g:与该文件的拥有者属于同一个群体者(group);
o:其他以外的人;
a:表示ugo这三者;
+:表示增加权限;
-:表示取消权限;
=:表示唯一设定权限;
r:可读;
w:可写;
x:可执行;
例:chmod u+x filename 增加user的可执行权限 (chmod u+1);
chmod g-r filename 取消group的可读权限 (chmod g-4);
chmod a+4 filename 所有人可读
chmod 777 filename 所有人均可读、可写、可执行 (7=user+rwx 7=group+rwx 7=other+rwx)
r ----4
w ----2
x ----1
rwxrw-r--
7 6 4
用户对某一文件的删除权限关键在于该用户对该目录有权限,而不是该文件的权限。
整个过程:
useradd name
passwd name
密码:********
创建完成
sudo adduser --gid xxxxxx --uid xxxxxx user_name
vi /etc/passwd
待查命令 --help
man 待查命令
wget URL
从URL上下载单个文本
wget -r URL
从URL上下载某个文件夹中的所有文本
wget -c URL
下载停止后,可以用-c
接着下载
wget --tries = n
连接中断后,尝试n
次连接后,如果仍不能连上,则停止下载
如:wget -c -r --tries=8 from URL
终端中输入 ssh username@ip -X
(-X
仅限linux和Mac系统,win系统不适用)
sudo install name
换源安装:sudo install name -i https://……
安装deb软件包:sudo dpkg -i name
java -jar name.jar
① 尝试连接服务器 ssh username@ip
(若连上,则网络连接成功)
② 终端中输入ping ip
① 在终端开始运行程序后,在终端:ctrl z
→bg %jobnumber
,可以将程序由前台转移到后台运行。
例:ctrl z
→ bg %1
也可以用另一种方法:nohup ./程序名 &
,比如:nohup python3 Test.py &
,同时会在当前目录下生成一个nohup.out
文件;
其实可以直接用./程序名 &
,比如:python3 Test.py &
。其中&
表示程序没有停止运行,而是放到后台执行;
② 在终端输入jobs -l
,可以查看在后台运行的程序的运行状态。
例:jobs -l
③ 在终端输入fg %jobnumber
,可以将后台运行的程序转移到前台。
例:fg %1
参考:https://www.cnblogs.com/huanghuanghui/p/9708350.html
top
[-p]
:仅查看指定 PID 的进程
[-u]
:查看某个用户的进程
参考:http://c.biancheng.net/view/1065.html
查找操作时需要注意的点:
- 尽量不要再服务器运行高峰期进行查找;
- 搜索范围越小越好,文件名越准确越好;
find
(文件搜索)find [搜索范围] [匹配条件]
1. 根据文件名搜索:
1.1 -name
(区分大小写)
find [目录] -name [文件名]
(精准搜索)
find /etc -name init
(精准搜索)
find /etc -name *init*
(模糊搜索,寻找所有包含init文件名的文件)
find /etc -name init*
(模糊搜索,寻找所有以init开头的文件)
find /etc -name init???
(模糊搜索,寻找init开头,后接3个字符的文件。?
匹配单个字符)
*
匹配任意数目的字符,?
匹配单个字符。
1.2 -iname
(不区分大小写)
find /etc -iname init
(可以匹配init或者INIT或者Init等不区分大小写的文件)
2. 根据文件大小进行搜索:
-size
+n 大于;-n 小于;n等于
find [目录] -size +n
find /etc -size +200M
(查找/etc 下大于200M的文件)
find /etc -size -200k
(查找/etc 下小于200k的文件,注意M大写,k小写)
find /etc -size +80M -a -size -100M
(查找/etc下大于80M小于100M的文件)
-a
(两个条件同时满足)
-o
(两个条件满足任意一个即可)
3. 根据所有者进行搜索:
-user
find [目录] -user [用户名]
find /home -user xiaoming
4. 根据文件属性进行搜索:
-amin
访问时间 a
[access]
-cmin
文件属性 c
[change]
-mmin
文件内容 m
[modify]
find /etc -cmin -5
(在/etc 下查找在5分钟之内被修改过属性的文件和目录)
find /etc -cmin +5
(在/etc 下查找超过5分钟被修改过属性的文件和目录)
find /etc -cmin =5
(在/etc 下查找在第5分钟被修改过属性的文件和目录)
5. 根据文件类型查找:
-type
(根据文件类型查找)
f
文件; d
目录;l
软链接文件
find /etc -name init* -a -type f
(/etc 目录下,以init开头的文件)
-inum
(根据i
节点查找)
find /etc -inum 31531 -exec ls -l {} \;
(查找/etc 目录下i节点
为31531的文件,并列出详细信息)
6. 文件查找完成后,后接一些操作:
-exec [操作命令] {} \;
-ok [操作命令] {} \;
(-exec
和 -ok
之间的区别:-exec
会将所有结果同时处理;-ok
将所有结果逐个处理,并在处理之间询问是否做此处理y
或n
)
find /etc -name init -exec ls -l {} \;
(在/etc 目录下,找到init文件后,用ls -l
列出其详细信息)
find /etc -name init* -a -type f -exec ls -l {} \;
(在/ect 目录下,找到所有init开头的文件,并列出其详细信息)
locate
(文件搜索命令,类似于windows中的everything软件)locate
可能需要root才能运行……
功能:在文件资料库中查找文件,与find
不同的是:find在整个硬盘中搜索,而locate
则是在文件资料库中搜索(文件资料库由locate建立,并定期更新)。
locate [文件名]
locate init
(搜索init文件,速度很快)
注意,某些信件的文件由于文件资料库未及时更新,因此可能会搜索不出。此时,用updatedb
更新一下文件资料库,接可以搜索到。此外,如果目标文件存放在临时文件目录下(tmp/),这种情况也会找不到。
locate -i [文件名]
(不区分文件名大小写)
which
(搜索命令所在的目录及别名信息)假如要搜索某个可执行命令文件,那么用该方法。
which [命令]
which rm
(查找rm
所在目录及别名(rm
的别名就是rm -i
))
whereis
(搜索命令所在目录及帮助文档路径)whereis [命令]
whereis useradd
(列出绝对路径,以及该命令相关的帮助文档)
grep
(在文件中搜寻字符串匹配的行并输出)grep -iv [指定字符串] [文件]
-i
:不区分大小写;
-n
: 输出行号;
-v
:排除指定字符串;
--color=auto
: 把找出来的字符串用颜色显示出来;
grep mysql /root/install.log
grep -v ^# /etc/inittab
(将inittab文件中以 # 开头的行排除掉,剩下的行输出)
cut
(在文件中搜索符合要求的列)cut [选项] 文件名
-f
列号: 提取第几列 (列号从1开始);
-d
分隔符:按照指定分隔符分割列 (默认是制表符,分隔符不能是空格,如果是空格,那么需要用awk
进行处理);
grep
和cut
通过管道符进行连用;
printf
(格式化打印命令,是awk
的标准输出)printf '输出类型输出格式' 输出内容
输出类型:
%ns
: 输出字符串。n是输出几个字符;
%ni
:输出整数。n是输出几个数字;
%m.nf
:输出浮点数。m和n是数字,指输出的整数位数和小数位数。如%8.2f
表示共输出8位数,其中2位是小数,5位是整数,小数点占1位;
输出格式:
\n
:换行;
\r
:回车;
\t
:水平输出制表符;
student.txt文件如下:
name gender age
Jaky Man 18
Casy Girl 20
用 printf 格式化输出:
printf '%s\t%s\t%s\n' $(cat student.txt)
awk
(和cut
类似,截取某列,但是可以截取分隔符位空格的内容) (P82)awk
默认分隔符位制表符或空格符。
awk '条件1 {动作1} 条件2 {动作2} ...' 文件名
student.txt内容如下所示:
ID Name PHP Linux Sql
1 LM 8 9 8
2 SC 9 9 7
3 GA 8 9 8
利用 awk 格式化输出第2列和第4列
awk '{printf $2 "\t" $6"\n"}' student.txt
sed
(数据的轻量级流编辑器,主要用来对数据进行选取、替换、删除、新增。支持管道符操作)sed [选项] '[动作]' 文件名
选项:
-n
:一般sed命令会把所有数据都输出到屏幕。如果加此选项,则只会把经过sed命令处理的行输出到屏幕。
-e
:允许对输入数据应用多条sed命令编辑。
-i
:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 (直接修改原文件,建议慎重使用)。
动作:
a \
:追加
c \
:行替换
i \
:插入
d
:删除
p
:打印输出指定行
s
:字符串替换
sed -n '2p' student.txt
(输出第二行)
sed '2,4d' student.txt
(删除第二行、第四行)
man
(获取帮助信息)man [命令]
man ls
(查看ls
命令的帮助信息)
man 5 passwd
(5
表示查看passwd
的配置文件的帮助文件)
man 1 passwd
(1
表示查看passwd
的帮助文件)
whatis
(获取命令的简短介绍信息)whatis [命令]
whatis ls
(查看ls
的简短介绍信息)
apropos
(查看命令的配置文件的信息)apropos [配置文件名称]
apropos inittab
(查看inittab的配置文件信息)
help
(查看命令的简短信息)help [命令]
help umask
(获取umask的帮助信息)
useradd
(添加新用户)useradd [用户名]
passwd
(设置用户密码)passwd [用户名]
who
(查看登入用户信息)who
(查看登入服务器的用户、登入的终端(tty表示本地终端,即在服务器的电脑上的终端登入;pts表示表示远程登入,即通过某个IP间接登入服务器。如果是远程登入,则会显示登入IP))
w
(查看登入用户详细信息) (B站p21)w
(w
比who
可以显示更多的信息)
.gz
压缩:
gzip [文件名]
(压缩文件命令,压缩后的格式.gz
。注意gzip
只能压缩文件,而且不保留原文件)
解压缩:
gunzip [压缩文件名]
(解压缩.gz
的压缩文件)
.tar.gz
压缩:
tar [-zcf] [压缩后文件名] [目录]
(打包目录,压缩后格式.tar.gz
,注意参数的顺序)
-z
打包同时压缩
-c
打包;建立压缩包
-v
显示详细信息 (可加可不加)
-f
指定文件名
解压缩:
tar -zxvf [压缩文件名]
(解压缩文件)
-x
解包
-v
显示详细信息
-f
指定解压文件
-z
解压缩
tar -zxvf Japan.tar.gz
.zip
压缩:
zip [-r] [压缩后文件名] [文件或目录]
(压缩文件或目录,压缩后格式.zip
)
-r
压缩目录
解压缩:
unzip [压缩文件]
(解压.zip
压缩文件)
unzip test.zip
.bz2
(压缩比高,建议大文件用.bz2
压缩)压缩:
bzip2 [-k] [文件]
(压缩文件,压缩后格式.bz2
)
-k
产生压缩文件后保留原文件
tar -cjf [文件名] [目录]
(用tar
压缩文件生成.tar.bz2
格式)
解压缩:
bunzip2 [-k] [压缩文件名]
(解压缩)
-k
是否保留原压缩文件
tar -xjf [压缩文件名]
(用tar
对.tar.bz2
文件进行解压缩)
write
(给指定用户发送信息)write <用户名>
(给指定用户发送信息,注意必须是在线用户(用前面的who
或w
进行查看),以 Ctrl+D 保存结束。如果编辑时敲错,那么要用 Ctrl+退格键 进行删除)
write Xiaoming
wall
(给所有在线用户发送信息)wall
[write all]
wall [message]
(给所有在线用户发信息,发广播信息)
wall Xiaoming is a student
ping
(测试网络连通性)ping [-c] IP地址
-c
指定发送次数
ping 192.168.1.156
(ping
完之后注意看packet loss
丢包率,如果较高,那么即使ping
通了,那么网络也会很差)
ifconfig
(查看和设置网卡信息)ifconfig [网卡名称] [IP地址]
ifconfig eth0 192.168.8.250
如果需要查看当前计算机的网卡信息,那么直接ifconfig
就行了。结果中显示:eth0
表示本地真实网卡(如果有第二块网卡,那么就是eth1
);lo
表示回环网卡(没有网卡也能ping
通,因此ping
的时候要ping
本地真实网卡)
mail
(查看、发送电子邮件)mail [用户名]
(Ctrl+D 保存并发送)
mail Xiaoming
如果接收者要查看邮件,那么输入"序列号"即可查看;如果要返回简要信息,那么按h
即可
删除邮件
d [序列号]``
last
(列出目前与过去登入系统的用户信息)lastlog
(列出所有用户,并列出其最后登入信息)lastlog -u [用户的UID]
(如果只查看某个用户的信息,UID
可以用id [用户名]
来获取)
traceroute
(显示数据包到主机之间的路径)traceroute www.baidu.com
用于访问某些网站时,查看从本机到网站的节点路径,同时也可以查看那个地方的节点出现了问题。
netstat
(显示网络相关信息)netstat [选项]
-t
TCP协议 (安全,经过“三次握手”)
-u
UDP协议 (快,但是链接可靠性不如TCP)
-l
监听
-r
路由
-n
显示IP地址和端口号
netstat -tlun
(查看本机监听的端口)
netstat -an
(查看本对所有的网络连接)
netstat -rn
(查看本机路由表)
setup
(只有RedHat才有)mount
mount [-t 文件系统] [设备文件名] [挂载点]
(挂载点类似于盘符,但是是以目录的形式。挂载:外接U盘,手动连接,即为挂载 或者 挂载光盘)
首先创建空目录:mkdir /mnt/cdrom
然后进行挂载:mount -t iso9660 /dev/sr0 /mnt/cdrom
(iso9660
是固定的;/dev/sr0
是设备文件名,也是固定的;挂载点就是/mnt/cdrom
)
然后去挂载点去查看文件:cd /mnt/cdrom
注意先回到boot目录:cd
,之后在卸载挂载
卸载挂载:umount /dev/sr0
(卸载挂载)
shutdown
-c
取消前一个关机命令
-h
关机
-r
重启
shutdown -h now
(现在关机)
shutdown -r 20:30
(20:30重启)
logout
退出登入命令vim
编辑器使用vim
常用操作插入命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
移动命令 | 作用 |
---|---|
$ | 移至行尾 |
0 | 移至行首 |
删除命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符 |
dd | 删除光标所在行 |
ndd | 删除n行 |
d1G | 删除光标所在行到第一行的内容 |
dG | 删除光标所在行到最后一行的内容 |
D | 删除光标所在处到行尾内容 |
:n1,n2d | 删除指定范围的行 |
复制和剪切命令 | 作用 |
---|---|
yy | 复制当前行 |
nyy | 复制当前以下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行 |
p 、P | 粘贴在当前光标所在行的下方或上方 |
替换或取消命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按Esc结束 |
u | 取消上一步操作 |
搜索和替换命令 | 作用 |
---|---|
/string | 搜索指定字符串;搜索时忽略大小写:set ic ,不忽略大小写:set noic |
n | 向下搜索 |
N | 向上搜索 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如:! ls /home 即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! |
vim
常用技巧1. 将某一文件的内容导入到当前文件:
当前文件中,命令模式下输入:r [文件名]
,会将文件内容导入到光标所在位置;
如果想在当前文件中导入某个命令,但是忘了该命令所在位置,可以这样操作:!which [命令]
;
将当前日期导入到当前文件中:r !date
;
2.连续行注释或去掉注释:
:n1,n2s/^/#/g
(n1到n2行进行注释 #)
:n1,n2s/^#//g
(n1到n2行去掉注释 #)
:n1,n2s/^/\/\//g
(n1到n2行进行注释 //)
3. 删掉除第一列外的其他列:
如下所示格式:
Entry Entry name Status
Q9UHD9 UBQL2_HUMAN reviewed
P08910 ABHD2_HUMAN reviewed
Q6NSX1 CCD70_HUMAN reviewed
P04432 KVD39_HUMAN reviewed
:1,$s/^\(\w\+\)\s\+.\+/\1/g
源码包:通常由C编写的代码包,经编译后生成二进制包。安装慢,需要进行编译。
二进制包:有源码包编译后生成的可被机器识别的01,编译过程就是将脚本转化为机器可识别的01。安装快,但是不能看到源代码。(RPM包 (CentOS中)、deb包 (Ubuntu、Debian)系统默认包)
用户信息文件:/etc/passwd
用户名 : 密码标志 : UID(用户UID) : GID(用户初始组ID,group id) : 用户说明(可空) : 家目录(普通用户/home/用户名/;超级用户/root/) : 登入之后的Shell
(UID
== 0 超级用户;1-499 系统用户 (伪用户);500-65535 普通用户)
该密码标志对应的密码在/etc/shadow
,但是/etc/shadow
经过加密,因此不可读。
用户组:初始组(指用户一登入就立即拥有这个用户组的相关权限,每个用户的初始组只能有一个,不建议修改);附加组(指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个)
影子文件:/etc/shadow
保存的是真正加密的密码串。
用户名 : 加密密码(SHA512散列加密算法,密码串前加 ! 后则该用户不能登入) : 密码最后一次修改日期(时间戳) : 两次密码的修改间隔时间(和第3字段相比) : 密码有效期(和第3字段相比) : 密码修改到期前的警告天数(和第5字段相比) : 密码过期后的宽限天数(和第5字段相比,0代表密码过期后立即失效;-1表示密码永远不会失效) : 账号失效时间(时间戳表示) : 保留
1. 用户家目录:
普通用户:/home/用户名/
超级用户:/root/
2.用户的邮箱:
/var/spool/mail/用户名/
3.用户模版目录:
/etc/skel/
(新增用户的家目录在创建的同时,会复制一份该目录下的文件,作为默认初始的信息模版文件)
主分区:最多只能分4个 (扩展分区+主分区 <= 4)
扩展分区:只能有一个,是主分区的一种。扩展分区不能存储数据和格式化,必须在划分成逻辑分区才能使用。
逻辑分区:由扩展分区划分而得,如果是IDE硬盘,最多59个逻辑分区;如果SCSI硬盘,最多11个逻辑分区。
分区 | 设备文件名 |
---|---|
主分区1 | /dev/sda1 |
主分区2 | /dev/sda2 |
主分区3 | /dev/sda3 |
扩展分区 | /dev/sda4 |
逻辑分区1 | /dev/sda5 |
逻辑分区2 | /dev/sda6 |
逻辑分区3 | /dev/sda7 |
sd 代表stat 格式的硬盘(如果是hd ,则表示IDE 格式的硬盘);a 表示第一块硬盘;1 表示第一个分区。 | |
注意分区号1-4只能用于主分区+扩展分区;逻辑分区的分区号只能从5开始(即 /dev/sda5 ) |
格式化的目的是为了能够向硬盘中写入数据。
ext2
:是ext
文件系统的升级版本,最大支持16TB的分区和最大2TB的文件。
ext3
:是ext2
的升级版本,最大区别是带日志功能,以在系统突然停止时提高文件系统的可靠性。
ext4
:是ext3
的升级版本,兼容ext3
,最大1EB文件系统和16TB文件,无限数量的子目录等。
df
面向文件系统考虑的,包括文件大小、系统、进程所占空间;
du
面向目录考虑的;
df
(统计文件系统占用情况,已用多少空间,还剩多少空间)df [选项] [挂载点]
-a
显示所有的文件系统信息,包括特殊文件系统(如 /proc
、/sysfs
)
-h
以KB
、MB
、GB
的形式显示容量
-T
显示文件系统类型
-m
以MB
为单位显示容量
-k
以KB
为单位显示容量,默认是KB
为单位。
du
(统计文件或目录的大小,常用语目录的大小)注意ls
统计目录时只会统计一级子目录和子文件的文件名所占大小,而不会统计该文件中的数据占用多少。
du [选项] [目录或文件名]
-a
显示每个字文件的磁盘占用量,默认只统计子目录的磁盘占用量
-h
以KB
、MB
、GB
的形式显示磁盘使用量
-s
统计总占用量,而不列出子目录和子文件的占用量
更习惯用du -sh [目录名]
fsck
平时不需要使用,因为系统重启后会自动进行检查修复。
fsck [选项] [分区设备文件名]
-a
不用显示用户提示,自动修复文件系统
-y
自动修复。与-a
作用一致,不过有些文件系统只支持-y
ext
系统专用):dumpe2fs
xfs
系统用xfs_info [分区设备名]
进行查看。
dumpe2fs [分区设备文件名,就是目录]
windows下的 “磁盘碎片整理” 就是将同一个文件的“隔断”尽量放到
一块,从而 加快文件的读取速度。
查看已挂载的设备:
mount [-l]
查看系统中已挂载的设备,-l
会显示卷标名称。
mount [-a]
根据配置文件/etc/fstab
的内容,自动挂载。(注意:如果光盘、硬盘等设置为自动挂载,那么系统重启时如果没有插入光盘、硬盘等设备,那么系统会崩溃)。
挂载命令格式:
mount [-t 文件系统] [-L 卷标名,此项可有可无] [-o 特殊选项] 设备文件名 挂载点
-o 特殊选项
有以下这些:
示例:
挂载光盘:
mkdir /mnt/cdrom/
(建立挂载点,在/mnt/目录下新建cdrom/
目录)
mount -t iso9660 /dev/cdrom /mnt/cdrom
(挂载光盘,-t iso9660
是默认的)
mount /dev/sr0 /mnt/cdrom/
卸载命令:
umount 设备文件名或挂载点
(比如:umount /mnt/cdrom
,注意要先移动到挂载点外面)
挂载U盘:
fdisk -l
(查看U盘设备文件名)
mkdir /mnt/usb/
(创建挂载点)
mount -t vfat /dev/sdb1 /mnt/usb/
(注意:linux默认不支持NTFS文件分区的,但是可以修改使之支持NTFS分区)
(注意:U盘fat16
分区则识别为fat
,fat32
分区则识别为vfat
)
umount /dev/sdb1
(卸载光盘)
如何使linux支持NTFS文件分区?
下载NTFS-3G插件,并进行安装
mount -t ntfs-3g 分区设备文件名 挂载点
(挂载硬盘,设备文件名通过fdisk -l
进行查看)
umount 挂载点
(卸载光盘)
fdisk
用fdisk
创建一个新的分区:
fdisk -l
(查看系统中多少可以被识别的硬盘)
fdisk /dev/sdb
(分区命令,此时是sdb
,后续生成分区后,可以更改为sdb1
等其他)
fdisk
的参数如下所示:
读取分区表信息:
partprobe
(重新读取分区表信息,注意分区划分完成后,必须执行)
格式化分区:
mkfs -t ext4 /dev/sdb1
(对主分区或逻辑分区进行格式化,ext4
是格式化后的文件类型(类似windows下的ntfs
),拓展分区不能格式化)
创建挂载点并挂载分区:(手动挂载,重启后需要重新进行挂载。自动挂载见下面)
mkdir /disk1
mount /dev/sdb1 /disk1/
待修改的配置文件:/etc/fstab
,其内容如下所示:
【查询新分区的UUID:dumpe2fs -h /dev/sdb1
(结果见Filesystem UUID:
,此处以sdb1
为例)】
具体如何修改,查看“兄弟连”的P62即可。
1. RPM包默认安装服务:
1.1 独立的服务:该服务直接在内存中,用户访问直接做出相应,好处反应快,坏处太多会占内存;
1.2 基于xinetd服务:本身独立,存在于内存中。本身没任何功能,但是后面又很多它管理的服务。用户通过xinetd来响应后续的程序。好处不占内存,坏处反应慢;
2. 源码包安装服务
启动:在当前系统中让服务运行,并提供功能;
自启动:让服务在系统开机或重启之后,随着系统的启动而启动;
RPM包安装的服务查看:chkconfig --list
(可以看到所有RPM包安装的服务);
源码包安装的服务查看:查看位置一般在/usr/local/
下;
RPM包和源码包的区别:
“RPM包安装时”,会根据写程序的人指定的位置进行安装,即安装在默认位置中(安装过程中,不同的部分会安装到不同的目录下,所以卸载时要用命令进行卸载,如果直接删除安装包,则可能会由于未删干净而导致垃圾文件的残留);
“源码包则安装”在指定位置(一般为 /usr/local/ 目录下,删除时只需要把该目录删掉即可,不会产生垃圾文件)。
启动:
service 独立服务名 start|stop|restart|status
(RedHat转悠命令)
/etc/init.d/独立服务名 start|stop|restart|status
自启动:
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig --level 2345 httpd on
(开机自启动 阿帕奇,off
关闭开机自启动)
进程:正在运行的程序。
ps aux
(查看系统中所有进程,使用Unix格式。a
:所有前台信息;u
:显示这个进程是由哪个用户产生的;x
:显示后台信息;)
ps -le
(查看系统中所有进程,使用Linux格式。-l
:显示更加详细的信息;-e
:显示所有进程;)
ps aux
结果简介:
列名 | 简介 |
---|---|
USER | 该进程由哪个用户产生的 |
PID | 进程的ID号 |
%CPU | 该进程占用CPU资源的百分比,占用越高,进程越耗资源 |
%MEM | 该进程占用物理内存的百分比,占用越高,进程越耗资源 |
VSZ | 该进程占用虚拟内存的大小,单位KB |
RSS | 该进程占用实际物理内存的大小,单位KB |
TTY | 该进程是在哪个终端中运行的,其中ttyl-tty7代表本地控制台终端,ttyl-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255表示虚拟终端 |
STAT | 进程状态。常见的状态由:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 |
START | 该进程的启动时间 |
TIME | 该进程占用CPU的运算时间,注意不是系统时间 |
COMMAND | 产生次进程的命令名 |
top [选项]
-d
:秒数,指定top命令每隔几秒更新,默认是3s。
-u
:指定用户名
top命令的交互模式中可以执行的命令:
?或h
:显示交互模式的帮助;
P
:以CPU使用率排序,默认是此项;
M
:以内存的使用率排序;
N
:以PID排序;
q
:退出top;
top
命令结果的信息简介:
第一行:用户及时间信息
内容 | 说明 |
---|---|
12:26:46 | 系统当前时间 |
up 1 day, 13:32 | 系统的运行时长,本机一运行1天13小时32分钟 |
2 users | 当前登入了两个用户 |
load average: 0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1的时候(单核的时候,如果是8核时,那么小于8),负载较小。如果大于1,系统已经超出负荷 (需要多注意) |
第二行:进程信息
Tasks: 95 total | 系统中的进程总数 |
---|---|
1 running | 正在运行的进程数 |
94 sleeping | 睡眠的进程 |
0 stopped | 正在停止的进程 |
0 zombie | 僵尸进程。如果不是0,需要手动检查僵尸进程(僵尸进程:指该进程正在终止或没有终止完全) |
第三行:CPU信息
内容 | 说明 |
---|---|
Cpu(s): 0.1%us | 用户模式占用的CPU百分比 |
0.1%sy | 系统模式占用的CPU百分比 |
0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
99.7%id | 空闲CPU的CPU百分比 (如果低于20%,那么认为计算机在高负荷运行,如果没有非法进程,那么可能需要增加内存或搭建更多的服务器) (需要多注意) |
0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
0.0%hi | 硬中断请求服务占用的CPU百分比 |
0.1%si | 软中断请求服务占用的CPU百分比 |
0.0%st | st (Steal time) 虚拟时间百分比。就是当前有虚拟机时,虚拟CPU等待时机CPU的时间百分比 |
第四行:物理内存信息:
内容 | 说明 |
---|---|
Mem: 625344k total | 物理内存的总量,单位KB |
571504k used | 已经使用的物理内存数量 |
53840k free | 空闲的物理内存数量 (需要多注意) |
65800k buffers | 作为缓冲的内存数量 |
第五行:交换分区 (swap) 信息
交换分区不需要太大,不超过2G即可,不然只会浪费硬盘空间。
内容 | 说明 |
---|---|
Swap: 524280k total | 交换分区 (虚拟内存) 的总大小 |
0k used | 已经使用的交换分区的大小 |
524280k free | 空闲交换分区的大小 |
409280 cached | 作为缓存的交互分区的大小 |
pstree [选项]
-p
:显示进程的PID;
-u
:显示进程的所述用户;
kill
kill -l
(查看可用的进程信号) (详情见P95)
kill uid号
(常用kill
命令)
kill -9 uid号
(强制终止)
kill -1 uid号
(重启)
举例 (终止后台某个用户的所有python进程)
pkill -U username python
kill all
killall [选项] [信号] [进程号]
选项:
-i
:交互式,询问是否要杀死某个进程;
-I
:忽略进程名的大小写
信号:和kill
的-9 -1
等一样 (详情见P95)
killall -9 进程名
(常用命令)
pkill
pkill [选项] [信号] 进程名
(按照进程名终止进程)
选项:
-t
终端号,按照终端号踢出用户
vmstat
:监控系统资源
vmstat [刷新延时 刷新次数]
vmstat 1 3
(监听3次系统资源,每次间隔1秒种)
dmesg
:开机时显示内核检测信息
dmesg
dmesg | grep CPU
free
:查看内存使用状态
free [-b|-k|-m|-g]
-b
:以字节为单位显示
-k
:以KB为单位显示(默认)
-m
:以MB为单位显示
-g
:以GB为单位显示
uptime
:显示系统的启动时间和平均负载,也是top命令的第一行,w命令也可以看到这个数据。
uptime
uname
:查看系统与内核相关信息
uname [选项]
-a
:查看系统所有相关信息;
-r
:查看内核版本;
-s
:查看内核名称;
判断当前系统的位数:
uname -m
或者file /bin/ls
查看Linux发行版本信息:
lsb_release -a
lsof
:列出进程打开或使用的文件信息
lsof [选项]
-c 字符串
,只列出以字符串开头的进程打开的文件;
-u 用户名
:只列出某个用户的进程打开的文件;
-p pid
:列出某个PID进程打开的文件;
缓存和缓冲的区别:
缓存是cache
,加速从硬盘中读取数据;
缓冲是buffer
,加速向硬盘中写入数据;
比如向硬盘中写东西,先写到buffer
,再由buffer
写到硬盘;
缓存区和缓冲区都在内存中。
crontab [选项]
-e
:编辑crontab定时任务
-l
:查询crontab任务
-r
:删除当前用户所有的crontab
crontab -e
,进入crontab编辑界面,按照特定的格式输入命令即可:
格式:* * * * * 执行的任务
第几个* | 含义 | 范围 |
---|---|---|
第一个* | 一小时中的第几分钟 | 0-59 |
第二个* | 一天中的第几个小时 | 0-23 |
第三个* | 一个月中的第几天 | 1-31 |
第四个* | 一年中的第几个月 | 1-12 |
第五个* | 一周中的星期几 | 0-7 |
日志保存在/var/log
本周学完Linux,剩下的内容包括:
进程管理 P94、P95
工作管理 P96
系用资源查看 P97
系统定时任务 P98
日志管理 P99、P100、P101
备份于恢复 P105、P106
参考:【史上最牛的Linux视频教程—兄弟连】 https://www.bilibili.com/video/BV1mW411i7Qf?share_source=copy_web&vd_source=9f1b2c7e5841d2b27667d708de6a93d0
--------------------------------------------------------------------------------------------------
ls -l Protein_files/ grep '.pdb' | wc -l
该命令意思是:统计Protein_files/
目录下所有.pdb
文件的个数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。