一、linux系统的文件目录结构
linux系统下,我们看到的是文件夹,没有盘符的概念,只有一个根目录/,所有文件都在它下面
三、linux命令格式
command [-options] [parameter]
说明:
command:命令名,相应功能的英文单词或单词的缩写
[-options]:选项,可用来对命令进行控制,也可以省略
[paremeter]:传给命令的参数,可以是零个、一个或多个
二、linux常用命令
1、man
man command
查阅command命令的使用手册,包含了绝大部分的命令、函数的详细使用说明
使用时,可用空格键显示手册页的下一屏、Enter键一次滚动手册页的一行、b回滚一屏、f前滚一屏、q退出
另外:command --help可以显示command命令的帮助信息
2、ls
ls [-options] [file]
列出目录内容
ls常用选项:
-a 显示指定目录下所有子目录与文件,包括隐藏文件(隐藏文件即.开头文件,需要用-a参数才能显示)
-l 以列表方式显示文件的详细信息
-h 配合-l以人性化的方式显示文件大小,文件大小单位有B、K、M、G、T、P
ls #列出当前文件夹下的所有文档
ls -l #等同于ll,按列表列出当前文件夹的所有文档的详细信息
ls -al #列出当前文件夹的所有文档的详细信息,包括隐藏文档和父目录
ls -lt:列出当前文件夹下所有文档的详细资料,按修改时间倒序排列
ls /home/qq:列出某个目录下的所有文档
ls -l 可以查看文件夹下的文件的详细信息,从左到右依次是:
权限,第1个字符如果是d表示目录,如果是-表示文件
硬链接数,通俗的讲,就是有多少种方式,访问到当前目录/文件
拥有者
组
大小
时间
名称
通配符的使用
通配符,匹配一个或一个以上任意字符
* 代表任意个数的字符
?代表任意一个字符,至少1个
[] 表示可以匹配字符组中的任意一个
[abc] 匹配a、b、c中的任意一个
[a-f] 匹配从a到f范围内的任意一个字符
3、cd
cd [dir]
切换目录,为英文单词change directary的简写
cd 切换到当前用户的主目录(/home/用户目录)
cd~ 切换到当前用户的主目录(/home/用户目录)
cd. 保持在当前位置不变
cd.. 切换到上级目录
cd- 在最近两次工作目录之间来回切换
cd / 进入根目录
相对路径和绝对路径:
相对路径 在输入路径时,最前面不是 /或者-,表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时,最前面是 /或者-,表示从 根目录/家目录 开始的具体目录位置
4、pwd
显示当前或者工作路径
5. touch
创建文件或修改文件时间,如果文件不存在,可以创建一个空白文件;如果文件已存在,可以修改文件的末次修改日期
6.mkdir
mkdir [-p] dir
创建一个新的目录
-p 递归创建目录
新建目录名称 不能与当前目录中 已有的目录或文件 同名
7、rm
删除文件或目录
-f 强制删除,忽略不存在的文件,不提示
-r 递归地删除目录下的内容,删除文件夹时必须添加此参数
rm -r file #不提示删除某个文件
rm -rf dir #不提示删除某个文件夹
8、tree
以树状图列出文件目录结构
-d 只显示目录
9、cp
可将 文件或目录 复制到另一个 文件或目录中
-f 已经存在目标文件直接覆盖,不提示
-i 覆盖文件前提示
-r 递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
cp file1 file2 #文件到文件
cp file1 ../test1 #文件到目录
cp -r test1 test2 #目录到目录,递归拷贝
10、mv
移动文件或目录,也可以给文件或目录重命名
-i 覆盖文件前提示
11、 cat
cat用来查看文件内容、创建文件、文件合并、追加文件内容等功能
cat会一次显示所有的内容,适合查看内容较少的文本文件
-b:对非空行输出编号
-n:对所有输出行编号
12、tac
倒序显示文件,相当于cat反过来
13、more
分屏显示文件内容,每次只显示一页内容
空格键 显示文件的下一屏
Enter 显示文件的下一行
b 回滚一屏
f 前滚一屏
/word 搜索word字符串
14、less
less命令与more命令类似,less可以按空格键向下显示文件,还可以利用上下键卷动文件
15、head
显示文件头部
head file #默认显示前10行
head -5 file #显示前5行
16、tail
显示文件尾部
tail file #默认显示最后10行
tail -5 file #显示后5行
tail -f file #实时显示文件尾部
17、sort
文本排序命令
sort -n file
sort -r file
sort -u file
18、grep
打印匹配的行,grep经常和管道配合使用
grep 正则表达式 file
grep 3 a.txt #显示a.txt中包含3的行
grep 3 a.txt|wc -l #a.txt文件中包含3的行有多少行
grep -n 3 a.txt #显示a.txt中包含3的行号和行
grep -v 3 a.txt #显示a.txt中不包含3的行
grep ^123 a.txt #显示a.txt中以123开头的行
grep 123$ a.txt #显示a.txt中以123结尾的行
grep -n aa * #显示当前目录下所有包含aa的行号和行
19、find
在文件系统中查找文件
find /path/to -name "test*"
find /path/to -type f
find /path/to -ctime -1
find /path/to -cmin +1440
可以在查找后,使用-exec执行后续操作
find /path/to -ctime +30 -exec rm -rf {} #删除30天前的文件
20、df
显示磁盘空间使用情况
df -h #到G自动显示,到M自动显示
df -m #显示M
df #相当于df -k
21、du
显示目录下的文件大小
du -sh #当前目录所占用的磁盘空间
du -sh * #当前目录下所有文件占用的空间
du -sh * |sort -nr #显示前10个比较大的文件
22、free
查看内存使用情况
free #K显示
free -m #M显示
free -g #G显示
23、ps
显示当前运行的进行
ps aux #显示进程的详细状况
a #显示终端上的所有进程,包括其他用户的进程
u #显示进程的详细状态
x #显示没有控制终端的进程
ps默认只会显示当前用户通过终端启动的应用程序
ps -ef
14、kill
kill pid #本身和子进程都杀掉
kill -9 pid #只杀进程本身
25、top
显示当前系统正在执行的进程的相关信息,包括进程id、CPU占用率、内存占用率
第一列,任务队列信息
系统时间、系统已运行时间、3个用户登录系统、load avarge后面的3个数,分别为1分钟、3分钟、5分钟的负载情况
第二列,Tash -任务(进程)
总进程、运行进程、休眠进程等进程数
第三列,cpu状态
us #用户占用CPU率
sy #系统占用CPU率
id #空闲CPU率
wa #CPU等待IO所用的时间,20%系统会很慢,30%可能没法操作了
第四行,内存状态
total #物理内存总量
free #空闲内存总量
used #已使用内存
buff/cache #缓存
第五行,交换分区状态
交换分区的used如果在不断变化,说明内核在不断的进行内存和swap的交换,是真正的内存不够用了
第七行,各任务(进程)的状态监控
PID #进程id
USER #所有者
PR #进程优先级
NI #nice值,负值表示高优先级,正值表示低优先级
VIRT #进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
RES #进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
SHR #共享内存大小,单位kb
S #进程状态,D-不可中断的睡眠状态,R-运行,S-睡眠,T-跟踪/停止,Z-僵尸进程
%CPU #上次更新到现在的CPU时间占用百分比
%MEM #进程使用的物理内存百分比
TIME+ #进程使用的CPU时间总计,单位1/100秒
COMMAND #进程名称(命令名/命令行)
F、f、P、p用来增加或者减少显示项,以及显示顺序
26、date
修改系统时间
27、reboot
重启
28、shutdown
关机
-r :重新启动
shutdown -r now #重新启动操作系统,now表示现在
shutdown now #立刻关机
shutdown 20:25 #系统在今天的20:25会关机
shutdown +10 #系统再过10分钟后关机
shutdown -c #取消之前指定的关机计划
shutdown -k now #通知所有终端,现在要关机,但是实际不关机
shutdown -h now #通知所有终端,现在要关机,实际上确实关机了
shutdown -k 5 #通知所有终端,5分钟后关机,但是实际不关机
shutdown -h 5 #通知所有终端,5分钟后关机,实际上确实要关机了
29、echo
echo会在终端中显示参数指定的文字
30、重定向>和>>
linux允许将命令执行结果 重定向 到一个文件
将本应该显示在终端的内容 输出/追加 到指定文件中
>表示输出,会覆盖文件原有的内容
>>表示追加,会将内容追加到已有文件的末尾
echo hello > b
31、管道|
linux允许将一个命令的输出 通过管道 做为 另一个命令的输入
常用的管道命令有:
more:分屏显示内容
grep:在命令执行结果的基础上查询指定的文本
例如:
(1)查找tomcat进程号:ps -ef|grep tomcat
(2)关闭tomcat进程:kill -9 进程号
32、which
查看执行命令所在的位置
which ls #输出 /bin/ls
which useradd #输出 /usr/sbin/useradd
bin和sbin
在linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
/bin是二进制执行文件目录,主要用于具体应用
/sbin是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin是后期安装的一些软件
/usr/sbin超级用户的一些管理程序
cd命令是内置在系统内核中的,没有独立的文件,因此用which无法找到cd命令的位置
33、切换用户
su -用户名 #切换用户,并且切换目录
exit #退出当前登录用户
su 不接用户名,可以切换到root,但是不推荐使用,因为不安全
34、修改文件权限
chown 用户名 文件名|目录名 #修改文件|目录的拥有者
chgrp -R 组名 文件名|目录名 #递归修改文件|目录的组
chmod -R 755 文件名|目录名 #递归修改文件权限
chmod在设置权限时,可以用三个数字分别对应 拥有者 /组 和其他 用户的权限
chmod +/-rwx 文件名|目录名 #直接修改文件|目录 的读、写、执行权限
chmod 755 file
chmod -R 644 dir
第一列(数字7)代表所属用户权限,第二列(数字5)代表所属用户组权限,第三列(数字5)代表其他用户组权限
0-无权限(-),1-可执行(x),2可读(r),4-可写(w)
35、超级用户
Linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源有访问权限
在大多数版本的Linux系统中,都不建议直接使用root账号登录系统
在Linux安装的过程中,系统会自动创建一个用户账号,而这个默认的用户就称为“标准用户”
sudo
su 表示以另一个用户的身份
sudo 命令用来以其他身份来执行命令,预设的身份是root
用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码
36、组管理 终端命令
创建组/删除组的终端命令都需要通过sudo执行
(1)groupadd 组名 #添加组
(2)groupdel 组名 #删除组
(3)cat /etc/group #确认组信息
(4)chgrp 组名 文件/目录名 #修改文件/目录所在组
组信息是保存在/etc/group文件中
/etc 目录是专门用来保存 系统配置信息 的目录
37、用户管理 终端命令
创建用户/删除用户/修改其他用户密码的终端命令都需要通过sudo执行
(1)useradd -m -g 组 新建用户名 #添加用户组,-m自动建立用户家目录 -g指定用户所在组,否则会建立一个和用户名同名的组
(2)passwd 用户名 #设置用户密码,如果是普通用户,直接用passwd可以修改自己的账户密码
(3)useradd -r 用户名 #删除用户 -r选项会自动删除用户家目录
(4)cat /etc/passwd |grep 用户名 #确认用户信息,新建用户后,用户信息会保存在/etc/passwd文件中
创建用户时,如果忘记添加-m选项指定新用户的家目录,最简单的方法是删除用户,重新创建
创建用户时,默认会创建一个和用户名同名的组名
用户信息保存在/etc/passwd文件中