Linux常用命令小结(间歇性更新纠正)

Linux的常用命令小结

参考:全文是关于根据菜鸟教程、“兄弟连细说Linux”等教程资料学习的部分知识点记录。

ssh 端口:22
ftp 端口:20(用于传输数据) 21(用于连接)
分区目录下有 lost+found/目录则表示该分区会自动备份
pstree可以查看进程树

0.未分类命令

0.1 查看IP

/sbin/ifconfig

0.2 设置环境变量

export ......
source ~/.bashrc

1.文件查看

du

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

df全称是disk free,命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
df -h 以人类可读的格式,显示文件系统的磁盘使用情况统计。

ls

-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 (显示文件内容)

cat filename
-n 显示行号
-A 显示文件中所有内容,包括回车符等
cat -A filename (当windows中的脚本在Linux中运行出错时,可以据此查看回车符是否正确,Linux中为回车符为$,windows中回车符为^M$。此时可以用dos2unix filename即可)。

vi(查看文本)

vi filename
:q!关闭vi查看

cat和vi的区别:cat将文档内容输出到控制台,不能编辑;vi用于查看和编辑文档

tac(反向显示文件内容)

tac filename

more(分页显示文件内容)

	space或f	翻页
	Enter	    换行
	q或Q		退出

less(分页显示文件内容(向上翻页))

	pageup      向上翻页
	↑           向上翻一行

head(显示文件前几行)

-n 指定行数 [head -n7 显示前7行]

tail(显示文件后几行)

-n 指定行数
-f 动态显示文件末尾内容

wc(统计指定文件的字节数、字数、行数)

-c 统计字节数
-m 统计字符数
-l 统计行数
-w 统计单词数
-L 显示最长行的行数

grep (在文件中查找指定的字符串)

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

awk (对文件进行列操作)

列操作参考:
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 (排序)

sort [选项] 文件名
-f:忽略大小写
-n:以数值型进行排序
-r:反向排序
-t:指定分隔符,默认是制表符
-k n[,m]:按照指定的字段范围排序。从第n字段开始,m字段结束 (默认到行尾)
sort -t ":" -k 3,3 /etc/passwd(指定分隔符是":",用第三个字段开头,第三个字段结尾排序)

evince(查看PDF文件)

evince name.pdf

2.目录处理命令

mkdir(创建一个或多个新目录)

mkdir filename
-p递归创建,创建一个子目录

cd(切换目录)

cd [change directory]
cd filename或path/filename
cd .当前目录
cd ..切回上级目录

pwd(显示当前目录的绝对路径)

pwd [print working directory]

rmdir(删除空目录)

rmdir [remove empty directory]
rmdir /目录名/目录名/空目录

cp(复制文件或目录)

cp [copy]
cp /原文件或目录/目标目录
(复制过程中目标目录输入新的文件名可以直接修改文件名)
-r 复制目录
-p 保留文件属性

mv(剪切文件或修改文件名)

mv [move]
mv 文件名 新文件名
mv /原文件/目标文件

rm(删除文件或目录)

rm [remove]
-r 删除目录
-f 强制删除
rm -r folder_name 删除非空目录
rm -rf folder_name 强制删除非空目录

touch(创建文件)

touch 文件名

tar(解压rar文件)

tar -zxvf filename

gunzip(解压zip文件)

gunzip filename

3.链接命令

ln [link]

ln [原文件] [目标文件] 创建硬连接文件
ln /etc/issue /tmp/issue.hard
ln -s [原文件] [目标文件] 创建软链接文件
ln /etc/issue /tmp/issue.soft
硬链接和cp -p 的区别在于硬链接文件可以和原文件同步更新;
软链接和硬链接区别在于:删除原文件,软链接无法找到原文件,从而无法访问;但是硬链接依旧可以访问。硬链接不能垮分区,不能针对目录,但是软链接可以。
硬链接和原文件的i节点是一样的。

4.权限管理命令

umask (显示、设置文件的默认权限)

umask -S 以rwx形式显示新建文件的默认权限

chmod(改变文件或目录权限)

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

用户对某一文件的删除权限关键在于该用户对该目录有权限,而不是该文件的权限。

linux中添加一位普通用户

整个过程:
useradd name
passwd name 
密码:********
创建完成

添加新用户

sudo adduser --gid xxxxxx --uid xxxxxx user_name

查看所有用户的gid和uid

vi /etc/passwd

查看帮助信息

待查命令 --help
man 待查命令

5.下载命令

wget URL从URL上下载单个文本
wget -r URL从URL上下载某个文件夹中的所有文本
wget -c URL下载停止后,可以用-c接着下载
wget --tries = n连接中断后,尝试n次连接后,如果仍不能连上,则停止下载

如:wget -c -r --tries=8 from URL

6.服务器和本地linux电脑沟通

终端中输入 ssh username@ip -X-X仅限linux和Mac系统,win系统不适用)

7.安装命令

sudo install name
换源安装:sudo install name -i https://……
安装deb软件包:sudo dpkg -i name

8.调用Java程序

java -jar name.jar

9.查看网络连接状态

① 尝试连接服务器 ssh username@ip (若连上,则网络连接成功)
② 终端中输入ping ip

10.前后台运行程序

① 在终端开始运行程序后,在终端:ctrl zbg %jobnumber,可以将程序由前台转移到后台运行。
例:ctrl zbg %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

11.查看进程运行状态

