一、文件和目录
/ //根目录 bin //binary的缩写,表示二进制文件,bin目录包含了会被所有用户使用的可执行程序
boot //包含与linux启动密切相关的文件 dev //device的缩写,表示设备,它里面的子目录,每一个对应一个外设,比如我们的光盘驱动器的文件就在这里面
etc //包含系统的配置文件
home //用户的私人文件夹,在这里面放置私人的文件、类似windows下的我的文档,linux中每一个用户都在home文件目录下有一个私人的文件夹
lib //library的缩写,表示库、包含被程序所调用的库文件
media //媒体,可移动的外设插入电脑时,linux可以让我们通过media的子目录来访问这些外设中的内容
opt //optional application software oackage 的缩写,表示可选的应用软件包,用于安装第三方软件和插件
root //超级用户 root的家目录
sbin //system binary 的缩写,二进制文件,包含系统级的重要可执行程序
srv //server的缩写,表示服务,包含一些网络服务启动之后所需要取用的数据
tmp //temporary 的缩写,表示临时的,普通用户和程序存放临时文件的地方
usr //Unix Software Resource 的缩写,表示Unix操作系统软件资源,usr目录是最庞大的目录之一,安装了大部分用户要调用的程序
var // variable 的缩写,表示动态的
1.cd命令
切换目录
cd / #切换到根目录
cd ~ #切换到/root目录
cd .. #切换到上级目录
cd /usr/local #切换到目录 /usr/local(绝对路径)
cd ./java/ #切换到当前目录下的java目录中,
cd ../java/ #切换到上层目录中的java目录中
2.ls命令
查看文件夹下的内容
ls -a #列出当前文件夹中全部的文件,连同隐藏文件
ls -l #列出当前文件夹下文件的详细信息,包含文件的属性与权限数据,ll命令相当于改命令的快捷键
ls -h #将文件容量以较易读的方式列出来
ls -R #连同目录的内容一起列出(递归列出)
ls -i #按文件最近一次修改时间排序 这些参数可以组合使用
3.cp命令
复制文件
cp -a #将文件的特性一起复制
cp -p #连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
cp -i #若目标文件已经存在,在覆盖的时候会先询问操作的进行
cp -r #递归持续复制,用于目录的复制行为
cp -u #目标文件与源文件有差异时才会复制 #例如
cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1 file2 file3 复制到目录dir中
4.mv命令
用于移动文件 目录或者重命名
mv -f #强制的意思,如果目标存在,不会询问而直接覆盖
mv -i #若目标文件已经存在,会询问是否覆盖
mv -u #若目标文件已经存在,且目标文件新,才会更新
#例子
mv file1 file2 file3 dir #把文件file1 file2 file3 移动到目录dir中
mv file1 file2 #把文件file1 重命名为file2
5.rm命令
删除目录 文件 此命令需要谨慎操作
rm -f #删除文件或者目录不会出现警告消息 rm -i #互动模式,在删除前会询问用户是否操作 rm -r #递归删除,最常用的目录删除,它是一个非常危险的参数 #例如 rm -i file #删除文件file时,会询问是否进行该操作 rm -rf dir #强制删除目录dir中所有的文件
6.pwd命令
显示当前目录的路径
7.which命令
查看命令可执行文件所在路径
8.du命令
用于显示目录或文件的大小,disk usage的意思,常用参数
du -h #以K,M,G为单位,提高信息的可读性
du -a #同时列举出目录文件的大小信息
du -s #只显示总计大小,不显示具体信息
du -b #显示目录或文件大小时,以byte为单位
9.cat命令
一次性显示文件所有内容,更适合查看小的文件
cat -n #由1开始对所有输出的行数编号
cat -b #和-n相似,只不过对于空白行不编号
10.less命令
分页显示文件内容
less infi.log
快捷操作:
- 空格键:前进一页(一个屏幕);
- b键:后退一页;
- 回车键:前进一行;
- y键:后退一行;
- 上下键:回退或前进一行;
- d键:前进半页;
- u键:后退半页;
- q键:停止读取文件,中止less命令;
- =键:显示当前页面的内容是文件中的第几行到第几行以及其他关于本页内容的详细信息;
- h键:显示帮助文档;
- /键:进入搜索模式后,按n键跳到一个符合的项目,按N键跳到上一个符合项目,同时也可以输入正则表达式匹配。
11.find命令
用于查找文件
find 何处 何物 做什么
#例子
find -name "info.log" #在当前目录以及子目录下查找名字为info.log的文件
find / -name "info.log" #整个硬盘下查找info.log
find /root/ytb -name "*.log" #在指定目录下查找*.log等文件,*表示所有
12.file命令
用于辨识文件类型
13.tar命令
对文件进行打包或者解压缩,常用参数
tar -c #新建打包文件
tar -t #查看打包文件的内容含有哪些文件名
tar -x #解打包或者解压缩的功能,可以搭配-C执行解压的目录,-c,-t,-x不能出现在同一条命令中 tar -z #通过gzip的支持进行压缩/解压缩
tar -v #在压缩/解压缩过程中,将正在处理的文件名显示出来
tar -f filename #filename为要处理的文件
#例子
tar -czvf test.tar.gz info.log #压缩info.log文件到test.tar.gz
tar -zxvf test.tar.gz #将压缩test.tar.gz
tar -tzvf test.tar.gz #列出压缩文件的内容
除了tar命令之外,linux还有zip/unzip命令来压缩或者解压.zip文件
使用yumm命令安装
yum install zip
yum install unzip
14.head命令
显示文件的开头几行(默认10行)
head gc.log 参数 -n 指定行数 head -n 5 gc.log
15.tail命令
显示文件的结尾几行(默认10行)
tail gc.log
参数
-n 指定行数 tail -n 5 gc.log -f 会每过1秒检查下文件是否有更新内容,
tail -f gc.log
实际开发中: tail -f -n 500 info.log
二、用户与权限
1.su命令
用于变更其他使用者的身份
su root #切换到root用户
2.useradd + passwd命令
useradd 添加新用户
passwd 修改用户密码
这两个命令需要root用户权限
3.userdel命令
删除用户,需要使用root用户权限
userdel lion #只会删除用户名,不会从/home中删除对应文件夹
userdel lion -r #会同时删除/home下对应的文件夹
4.sudo命令
以root身份运行命令
5.chown命令
改变文件的所有者,需要使用root身份才能运行
chown -R #递归设置子目录和子文件
chown -R es:es /usr/local/elasticsearch-8.0 #把elasticsearch-8.0 文件夹的用户和群组都改为es
6.chmod命令
修改访问权限
chmod -R #递归修改文件的访问权限
例子 chmod 777 info.log #给info.log最高权限 chmod -R 777 /usr/local.java #递归给/usr/local/java/ 最高权限
三、文本操作
1.grep命令用于查找文件符合条件的字符串,换句话说是在文件中查找关键字,并显示关键字所在行。
grep -i path /etc/profile #忽略大小写
grep -n path /etc/profile #显示行号
grep -v path /etc/profile #只显示搜索文本不在的行
grep -r hello /ect 递归查找 Linux中还有一个rgrep命令,作用相当于grep -r
四、重定向、管道
学习重定向
1.输出重定向 >
>表示重定向到新条件,我们在运行jar包的时候,经常会将日志重定向到一个特定目录的特定文件中,例如
nohop java -jar cloud-system.jar > cloud-system.log &
注意: 使用>要注意,如果输出的文件不存在会新建一个,如果输出的文件已经存在,则会覆盖。因此执行这个操作要非常小心,以免覆盖其他重要文件。
2.输出重定向>>
这个表示重定向到文件末尾,即将内容追加到文件的末尾,而不像>命令会直接覆盖文件内容。同样的,如果文件不存在,也会被创建。
所以,对于我们的项目的启动的日志,最好是使用>>命令
nohup java -jar cloud-system.jar >> cloud-system.log &
3.输出重定向2>
标准错误输出。
nohup java -jar cloud-system.jar > cloud-system.log 2>error.log &
启动后,标准输出写入文件,cliud-system.log, 2>error.log当发生错误时会写入error.log文件中
4.输出重定向2>>
标准错误输出(追加到文件末尾)类似>>
5.输出重定向2>&1
标准输出和标准错误输出都重定向到一个地方
nohup java -jar cloud-system.jar > info.log 2>&1 &
6.管道|
把两个命令连接起来,一个命令的输出作为另外一个命令的输入
例子 ls | grep gc.log.00 查看文件gc.log.00命令的输入
cat gc.log | less 将cat命令输出作为less命令的输入
ps -ef | grep cloud-system.jar 这个命令平时使用的还是比较多的,ps -ef 命令是列出所有进程的意思,
五、进程
1.ps命令
用于显示当前系统中的进程,引文全拼:process status.
ps -ef 列出所有进程
ps -u 列出此用户运行的进程
ps -aux 通过cpu和内存使用来过滤进程
ps -aux | less ps -aux --sort -pcpu 按cpu使用降序排列,-aux --sort -pmem表示按内存使用降序排列
ps -axjf 以树形结构显示进程
ps -axjf 它和pstree效果类似。
2.top命令
获取进程的动态列表
3.kill命令
结束一个进程 kill + pid
kill 11053 #结束进程号11056 kill -9 进程号
4.&命令
启动后台进程
npm run dev &
5.nohup命令
用于在系统后台不挂段=断的运行命令,退出终端不会影响程序的运行
在默认情况下(非重定向时),会输出一个名叫nohup.out的文件到当前目录下 nohup npm run dev nohup 命令也可以和 & 结合使用,后台启动并可以退出终端,程序运行不会中断 nohup npm run dev &
6.jobs命令
显示当前终端后台进程状态
jobs 是查看当前终端的后台进程状态,如果你退出终端,再次连接终端则看不到上一个被关闭终端的后台进程,但其实进程还在
六、系统
1.halt命令
关闭系统
需要root身份
2.reboot命令
重启系统,需要root身份
3.poweroff
直接运行即可关机,不需要root身份