1、命令基本格式
[root@localhost ~]#
其中:root: 当前登录用户, localhost: 主机名, ~: 当前所在的目录(家目录), #:超级用户的提示符普通用户的提示符是$
命令格式:命令【选项】【参数】
注意:个别命令使用不遵循些格式,当有多个选项时,可以写在一起简化选项与完整选项 -a 等于 --all
2、linux系统命令
a、ls [选项] [文件或目录]
选项:-a 显示所有文件,包括隐藏文件,-l 显示祥细信息, -d 查看目录属性, -h 人性化显示文件大小, -i 显示inode,ll即表示 ls -l的缩写
对于文件的类型见下图:
drwxr-xr-x. 3 root root 4096 May 23 2017 abrt -rw-r--r--. 1 root root 16 May 23 2017 adjtime -rw-r--r--. 1 root root 1518 Jun 7 2013 aliases -rw-r--r--. 1 root root 12288 Aug 19 13:48 aliases.db drwxr-xr-x. 2 root root 4096 Aug 19 13:49 alternatives -rw-------. 1 root root 541 Jul 27 2015 anacrontab //里面的root表示所有者 第二个root表示所属组, 1表示引用技术,表示被引用的次数
注意:在linux系统里面.文件名,表示是隐藏文件
3、Linux系统文件处理命令
a、目录处理文件(linux系统下tab键的自动补全,如果存在多个,那么按两下,则会列出全部的目录)
mkdir -p [目录名] 表示创建新目录,-p表示可以多级创建,如果没有-p则不能进行多层级创建 如 mkdir -p a/b/c;
cd [目录] 表示切换目录 cd~:进行当前用户的家目录 cd-:进入上次目录 cd..:进行上级目录 cd.:进行当前目录 cd /: 表示跳转到根目录下
pwd 表示显示当前完整的路径名;
rmdir [目录名] 表示删除指定的目录,注意:这里只能删除空的文件夹 -p表示多级创建
rm -rf [目录名] 表示可以删除空的文件夹,同时也可以删除非空的文件夹, 这里面的-r表示目录,-f表示强制的意思, 如果没有-f的情况下,每删除一个文件,都会进行一次访问。并且文件夹第一个不要用/符号
rm -rf test/ => 表示删除test这整个文件夹
rm -rf test/* => 表示删除test这个文件夹下的所有文件
touch [文件/目录] 表示更新文件或者目录的时间,如果不存在这个文件的情况,那么会新建这个文件
cp [选项] [原文件或目录] [目标目录] 表示复制 选项 -r复制目录,-p连带文件属性复制,-d若源文件是链接文件,则复制链接属性,-a 相当于 -pdr
cp -a test.html b/a.html 表示把当前的test.html文件复制到b文件夹下的并且命名为a.html
cp -a temp/* new/ //表示把temp下面的全部内容复制到new目录下面
mv [原文件或目录] [目标目录] 表示剪切或改名命令 当原文件与目标文件在同一目录下,那么就是改名命令,否则就是剪切命令
mv test new //表示把当前的test文件夹名字改成new mv test new/ //表示把当前的test文件夹放到new文件夹的目录下
4、linux中常见的目录介绍
linux中cd /即可跳转到根目录下,即最高一级目录
a、根目录下的bin和sbin, usr下的bin和sbin这四个目录是用来保存系统命令的,但是bin保存的是普通用户都可以使用的命令,而sbin保存的是超级用户可以使用的命令
b、boot 保存的是用户的启动数据, 一般不做操作
c、dev 特殊文件的保存目录, 都是硬件文件,一般不做操作
d、etc 保存的是系统的默认配置文件, 比较常操作
e、home 是普通用户的家目录
f、root 是超级用户的家目录
g、lib 是表示linux系统下的函数库目录
h、media, 表示挂载目录, mnt表示系统挂载目录
i、sys 与 proc目录不能直接操作,这两个目录保存的是内存过载点
j、tmp 临时目录, usr系统软件资源目录
k、var系统相关文档内容
注意: 通常在练习linux的时候,可以放在家目录,如root(超级用户)或home(普通用户)下进行练习,也可以放在tmp练习
5、链接命令
建立软链接 ln -s [原文件] [目标文件]
建立硬链接 ln [原文件] [目标文件]
硬链接的特征:
a、拥有相同的i节点和存储block块,可以看做是同一个文件
b、可通过i节点识别
c、不能跨分区
d、不能针对目录使用
软链接的特征:
a、类似window快捷方式
b、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
c、修改任意文件,另一个都改变
d、删除原文件,软链接不能使用
注意: 可以通过一下进行记忆,硬链接相当于复制,但是一方的改,也会导致另一方的改变,而软链接相当于快捷方式
6、linux中的文件搜索
a、文件搜索命令locate 与 文件搜索命令find 相比速度会更快 格式: locate 文件名 =》 在后台数据库中按文件名搜索,搜索速度更快,但是只能按照文件名进行查找
但是注意:如果新建一个文件,那么用locate去寻找的话,是找不到的,因为locate功能会在var/lib/mlocate中进行寻找,但是这个文件是一天更新一次,不是实时更新的,但是如果强制执行updatedb这个命令,那么会进行数据库的更新
touch test.html //新建文件
locate test.html //查找文件
updatedb //更新数据库
b、命令搜索命令 whereis 与which的使用
whereis 的格式: whereis 命令名 =》 搜索命令所在的路径及帮助文档所在的位置 选项: -b: 只查找可执行文件 -m:只查找帮助文件
whereis ls //列出ls命令的位置,以及帮助文档
扩展:whoami表示我是谁 whatis ls 表示ls是什么
which 的格式: which 命令名 =》与上面的功能差不多,但可以看到对应的别名
c、文件搜索命令find的使用
find的格式: find [搜索范围] [搜索条件]
find / -name test.html => 表示在整个根目录中搜索名称为test.html的文件, 在linux系统中find的时候常常是完全匹配的,如果有其他情况的,需要使用通配符
通配符有: * 匹配任意内容 ?匹配任意字符 []匹配任意一个中括号内的字符
find /root -name "test.html*" =》 表示在root目录下查找名字前面匹配test.html的文件名,后面的内容任意
find /root -name "test.htm?" find /root -name "ab[cd]"
find /root -iname "test.html" =》 不区分大小写,查找匹配test.html文件名的文件
find /root -user root => 按照所有者进行搜索
find /root -nouser => 查找没有所有者的文件
find . -size 25k => 表示查找当前目录下文件大小是25kb的文件 -25k 小于25kb的文件 +25k 大小25kb的文件
7、帮助命令
man [命令] 表示查看命令的用法
man ls //可以展示这条命令的帮助信息,如果想找 -d的配置,再输入 /-d即可跳转至定位
man -f 相当于 whatis 命令
[命令] --help 表示查看帮助
info [命令] 查看帮助
8、linux中压缩与解压缩
linux中常见的压缩格式有:.zip .gz .bz2 .tar.gz .tar.bz2
zip格式压缩(能压缩目录)
zip test.zip test.html #压缩文件
zip -r test.zip test #压缩文件夹
unzip test.zip #解压缩文件或文件夹,解压在当前目录下
gz格式压缩(不能压缩目录)
gzip test.html #压缩test.html文件,同时源文件会被删除
gzip -c test.html > test.html.gz #压缩文件,同时保留源文件
gzip -r *** #压缩目录下的子文件都变成压缩包,并删除原文件,文件夹无变化
gzip -d test.html.gz #解压gz文件
gzip -dr *** #解压目录下的所有子文件
bz2格式压缩(不能压缩目录)
相对于gz,压缩能力更强
bzip2 test.html #压缩文件
bzip2 -k test.html #压缩文件,并且保留源文件
bzip2 -d test.html.bz2 #解压缩包,不保留源文件
bzip2 -d -k test.html.bz2 #解压缩包,保留源文件
bunzip2 test.html.bz2 #解压缩包,不保留源文件
bunzip2 -r test.html.bz2 #解压缩包,保留源文件
tar打包,只打包不压缩
- -c 打包
- -v 显示过程
- -f 指定打包后的文件名
tar -cvf folder.tar folder #打包文件夹
tar -xvf folder.tar #解打包文件夹
tar.gz压缩(可压缩目录)
tar结合了tar与gz两都即实现了打包又实现了压缩
tar -zcvf test.html.tar.gz test.html #表示把test.html压缩为test.html.tar.gz文件
tar -zxvf test.html.tar.gz -C ./tmp #表示解压到指定的tmp文件夹中
tar.bz2压缩(可压缩目录)
tar结合了tar与bzip2两都即实现了打包又实现了压缩
tar -jcvf index.html.tar.bz2 index.html #压缩index.html 为index.html.tar.bz2 tar -jxvf index.html.tar.bz2 #解压缩index.html.tar.bz2
9、 w 命令
查看登录用户信息
- USER 登录的用户名
- TTY 登录的终端 tty1 本地终端 pts/0远程终端
- FROM 登录的IP
- LOGIN 登录时间
- IDLE 用户闲置时间
- JCPU 该终端所有进程占用的时间
- PCPU 当前进程所占用的时间
- WHAT 正在执行的命令
10、 who 命令
相对于w命令,显示的信息更少些
查看登录用户信息
- USER 登录的用户名
- TTY 登录的终端 tty1 本地终端 pts/0远程终端
- LOGIN 登录时间(登录的IP)
11、 last 命令
查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp
文件
- 用户名
- 登录终端
- 登录IP
- 登录时间
- 退出时间(在线时间)
12、lastlog 命令
查看所有用户的最后一次登录时间
- 用户名
- 登录终端
- 登录IP
- 最后一次登录时间
13、磁盘管理
df 查看磁盘分区使用情况
这里只记住两个参数就好
-a #查看全部文件系统,单位默认KB
-h #使用-h选项以KB、MB、GB的单位来显示,可读性高(最常用)
du : 统计磁盘上的文件大小
命令参数:
-a #显示目录中文件的大小 单位 KB 。
-b #显示目录中文件的大小,以字节byte为单位。
-c #显示目录中文件的大小,同时也显示总和;单位KB。
-k 、 -m 、#显示目录中文件的大小,-k 单位KB,-m 单位MB.
-s #仅显示目录的总值,单位KB。
-h #以K M G为单位显示,提高可读性~~~(最常用的一个~也可能只用这一个就满足需求了)
添加新硬盘后的分区与格式化
硬件设备是由linux系统自动识别并以文件的形式存在于根目录下的dev目录下
1-4分区编号是留给主分区和扩展分区的,逻辑分区只能从5开始
命令 功能
m 打印菜单
n 添加一个分区
d 删除一个分区
p 打印分区表
q 即出不保存
w 写入分区并保存
fdisk -l #查看分区的挂载情况
fdisk /dev/vdal 进行磁盘分区,这时就进入分区界面,就可以使用以上的命令了
Linux磁盘分区---GPT分区 具体查询网络的相关文章
14、读取文件内容
cat 文件名 #显示文件的全部内容
more 文件名 #分页显示内容
head 文件名 #默认显示10行
head -20 文件名 #显示文件的前20行
tail -f 文件名 #循环读取
tail -10 文件名 #显示文件尾的10行内容
head -20 1.txt | tail -10 #在取得的前20条数据中取最后10条
15、后台执行
ctrl + z把当前的任务放到后台执行, fg命令则是取回到前台
16、历史命令
history 查看所有的命令执行历史
history -c 清空历史命令
history -w 把历史命令写入到文件中 ~./bash_history
默认命令是保存1000条,如果需要调整,可以更改配置 /etc/profile文件中的 HISSIZE=10000
17、关机重启
shutdown 关机命令
- -c 取消前一个关机命令
- -h 关机
- -r 重启
shutdown -r 06:00 //在6点时重启,但当前不能进行任何操作 shutdown -r 06:00 & //放在后台操作,当前可以进行操作 shutdown -c //取消在关机前的所有操作,如定时关机
18、其他命令
top 查看内存信息以及cpu
diff 比较文件内容 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出
echo $SHELL 查看当前shell是什么版本
19、node环境的安装
使用pm2对node服务器进行进程守护时,如果需要执行package.json里的script命令时应按如下命令执行
pm2 start npm -i max -n "server" -- start
## 相当于执行npm start, 但是这里是用pm2来执行, -i max表示以电脑核数进行运行, -n 表示把进程名字取为server 相当于--name
注意最后的 -- start ‘--’前后都有空格, 相当于npm start