top
[-p]:仅查看指定 PID 的进程
[-u]:查看某个用户的进程
参考:http://c.biancheng.net/view/1065.html

12.文件搜索命令

查找操作时需要注意的点:

  1. 尽量不要再服务器运行高峰期进行查找;
  2. 搜索范围越小越好,文件名越准确越好;

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 将所有结果逐个处理,并在处理之间询问是否做此处理yn)
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进行处理);

grepcut 通过管道符进行连用;

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	20printf 格式化输出:
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 (删除第二行、第四行)

13. 帮助命令

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的帮助信息)

14. 用户管理命令

useradd (添加新用户)

useradd [用户名]

passwd (设置用户密码)

passwd [用户名]

who (查看登入用户信息)

who (查看登入服务器的用户、登入的终端(tty表示本地终端,即在服务器的电脑上的终端登入;pts表示表示远程登入,即通过某个IP间接登入服务器。如果是远程登入,则会显示登入IP))

w (查看登入用户详细信息) (B站p21)

w (wwho可以显示更多的信息)

15. 压缩解压命令

常见的压缩格式:

.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文件进行解压缩)

16. 网络命令

write (给指定用户发送信息)

write <用户名> (给指定用户发送信息,注意必须是在线用户(用前面的whow进行查看),以 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才有)

17. 挂载命令

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 (卸载挂载)

18. 关机重启命令

shutdown

-c 取消前一个关机命令
-h 关机
-r 重启
shutdown -h now (现在关机)
shutdown -r 20:30 (20:30重启)

19. logout 退出登入命令

20. 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行
pP粘贴在当前光标所在行的下方或上方
替换或取消命令作用
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

21. 软件包管理 (pass)

源码包:通常由C编写的代码包,经编译后生成二进制包。安装慢,需要进行编译。

二进制包:有源码包编译后生成的可被机器识别的01,编译过程就是将脚本转化为机器可识别的01。安装快,但是不能看到源代码。(RPM包 (CentOS中)、deb包 (Ubuntu、Debian)系统默认包)

22. 用户和用户组管理

用户配置文件:

用户信息文件:/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/ (新增用户的家目录在创建的同时,会复制一份该目录下的文件,作为默认初始的信息模版文件)

23. 文件系统管理 (p56)

分区类型:

主分区:最多只能分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)
-hKBMBGB的形式显示容量
-T 显示文件系统类型
-mMB为单位显示容量
-kKB为单位显示容量,默认是KB为单位。

统计目录或文件大小:du (统计文件或目录的大小,常用语目录的大小)

注意ls统计目录时只会统计一级子目录和子文件的文件名所占大小,而不会统计该文件中的数据占用多少。
du [选项] [目录或文件名]
-a 显示每个字文件的磁盘占用量,默认只统计子目录的磁盘占用量
-hKBMBGB的形式显示磁盘使用量
-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分区则识别为fatfat32分区则识别为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即可。

24. 服务分类:(P90)

Linux服务分为:

1. RPM包默认安装服务:
1.1 独立的服务:该服务直接在内存中,用户访问直接做出相应,好处反应快,坏处太多会占内存;
1.2 基于xinetd服务:本身独立,存在于内存中。本身没任何功能,但是后面又很多它管理的服务。用户通过xinetd来响应后续的程序。好处不占内存,坏处反应慢;
2. 源码包安装服务

启动和自启动:

启动:在当前系统中让服务运行,并提供功能;
自启动:让服务在系统开机或重启之后,随着系统的启动而启动;

查询已安装的服务:

RPM包安装的服务查看:chkconfig --list (可以看到所有RPM包安装的服务);
源码包安装的服务查看:查看位置一般在/usr/local/下;

RPM包和源码包的区别:
“RPM包安装时”,会根据写程序的人指定的位置进行安装,即安装在默认位置中(安装过程中,不同的部分会安装到不同的目录下,所以卸载时要用命令进行卸载,如果直接删除安装包,则可能会由于未删干净而导致垃圾文件的残留);
“源码包则安装”在指定位置(一般为 /usr/local/ 目录下,删除时只需要把该目录删掉即可,不会产生垃圾文件)。

“独立的服务” 如何启动和自启动:(P91)

启动:
service 独立服务名 start|stop|restart|status(RedHat转悠命令)
/etc/init.d/独立服务名 start|stop|restart|status
自启动:
chkconfig [--level 运行级别] [独立服务名] [on|off]
chkconfig --level 2345 httpd on (开机自启动 阿帕奇,off关闭开机自启动)

25. 进程管理:

进程查看:

进程:正在运行的程序。

查看系统中所有进程:

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%stst (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 终端号,按照终端号踢出用户

26. 系统资源查看:

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写到硬盘;
缓存区和缓冲区都在内存中。

27. 系统定时任务(P98)

crontab [选项]
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab

crontab -e,进入crontab编辑界面,按照特定的格式输入命令即可:
格式:* * * * * 执行的任务

第几个*含义范围
第一个*一小时中的第几分钟0-59
第二个*一天中的第几个小时0-23
第三个*一个月中的第几天1-31
第四个*一年中的第几个月1-12
第五个*一周中的星期几0-7

28. 日志管理 (P99-100)

日志保存在/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

--------------------------------------------------------------------------------------------------

实操记录:

1. 统计某个目录下目标文件的个数

ls -l Protein_files/ grep '.pdb' | wc -l
该命令意思是:统计Protein_files/目录下所有.pdb文件的个数。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值