ls
对于目录,列出该目录下的所有子目录与文件,对于文件,列出文件名与其他信息。
- -a :列出目录所有文件
- -l :列出文件的所有信息
- -k :以k字节的形式表示文件大小
- -t :以时间排序
- -R:列出所有子目录下的文件
pwd
显示用户当前所在目录
cd
改变工作目录,可以切换到指定目录下
- cd..:返回上一级目录
- cd~:进入家目录
- cd -:返回最近访问的目录
Linux的目录结构
其目录结构是一个树形结构
几个特殊的目录 :
- / :根目录
- . :当前目录
- .. :当前目录的上级目
相对路径与绝对路径
形如:/uer/local/hdfs/ 从根目录开始的路径,称为绝对路径
形如:./hdfs 或者 ../hdfs 的从当前的工作目录所开始的路径称为相对路径
touch
可以更改文档或目录的日期时间,包括存取时间和更改时间,或者创建一个不存在的文件
创建文件
更新时间
echo
会将输入的标准字符串输出在屏幕
还可以给文件写入内容
但是如果这个写第二次,会覆盖第一次的内容,所以如下
cat
查看文件内容,上图已经使用
如果想要加上排序输出,则
mkdir
在当前目录下创建目录
可以同时创建多个目录
可以递归创建目录
rm (慎用)
删除文件或者目录
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
重要注意事项:
千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.
cp
复制文件或者目录
语法:cp [选项] 源文件或目录 目标文件或目录
如果目的地是一个存在的目录,那么直接将文件复制到该目录下,如果目的地不存在则会报错
mv
将文件进行移动,
语法: mv [选项] 源文件或目录 目标文件或目录
目标文件存在时,就会将文件或者目录移动到目的地,如果第二个参数是一个文件名,那么此时就将文件重命名。
移动文件
重命名
man
由于linux中有很多命令,不可能全部记住,所以man命令就是帮助我们查看命令的详细用法。
语法:man + 需要帮助的命令
按h可以获取更多帮助,按q退出
less
查看文件内容,不会立刻把文件内容加载到内存,也能进行查找
此时test.txt文件内容如下,同时可以使用less来查看
head
来显示文档的开头到标准输出,默认输出前十行
head -n50 //表示输出前50行
tail
和head相对应,输出文档末尾的内容到标准输出,常用查看日志文件
- -f 循环读取
- -n<行数> 显示行数
例如,一个文本有100行,输出第50行
head -n50 test > tmp //取出文本的前50行
tail -n1 tmp // 取出第50行
date
显示时间的命令
但是这样的显示形式并不常见,所以如果要实现我们平时使用的年月日时分秒,就可以构造
date 指定格式显示时间: date +"%Y-%m-%d %H:%M:%S"
时间戳
时间戳:date +%s
vim
vim是一个知名的文本编辑器,之前我们讲的命令可以查看文本,但是不可以编辑文本,vim就可以实现编辑文本。
打开文件
vim 文件名
此时就打开本文了,但是此时还不能写入
进入插入模式
刚打开时是普通模式,并不是插入模式,此时只能浏览,不能插入,要实现插入功能,按 i 进入插入模式
此时左下角显示INSERT,此时就是插入模式,可以写入内容
保存
输入完成之后,要保存所输入的文本,首先要回到普通模式,按ESC回到普通模式,然后按冒号:之后输入w,保存成功
退出
首先回到普通模式,然后冒号之后输入q,就可以退出vim
也可以直接使用 :wq 同时执行保存和退出.
其实vim操作不止这些,只是常用的简单列出来,还有很多的操作可以在:菜鸟教程关于vim,下图就是vim的按键操作
grep
用于查找文件中是否包含指定字符串,并显示对应的行
语法:grep [参数]... [文件]...
- -n<行数> 显示的行数
- -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
- -r 递归查找. 可以搜索多级目录下的所有文件.
- --color 高亮查找到的结果
- --include 指定查找某些文件
- --exclude 指定排除某些文件
ps
用于查看当前系统上运行的进程
- a 显示一个终端的所有进程
- u 以用户为主的格式来显示程序状况
- x 显示所有程序,不以终端机来区分
例:
ps -aux //显示所有进程
ps -aux | grep '进程名或者进程id'
netstat
查看系统上的网络状态
- -a 显示所有正在或不在侦听的套接字
- -n 显示数字形式地址而不是去解析主机、端口或用户名
- -p 显示套接字所属进程的PID和名称
例:
netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"