Linux常用命令
基本命令
命令入门
命令提示符详解
1 | [root@localhost ~]# #/root |
命令格式
命令 [选项] [参数] (三者之间要有空格,区分大小写)
command [-options] [args]
案例演示
1 | [root@node1 ~]# ls |
获取命令的帮助
查手册
man 命令
命令 –help
搜索引擎
echo
1 | [root@node1 ~]# help echo |
环境变量:PATH
当在shell中执行命令的时候,默认到PATH指定的路径中查找可执行文件。
如果在PATH中的多个目录都包含该可执行文件,则执行最先找到的。
1 | [root@node1 ~]# echo $PATH |
如果找不到,这提示命令不识别。
ls
ls:命令用于列出目录内容ls:添加-l以长格式输出,列出根目录下内容的详细列表ls-l:也可以后面跟多个目录,列出多个目录的内容ls / /usr:也可以通过命令的别名列出详细列表
1 | ll |
pwd
打印当前工作目录路径
1 | [root@node1 ~]# pwd |
cd
cd用于更改shell工作目录,也就是切换目录change directory
1 | #如果cd后什么都不写,表示直接回当前用户家目录 |
mkdir
mkdir用于创建目录
1 | mkdirabc |
cp
cp文件…目标目录
拷贝文件…到目标目录,可以同时拷贝多个文件,文件名之间用空格隔开
1 | [root@node1xdir]# cp ~/anaconda-ks.cfg. |
cp -r 文件…目标目录
拷贝目录到目标目录
1 | [root@node1test]# mkdir xyz |
mv
mv用于移动或重命名文件
- 移动文件/目录#mv源文件/[源文件1源文件2]目标目录
1
2
3[root@node1abc]# mv anaconda-ks.cfg x/y/
[root@node1abc]# ls x/y/
anaconda-ks.cfgz - Linux中没有专门改名的命令,兼职改名工作:
1
2
3
4
5
6
7
8#修改目录名称mv旧名称新名称
[root@node1test]# mv a3 ao3
[root@node1test]#ls
a a1 a2 abc ao3 xyz
#修改文件
[root@node1test]# mv anaconda-ks.cfg ks.cfg
[root@node1test]#ls
a a1 a2 abc ao3 ks.cfg xyz
ln
ln:用于创建硬链接或软链接
- 可以使用ll -i选项让ll打印文件的inode信息
1
2[root@node1 ~]# cp /etc/profile ./
[root@node1 ~]# ll –i - 创建硬链接
1
[root@node1 ~]# ln profile ln1
- 创建软链接:让ln2指向profile,给profile创建软连接,相当于windows中的快捷方式如果两个文件inode一样,表示两个文件(ln1和profile)实际上是同一个文件,硬连接。如果inode不一样,但是有ln2->profile,表示ln2是profile的软链接
1
2
3[root@node1 ~]#ln -s profile ln2
#再次打印inode信息查看
[root@node1 ~]# ll -i注意:ln1、ln2都不能提前创建,或是已经存在的文件,否则报错。
软连接删除不会删除源文件1
2
3
4#英文语言环境下的提示
ln: creating symbolic link `ln1`:Fileexists
#中文语言环境下的提示
ln: 无法创建硬链接"ln1": 文件已存在
硬链接删除后如果源文件没有硬链接,则文件被删除
rm
rm用于删除文件 直接删除,需要确认yes
rm file:添加-f选项可以不用确认强制删除rm -f file
1 | [root@node1 ~]# ls |
如果rm的参数是目录,则会提示需要迭代删除而不能成功
rm adir
1 | [root@node1 ~]# ls |
df
- 查看系统挂载的磁盘情况
1
2
3
4[root@node1 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 485816 0 485816 0% /dev在linux中用到了虚拟目录树,它的存在就是为了解耦应用和底层存储。
mount
- 将光驱挂载到/mnt目录
1
2
3
4
5[root@node1 ~]# mount /dev/cdrom /mnt
#进入到/mnt目录
[root@node1 ~]# cd /mnt
#查看磁盘分区的挂载情况:
[root@node1mnt]# df -h
umount
- 卸载掉挂载的分区/mnt
1
[root@node1mnt]# umount /mnt
注意卸载/mnt时,当前目录不能在/mnt下面,否则报出如下图所示提示:
1
2
3
4
5
6#再次查看磁盘分区的挂载情况:
[root@node1 ~]# df -h
#重新挂载
[root@node1 ~]# mount /dev/cdrom /mnt
#再次查看
[root@node1 ~]# df -h
系统操作命令
du
du可以为目录递归地汇总每个FILE的磁盘使用情况。
- du:文件系统的磁盘使用量或是目录使用量
- a :列出所有的文件与目录容量
- h :以人们较易读的容量格式(G/M)显示重要
- s :列出总量而已,而不列出每个各别的目录占用容量
- k :以KBytes列出容量显示
- m :以MBytes列出容量显示
1 | [root@node1~]# cd /usr |
查看/etc目录下共占用多大磁盘空间
1 | [root@node1usr]# du -sh /etc/ |
stat
stat file:显示文件的元数据
change和modify的不同
modify指的是文件内容被修改的时间
change表示文件元数据被修改的时间
history
查看历史命令
1 | [root@node1 ~]# history |
date
基本语法date [options]...[+format]
选项说明
| 选项 | 功能 |
|---|---|
| -d<时间字符串> | 显示指定的“时间字符串”表示的时间,而非当前时间 |
| s<日期时间> | 设置系统日期时间 |
参数说明
| 选项 | 功能 |
|---|---|
| <+日期时间格式> | 指定显示时使用的日期时间格式 |
获取当前时间
基本语法
| 命令 | 功能描述 |
|---|---|
| date | 显示当前时间 |
| date +%Y | 显示当前的年份 |
| date +%m | 显示当前月份 |
| date +%d | 显示当前是哪一天 |
| date “+%Y-%m-%d %H:%M:%S” | 显示年月日时分秒 |
获取非当前时间
1 | #显示昨天的时间 |
3.4.3设置系统时间
基本语法date -s字符串时间
1 | [root@node1 ~]# date -s "2021-08-18 09:36:43" |
扩展了解:cal显示日历
进程相关命令
ps
可以通过命令查看系统内进程信息ps -ef
进程查看命令ps(process status) :将某个时间点的程序运作情况截取下来
选项和参数
- a :和输入终端(terminal)关联的所有process,通常与x一起使用,列出完整信息。
- x :后台进程,通常与a这个参数一起使用,可列出较完整信息
- u :有效使用者(effective user)相关的process
常用组合
ps aux观察系统所有的程序数据(常用)以下为各选项的含义1
2[root@node1 ~]# ps aux
[root@node1 ~]# ps au - USER:该process属于那个使用者
- PID:该process的程序标识符。
- %CPU:该process使用掉的CPU资源百分比;
- %MEM:该process所占用的物理内存百分比;
- VSZ :该process使用掉的虚拟内存量(Kbytes)
- RSS :该process占用的物理的内存量(Kbytes)
- TTY :该process是在那个终端机上面运作,若与终端机无关则显示?,另外, tty1-tty6是本机上面的登入者程序,若为pts/0等等的,则表示为由网络连接进主机的程序。
- STAT:该进程目前的状态,状态显示与ps -l的S旗标相同(R/S/D/T/Z)
- START:该process被触发启动的时间;
- TIME :该process实际使用CPU运作的时间。
- COMMAND:该程序的实际命令为何?
kill
基本语法
kill [选项]进程号:通过进程号杀死进程(只会杀死进程号对应的一个进程)
killall进程名称:通过进程名称杀死进程,也支持通配符(杀死对应的一个或多个进程)
选项说明
| 语法 | 效果 |
|---|---|
| -15 | 表示让进程处理完善后的事情后关闭 |
| -9 | 表示强迫进程立即停止 |
1 | [root@node1 ~]# kill -9 1267 |
centos7精简安装后,使用中发现没有killall命令,于是我们想到需要安装killall:
1 | [root@node1 ~]# yum install killall -y |
这是因为对应的yum源上并没有一个名字为killall的安装包,而是给我们提供了一个psmisc安装包,安装它之后killall便可以使用了,另外pstree也是这样。
1 | [root@node1 ~]# yum install psmisc -y |





