Linux命令操作
Linux常用操作命令记录
常用操作命令
#清屏
clear
#编辑模式
i
#保存并退出
:wq
#保存并退出
ctrl+x
y
enter
# 新文件夹
mkdir
Linux文件权限
所有者-所有组-其他用户
-权限顺序为:readable、writable、excutable。
权限 | 对文件执行的操作 | 对目录执行的操作 |
---|---|---|
r | 读取文件的内容 | 列出目录内容(文件名) |
w | 可以更改文件内容 | 可以创建和删除目录中的文件 |
x | 可作为命令执行文件 | 可以访问目录的内容 |
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
为 ex1.py 文件拥有者增加可执行权限:
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
mkdir [选项] 新文件夹
mkdir 命令可以创建一个文件夹
m: 对新建目录设置存取权限,也可以用 chmod 命令设置; -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
mkdir #[选项] 新文件夹
mkdir tools //在当前目录下创建一个名为tools的目录
mkdir /bin/tools //在指定目录下创建一个名为tools的目录
ps:当 opencloudos 后面跟着的是当前目录名,
~
表示当前在根目录
- 使用 mkdir 创建文件夹
直接使用 mkdir 命令只能创建父目录存在的文件夹,
例如 test 文件夹存在,可以直接创建 test/data 文件夹:
mkdir test/data
- 使用 mkdir 创建文件夹
但是当前目录下不存在 test2 目录,创建 test2/data 文件夹会失败:
mkdir test2/data
这时候就可以使用 -p 参数,将路径中不存在的目录自动创建
mkdir -p test2/data
分别查看当前目录和 test2 目录:
ls
ls test2
cd [目录名]
命令语法:cd [目录名] cd(changeDirectory)可以切换当前目录
#进入 /home 目录
cd /home
#返回上次所在的目录,也就是根目录
cd -
#进入 test 目录
cd test
#返回上一级目录,也就是根目录
cd ..
cd / //切换到根目录
cd /bin //切换到根目录下的bin目录
cd ../ //切换到上一级目录 或者使用命令:cd ..
cd ~ //切换到home目录
cd - //切换到上次访问的目录
cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错
cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全
touch [新文件名]
命令语法:touch [新文件名]
使用 touch 命令可以创建文件
#新建的 test 目录当前没有文件,我们在 test 目录下新建两个文件 a.txt 和 b.txt,可以列出多个文件名一次创建
#首先进入 test 目录:
cd test
#新建两个文件 a.txt 和 b.txt:
touch a.txt b.txt
一般创建成功或者执行成功就是不会爆出什么错误
编辑文件(vi、vim)
vi 文件名 //打开需要编辑的文件
--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-刚进入文件就是命令模式,通过方向键控制光标位置,
-使用命令"dd"删除当前整行
-使用命令"/字段"进行查找
-按"i"在光标所在字符前开始插入
-按"a"在光标所在字符后开始插入
-按"o"在光标所在行的下面另起一新行插入
-按":"进入底行模式
插入模式
-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
-按"ESC"进入底行模式
底行模式
-退出编辑: :q
-强制退出: :q!
-保存并退出: :wq
## 操作步骤示例 ##
1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑
2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑
## 补充 ##
vim +10 filename.txt //打开文件并跳到第10行
vim -R /etc/passwd //以只读模式打开文件
查看文件
cat a.txt //查看文件最后一屏内容
less a.txt //PgUp向上翻页,PgDn向下翻页,"q"退出查看
more a.txt //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看
tail -100 a.txt //查看文件的后100行,"Ctrl+C"退出查看
ls [选项] [目录]
命令语法:ls [选项] [目录] ls 就是 list 的缩写,可以查看 linux 某个目录包含的文件信息,例如文件权限,文件大小,文件修改时间息等等,默认目录为当前目录
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
使用 ls 显示文件信息(1)
ls 目录默认为当前目录./
,也可以指定为任意文件夹
ls -l
这个选项会显示长列表格式的文件内容:
从上面可以看到,每一行都有7列,分别是:
- 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位依次对应所有者、用户组和其他人对这个文件/目录的权限,权限顺序为:readable、writable、excutable。
如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。
- 第二列表示链接数,表示有多少个文件链接到inode号码。
- 第三列表示拥有者
- 第四列表示所属群组
- 第五列表示文档容量大小,单位为字节
- 第六列表示文档最后修改时间
- 第七列表示文档名称。以
.
开头的是隐藏文档
使用 ls 显示文件信息(2)
h 参数可以以易读大小显示
ls -lh /root/oc-lab/rpms/
可以看到,文件大小会以 K、M、G 等单位显示,相比字节可读性更高
使用 ls 显示文件信息(3)
在 Linux 文件系统中,有一部分文件属于隐藏文件,隐藏文件的特点是文件名开头带.
用 ls 命令或者 ls -l 是无法显示隐藏文件的,必须加上 -a 选项:
ls -a
请在 test 目录下使用 touch 创建一个隐藏文件 .ignore
并使用 ls -a 查看
cp [选项] [源目录] [目的目录]
使用 cp 命令可以将指定的文件拷贝到指定的目录
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
这个拷贝文件需要把拷贝出来的文件名字给放到后头,自定义
使用 cp 拷贝文件(1)
cp a.txt a_cp.txt
使用 cp 拷贝文件(2)
如果需要保持时间一致,可以使用 -p 选项,例如:
cp -p a.txt a_cp2.txt
这时候拷贝的文件和原文件的时间是一致的:
使用 cp 拷贝文件(3)
cp 命令可以同时拷贝多个文件,例如将 a.txt b.txt 拷贝到 test2 目录下:
cp a.txt b.txt ../test2
使用 ls 命令查看这个目录:
ls -l ../test2
可以看到,多个文件同时被拷贝进了目录:
注意了 ../test2 这里.. 代表了返回上一级文件夹
使用 cp 拷贝文件(4)
cp 命令无法直接拷贝目录,我们返回根目录进行试验,例如:
cd /root
cp test test-cp
这时候命令行会提示拷贝目录失败:
如果需要拷贝目录,可以加上 -r 选项:
cp -r test test-cp
用 ls 命令查看:
ls
可以看到目录被拷贝过来了:
mv移动文件-重命名
命令语法: mv [options] source dest mv [options] source... directory
mv(move file)命令顾名思义可以移动文件,也可以用来修改文件名(相当于移动文件到同一目录下)
使用 mv 修改文件名(重命名)
首先 cd 进入 test 文件夹。当前 test 目录中有以下文件:
我们可以用 mv 对 文件进行进行重命名。例如:
mv b.txt b2.txt
这行命令会将当前目录的 b.txt 重命名为 b2.txt:
使用 mv 移动文件
mv 命令的另一个用法是移动文件。例如,将当前目录中的 b2.txt 移动到 root 目录:
mv b2.txt /root
查看当前目录:
ls
可以看到,当前目录已经没有 b2.txt 文件了:
再看看 root,b2.txt 文件现在在 root 根目录中:
ls /root
rm移除
命令介绍
命令语法:rm [选项] 文件…
删除一个目录中的一个或多个文件或目录,本次实验环境默认开启 -i 选项,所有删除均需输入 y/n 确认
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
使用 mv 删除文件
删除 test 目录下的 a_cp.txt a_cp2.txt 文件
rm a_cp.txt a_cp2.txt
使用 mv 删除文件夹
删除 data 目录及子目录:
cd /root && rm -r test2
这个移除的目录是test2 目录还有子目录
cat- 查看文件名
命令介绍
命令语法:cat [选项] 文件名
Linux 系统中有很多查看文件的命令。最简单的是 cat 命令
使用 cat 查看文件内容
这个命令会直接在命令行打印文件的全部内容,如果文件的内容太多,查看起来不方便,可以以滚屏的方式查看。
cat /etc/profile
还可以从键盘创建一个新文件:
cat > filename
键盘上按下快捷键 Ctrl+D ,就可以成功创建并保存内容了
tar-压缩
命令介绍
tar [参数] 文件或目录...
用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。
弄清两个概念:打包和压缩。 打包:将一大堆文件或目录变成一个总的文件; 压缩:将一个大的文件通过一些压缩算法变成一个小文件
- c 建立新的压缩文件
- f 指定压缩文件
- x 从压缩包中抽取文件
- t 显示压缩文件中的内容
- z 支持gzip压缩
- j 支持bzip2压缩
- Z 支持compress解压文件
- v 显示操作过程
- C<目的目录>或--directory=<目的目录> 切换到指定的目录。
“/”表示根目录
在Linux系统中定位文件或目录位置时,使用撇号“/”进行分隔(区别于windows中的反撇号“\”)。
“/”表示根目录,它是linux文件系统的起点,其所在的分区称为根分区。
在根目录下,linux系统将默认建立一些特殊的子目录,分别用于不同的用途。下面简单介绍一下其中常见的子目录及其作用:
/boot:存放启动系统所必需的文件,包括内核文件、启动菜单配置文件等。出于系统安全考虑,“/boot”目录通常被划分为独立的分区,称为“/boot”分区。
/bin: 存放系统中最基本的用户命令,普通用户都有执行权限。
/dev:存放系统中的硬盘、键盘、鼠标、光驱等各种设备文件。
/etc:存放系统及各种程序的配置文件,配置文件较多的程序会在“etc”目录下建立独立的子目录,用于存放各自的配置文件。
/home:存放所有普通用户系统用户的默认工作目录(又称为宿主目录),例如用户帐号“zhangsan”对应的宿主目录位于“/home/zhangsan”。如果服务器需要提供给大量的普通用户使用,建议将/home目录划分独立分区,以方便用户数据的备份。
/root: 为Linux系统超级用户root的宿主目录,默认情况下只有root的宿主目录在根目录下,而不是在/home下。
/sbin:存放最基本的管理命令,一般管理员用户才有执行权限。
/usr:存放其他的用户应用程序,通常还被划分为很多子目录,用于存放不通类型的应用程序。
/var: 存放系统中经常需要变化的一些文件,如系统日志、用户邮箱目录等。
/tmp:存放系统运行过程中使用的一些临时文件。