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    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 (删除第二行、第四行)

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%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号 (重启)

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文件的个数。

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

  1. Linux常用命令小结(一)

    前言: Linux是一款精巧好用的操作系统,但是因为其出自一批工程师之手,其操作方式并不是大众喜闻乐见的图形化界面为主流,在Linux中,命令行模式才是最佳操作方式.因此,熟悉Linux常用命令就成为 ...

  2. Linux常用命令(不定期更新)

    Linux常用命令   山定子  整理 帮助# touch --help //显示touch帮助信息 # man 命令 //显示相应命令的帮助内容 # info 命令 //显示相应命令info内容 系 ...

  3. Linux常用命令(持续更新)

    [前言] 翻看了一下博客记录,距离上次学习Linux差不多快两年了:最近两个多月由于项目的需要,自己又重新对Linux进行学习 和并进行了些实践:接触过Linux的读者都知道操作Linux的一种十分重 ...

  4. linux常用命令小结(二)

    接着上期的命令往下讲. 001.首先是一个文件,和用户密切相关的文件,叫做passwd. 我们来看看它的位置,就在/etc/下. cd /etc //进入到/etc目录 ls //发现/etc下文件和 ...

  5. Linux常用命令及软件更新

    此文章转载自:http://blog.csdn.net/dazhi_100/article/details/9473311 1:Linux 命令 ps –ef   查看所有的进程 grep    搜索 ...

  6. linux常用命令笔记(持续更新)

    xz文件解压 假设现在有个mysql.tar.xz文件,直接用tar命令解压肯定不行的,需要先用xz命令处理,再用tar -xvf命令解压 xz -d mysql.tar.xz tar -xvf my ...

  7. linux 常用命令,持续更新中~

    文章目录 文件操作相关 ls -- list pwd -- print working directory cd --change directory mkdir -- make directorie ...

  8. LInux 项目二命令总结,linux项目管理常用命令小结

    当前位置:我的异常网» 项目管理 » linux项目管理常用命令小结 linux项目管理常用命令小结 www.myexceptions.net  网友分享于:2015-08-26  浏览:13次 li ...

  9. 超详细的Linux常用命令锦集,推荐收藏!!!【持续更新】

    目录 Linux系统简介 Linux常用命令大全 一.系统操作相关命令 1.系统信息处理 2.系统重启及关机 二.文件操作相关命令 1.文件及目录操作 2.文件搜索操作 3.文件挂载系统 4.文件权限 ...

最新文章

  1. Python 判断一个数是不是质数
  2. 真的汉子不多,褚时健褚老算一个
  3. 计算机硬盘到内存不足,内存不够硬盘来凑,怪不得电脑卡!
  4. android webservices 返回多行多列数据,NoahWeb实现表格多行多列
  5. 把握linux内核设计思想系列【转】
  6. BP神经网络设计方法
  7. Linux面试题,经典Linux面试题,常见Linux面试题带答案
  8. python在linux系统下的编辑编译运行
  9. 企业OA办公系统选型技巧实用指南
  10. 【编程实践】复杂网络的基本知识及实现
  11. Linux下PCIE设备分析软件
  12. jauery ajax本地用法,jquery ajax基本用法
  13. 【吐血整理】数据库的完整性
  14. 解决office软件无法打印预览 / 添加打印机失败问题
  15. 图解Pandas,又一个Pandas学习利器!
  16. 拉勾教育管理系统(后端)
  17. Java实现阿拉伯数字转大写中文
  18. 51nod 2214
  19. 风影导航源码 带后台
  20. 人工智能时代,普通的我们如何提升自己的核心竞争力

热门文章

  1. 2023年实体店做什么比较好赚钱?
  2. 使用大白菜PE给苹果电脑安装win7ghost
  3. 淘宝dns解析错误导致首页打不开
  4. 合创视觉科技UI设计全套设计推荐指南
  5. IKE v2为什么协商速度快?
  6. RPA之家-Attended Automation
  7. Python Class 类的继承与多继承
  8. pyTorch——基础学习笔记
  9. urdf 怎么添加头文件_URDF教程
  10. 行走的漏洞利用机器人:僵尸网络病毒携71个EXP占领高地