文章目录
帮助命令
- man {命令名字}
- help / {命令名字} -h
基础命令
1 ls
ls -l 查询目录,能显示目录下的内容列表
[root@yr ~]# ls -l
total 68
-rw------- 1 root root 1358 Jan 8 14:20 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 Jan 8 16:10 d01
drwxr-xr-x 2 root root 4096 Jan 8 14:22 Desktop
-rw-r--r-- 1 root root 38879 Jan 8 14:20 install.log
-rw-r--r-- 1 root root 3672 Jan 8 14:20 install.log.syslog
# 用户 组名 文件大小(字节,kb)文件最后修改时间 文件名
-rw-r–r-- 第一个字符 -代表的是文件
drwx----- d是director目录 x是可以执行
ls -a 可以显示出所有的目录及文件,包括隐藏文件
ls -la 显示隐藏文件的详细信息
ls -lk 以KB(千字节)为单位显示文件大小
有l才能展示更全的信息
ls -t 把输出的文件按时间排序
ls -lta 所有的文件详细显示并且按时间排序(lta三个字母的顺序随意)
-r 文件名反序输出
-s 显示文件大小(以区块为单位)
2 cd (change directory)
cd 进入用户主目录、宿主目录、家目录(用户登录后默认登陆的用户)
cd ~ 切换到当前用户的家目录
[root@yr ~]# cd /var
cd - 返回进入此目录之前所在的目录
[root@yr var]# cd ..
cd … 返回上级目录
[root@yr /]# cd -
cd …/… 返回上两级 cd …/…/… 三级 /var
这里的/是分隔的意思
[root@yr var]#
-普通文件
d 目录文件
l link链接
c 字符设备
b 块设备
3 重要目录
根目录(/)是linux系统启动时系统第一个载入的区。/root是root用户的宿主目录,启动中用到的文件都在这里,其中/etc /bin /dev /lib /sbin这5个子目录都与根目录连在一起。
pwd命令: 查看当前所在目录
进入到根目录:
[root@yr ~]# cd /
- /bin 存放所有用户都能使用的Linux基本操作命令
- /dev 设备文件目录,虚拟文件系统,系统中的device相关信息。设备文件分为字符设备文件和块设备文件两种。
- /home 存放除了root用户以外的宿主目录
- /proc 虚拟文件系统,是kenel加载后,在内存里面建立的一个虚拟目录
作用:整理系统内部信息、存放主机硬件信息、调整系统执行是的参数、检查及修改网络和主机的参数、检查及调整系统的内存和性能
- 查看配置文件信息 cat /proc/meminfo
不能直接cat,一定要写清楚cat谁,不然计算机会傻掉,用Ctrl+c让计算机恢复清醒 - 查看CPU信息 cat /proc/cpuinfo
- 读取配置文件 ls -l/etc/hosts
- /usr:Linux系统上安装的应用程序默认安装在这里
- /usr/bin:一般用户有机会使用到的程序,或者软件默认就是要让所有用户使用才会放在该目录中
- /usr/sbin:一些系统有可能用到的系统命令,一些较次要的文件
- /usr/etc:自行安装或非系统主要的配置文件目录
- /etc:主机、系统或网络配置文件存放目录
- /tmp:存放临时文件
- /var:动态文件或数据存放目录,默认日志文件都存放在这个目录下
在cmd里,ping:IP地址,可以查询虚拟机和Linux是否连接上
4 绝对路径和相对路径
[root@yr var]# cd / #进入到根目录
[root@yr /]# cd home
[root@yr /]#说明在根目录, [root@yr home]#说明在家目录
- 相对路径:(退出再进)
[root@yr home]# cd .. #返回上级目录
[root@yr /]# cd etc
- 绝对路径:(直接进)
[root@yr home]# cd /etc
[root@yr etc]#
pwd是输出当前工作目录 很重要!经常用!
5 创建目录
- mkdir是创建一个目录
- mkdir -p是创建一串
[root@yr ~]# mkdir -p d03/c03/c04
[root@yr ~]# cd d03
[root@yr d03]# cd c03
[root@yr c03]# cd c04
[root@yr c04]# pwd
/root/d03/c03/c04
[root@yr c04]# rm -f c04
[root@yr c04]# cd ..
[root@yr c03]# cd c04
[root@yr c04]# rm c03
rm: cannot lstat `c03': No such file or directory
[root@yr c04]# pwd
/root/d03/c03/c04
本身在c04里就只能删c04内部的文件或目录!!想删掉c04只能从它的上一级操作!!!一定要注意,一级管一级,和我是谁我在哪,才能知道我要干什么
6 创建文件
6.1 touch用来创建文件file01:
[root@yr c03]# touch file01
[root@yr c03]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jan 8 19:03 file01 大小是0是因为这个文件是空的
[root@yr c03]# cat file01 用cat查看
添加多个文件 例如添加 a11 a12 a13 a14 a15可以用touch a1{1…5}
6.2 通过vi编辑器创建
vi是文本编辑器,可以直接编辑,编辑后看是否保存:
[root@yr c03]# vi file02
编辑完后点Esc
:wq 保存并退出
:q 是直接退出
7 删除
rm 删除会问是否要删除?
[root@yr c03]# rm file02
rm: remove regular file `file02'? yes
rm -f 强制删除文件或目录
[root@yr c03]# rm -f file01
[root@yr c03]# cd ../..
rm -rf 删除目录
[root@yr c03]# rm -f c04
rm: cannot remove `c04': Is a directory
[root@yr c03]# ls
c04
[root@yr c03]# rm -rf c04
[root@yr c03]# ls
[root@yr c03]#
rm -rf d0* 删除所有d0开头的
[root@yr ~]# rm -rf d0*
8 移动
d02 d03
a c03
b e03
c
把d02的a移动到d03:
- 相对路径:
[root@yr d01]# mv a ../d03
- 绝对路径:
[root@yr d01]# mv b /root/d03/
把c挪到d03并改名为d:
mv c ../d03/d
把d03下的c03挪到d02并改名为c02:
mv /root/d03/c03 /root/d02/c02
9 cp 复制
[root@yr d03]# cp -rf c03 c04
复制目录c03到当前目录下并重命名为c04
默认情况下目录不能通过cp命令直接复制,需要使用-r选项
cp * /root/d04
把当前目录下所有文件复制到d04
scp file_name user@IP:/root/xxx(Path)
把文件复制到远程用户下
10 查看
more:一页一页看,按回车下一行,按空格下一页,退出时按q
more /proc.cpuinfo :左下角是0%,是因为它处于一个未知的状态,并不知道有多长,所以是0%
cat:全部可以输出
head:查看指定文件的前十行(只输出十行)
head -20 install.log 显示前20行
tail:看后十行
tail -f 查看一些系统在写的不断变化的日志文件
ls -l丨wc -l:统计有多少行(显示数-1是真实行数) 先执行前面的命令,再执行后面的命令
看cpuinfo有几行数据:
[root@yr /]# wc -l /proc/cpuinfo
19 /proc/cpuinfo
wc -l 查看指定文件的行数
wc -c 查看字符
wc -w 统计单词
11 追加
#echo abcdef>>a.txt
将abcdef追加到a.txt文件末尾
往文件中写入内容,比如原来的a.txt文件内容是aaaaa,现在就变成了aaaaaabcdef
#echo bbbbb>a.txt
这个是bbbbb把a.txt原来的内容替换
这里注意 >是覆盖,>>是追加。
[root@yr d01]# touch b
[root@yr d01]# echo "hello" >b
[root@yr d01]# cat b
hello
[root@yr d01]# echo "world" >>b
[root@yr d01]# cat b
hello
world
[root@yr d01]# echo "hahaha" >b
[root@yr d01]# cat b
hahaha
cat /proc/cpuinfo > …/test1/0.txt
查看/proc/cpuinfo文件内容,并将信息追加至0.txt文件中
/目录 、/home目录 、~目录的区别
/ :根目录
cd / : 从任何用户执行该命令都会进入同一个目录,即所有用户共享,其下文件如图
/home :家目录(我觉得还不如叫用户列表目录)
cd /home :会显示这台机器的用户,如图,所以我认为与其叫什么家目录,不如说是用户目录
~ :当前用户的家目录
一般普通用户的家目录是/home/用户名。root用户的家目录是/root
1.在imooc用户下登录:
cd ~ 等价于 cd /home/imooc :会进入当前用户的家目录(一般情况连接上机器都是在这个目录,一般操作也都是在这里)
[root@yr home]# su - user01
[user01@yr ~]$ pwd
/home/user01
2.在root下登录:
cd ~ 等价于 cd /root
* hostname 查看主机名
* uname -a 查看版本信息
* uname -r 查看内核信息
* lsb_release -a 查看操作系统版本信息
* /proc/cpuinfo 查看系统CPU信息
MemTotal 内存 MemFree 空余内存 Buffers Cached SwapCached 虚拟内存(把硬盘上的一部分空间当内存使用,以牺牲速度来存储)SwapTotal SwapFree
* /proc/meminfo 查看内存信息
eth0 网卡名字
* ifconfig 查看网络信息
* date 查看系统时间
* df -h 查看磁盘信息,系统磁盘使用情况
所有的磁盘都在/dev下 1./dev/sda/ system安装在这里 2./dev/sdb/ 加一块盘 3./dev/sdc/ 以此类推不同于Windows:tmp etc boot都在根目录下,是同级,但boot的存储空间是独立的。相当于windows的tmp etc存在了C盘,boot存在D盘。boot在根目录下,但不存在根的存储空间下。boot和根用不同的磁盘设备存储。*看路径,每个路径下的存储空间不同如果/boot下已经存满了99M,/tmp还能存储吗?可以,因为/tmp是在/下的,不在/boot下,所以不受影响,还能再存**Linux的磁盘分为fdisk和LVM两种。
* df -m 也是查看磁盘信息,所有磁盘的大小以MB的形式显示(有些机器不支持-h)
* ps -ef 查看操作系统下面所有运行的进程信息
*杀进程是 kill -9 【进程号】来关掉进程
* du -sh {文件或目录的名字} 查看文件或目录的大小
* who am i 显示目前登录系统的用户信息
[root@yr d01]# who am iroot pts/2 2019-01-09 12:04 (192.168.233.1)显示的是:【用户】【session的名字(pts/2)】 【登录时间(网关)】如果是一个用户,通过session的名字来区分
* whoami 显示的只有【用户】
* who 是整个操作系统级别,显示都有谁连接上了,跟在那个窗口下查是无关的
* w 显示所有连接到操作系统上的用户信息,并显示用户正在执行的指令(一般用于看用户进程)
2.关机命令
* shutdown 关机
* reboot 操作系统重启命令
* shutdown -r now 关机后立即重启,r是reboot
* shutdown -h now 关机后不重启
* shutdown -r +10 十分钟后重启
* shutdown -r 10:00 10点钟重启
* shutdown -h +10 十分钟关机
* poweroff 关闭计算机系统后,还会发送指令通知电源。最后切断电源供应。(通过poweroff相对暴力,因为其他方式关机后,主板依然处于通电状态)
3.通配符
* * 匹配0个或多个字符
显示包含“log”的所有文件:[root@yr ~]# ls -l log-rw-r–r-- 1 root root 38879 Jan 9 2019 install.log-rw-r–r-- 1 root root 3672 Jan 9 2019 install.log.syslog[root@yr ~]# ll *.log ll是ls -l的缩写-rw-r–r-- 1 root root 38879 Jan 9 2019 install.log[root@yr dev]# ll a1-rw-r–r-- 1 root root 0 Jan 9 14:31 a1-rw-r–r-- 1 root root 0 Jan 9 14:30 a10-rw-r–r-- 1 root root 0 Jan 9 14:30 a11
* ? 匹配任意一个字符
[root@yr dev]# ll a??-rw-r–r-- 1 root root 0 Jan 9 14:29 a01-rw-r–r-- 1 root root 0 Jan 9 14:29 a02-rw-r–r-- 1 root root 0 Jan 9 14:29 a03-rw-r–r-- 1 root root 0 Jan 9 14:30 a10-rw-r–r-- 1 root root 0 Jan 9 14:30 a11[root@yr dev]# ll a?-rw-r–r-- 1 root root 0 Jan 9 14:31 a1[root@yr dev]# ll a?0-rw-r–r-- 1 root root 0 Jan 9 14:30 a10
* [list] 匹配list中任意单一字符
[root@yr dev]# ll a1[012]-rw-r–r-- 1 root root 0 Jan 9 14:30 a10-rw-r–r-- 1 root root 0 Jan 9 14:30 a11[root@yr d01]# ll [bc]10-rw-r–r-- 1 root root 0 Jan 9 14:37 b10-rw-r–r-- 1 root root 0 Jan 9 14:37 c10
* [!list] 或 [^list] 匹配除了list中的任意单一字符
[root@yr d01]# ll [!bc]10-rw-r–r-- 1 root root 0 Jan 9 14:37 a10
* [c1-c2] 匹配c1-c2中的任意单一字符,如[0-9] [a-z]
[root@yr d01]# ll a1[1-4]-rw-r–r-- 1 root root 0 Jan 9 14:37 a11-rw-r–r-- 1 root root 0 Jan 9 14:37 a12-rw-r–r-- 1 root root 0 Jan 9 14:37 a13*如果是2位就2个[]
* [!c1-c2] 或 [^c1-c2] 匹配不在c1-c2的任意字符
* {string1,string2,…} 匹配string1或string2(或更多)的字符串
如a{abc,xyz,123}列出aabcb,axyzb,a123b