ls
语法
:
ls [
选项
] [
目录或文件
]
功能
:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -r 对目录反向排序。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归)
举例:
命令:ls [-al]
ls 查看当前目录下的所有目录和文件
ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir 查看指定目录下的所有目录和文件 如:ls /usr
pwd
语法
: pwd
功能
:显示用户当前所在的目录
举例
:
pwd
cd
Linux
系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法
: cd
目录名
功能
:
改变工作目录。将当前工作目录改变到指定的目录下
.
举例
:
命令:cd 目录
cd / 切换到根目录
cd /usr 切换到根目录下的usr目录
cd ../ 切换到上一级目录 或者 cd ..
cd ~ 切换到home目录
cd - 切换到上次访问的目录
认识 Linux 目录结构
Linux
是一个树形目录结构
几个特殊的目录:
- / 称为根目录
- . 称为当前目录
- .. 称为当前目录的上级目录
绝对路径 vs 相对路径
- 形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
- 形如: ./logs 以 . 或者 .. 开头的, 称为相对路径
使用
tab
键补全
我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
使用
ctrl + c
重新输入
如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令
touch
语法
: touch [
选项
]...
文件
...
功能
: touch
命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例
:
命令:touch 文件名
示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt
cat
语法
:
cat [
选项
] [
文件
]
功能
: 查看目标文件的内容
常用选项
:
- -n 对输出的所有行编号
举例
cat test.txt
mkdir
语法
:
mkdir [
选项
] dirname...
功能
:在当前目录下创建一个名为
“dirname”
的目录
常用选项
:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
举例
:
命令:mkdir 目录
mkdir aaa 在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录
rm
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
举例
:
命令:rm [-rf] 目录
rm
删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
cp
语法
:
cp [
选项
]
源文件或目录 目标文件或目录
功能
:
复制文件或目录
说明
: cp
指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已
经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目
录,而最后的 目的地并非一个已存在的目录,则会出现错误信息
常用选项
:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
举例:
拷贝目录
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
mv
语法
: mv [
选项
]
源文件或目录 目标文件或目录
功能
:
1.
视
mv
命令中第二个参数类型的不同(是目标文件还是目标目录),
mv
命令将文件重命名或将其移至一个新的目录中。
2.
当第二个参数类型是文件时,
mv
命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3.
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,
mv
命令将各参数指定的源文件均移至目标目录中。
常用选项
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
举例
一、重命名目录
命令:mv 当前目录 新目录
例如:mv aaa bbb 将目录aaa改为bbb
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作
二、剪切目录
命令:mv 目录名称 目录的新位置
示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
man
Linux
的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法
: man [
选项
]
命令
常用选项
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- man man 能够看到 man 手册中的若干个章节及其含义.
举例
- man ls
vim
vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本.
使用vim 就可以进行编辑了.
vim 就相当于 Windows 的记事本. 只不过功能比记事本强大一些.
1)
创建文件
/
打开文件
vim [文件名]
2)
进入插入模式
vim
打开文件后默认是
普通模式
.
普通模式下键盘的按键表示一些特殊功能的快捷键
. (
例如按下
j
并不是输入字母 "j",
而是表示光标往下移动一行
).
需要进入插入模式才能进行文本编辑
.
使用
i
键可以进入到
插入模式
. (
左下角提示
--INSERT-- )
然后就可以像记事本一样正常编辑了
.
3)
保存
在插入模式下不能保存文件
,
需要先回到 普通模式
.
按下
Esc
回到普通模式
.
在普通模式下输入
:w
,
再按下回车
,
即可保存文件
.
4)
退出
在插入模式下不能退出
,
需要先回到
普通模式
. 在普通模式下输入 :q
,
再按下回车
,
即可退出
.
也可以直接使用 :wq 同时执行保存和退出.
grep
语法:
grep [
参数
]... [
文件
]...
功能
:用于查找文件中是否包含指定字符串
,
并显示对应的行
.
选项
:
- -n<行数> 显示的行数
- -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
- -r 递归查找. 可以搜索多级目录下的所有文件.
- --color 高亮查找到的结果
- --include 指定查找某些文件
- --exclude 指定排除某些文件
举例:
grep "hello" Hello.java
ps
语法:
ps [
参数
]...
功能
:用于查看当前系统上运行的进程
选项
:
- a 显示一个终端的所有进程
- u 以用户为主的格式来显示程序状况
- x 显示所有程序,不以终端机来区分
举例
:
ps aux # 显示系统上所有的进程ps aux | grep "进程名"ps aux | grep "进程id"
netstat
语法:
netstat [
参数
]...
功能
:查看系统上的网络状态
.
选项
:
- -a 显示所有正在或不在侦听的套接字
- -n 显示数字形式地址而不是去解析主机、端口或用户名
- -p 显示套接字所属进程的PID和名称
举例:
- netstat -anp
- netstat -anp | grep "进程名"
- netstat -anp | grep "端口号"
管理员权限
su
su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit
sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
进入sudo配置文件命令:
vi /etc/sudoer或者visudo
案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop ALL=(ALL) ALL
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。
配置文件中:
hadoop ALL=NOPASSWD: /bin/ls, /bin/cat
-help
说明:
- 显示 command 命令的帮助信息