熟悉常用的Linux操作
操作系统:Linux
cd命令:切换目录
(1)切换到目录 /usr/local
(2)去到目前的上层目录
(3)回到自己的主文件夹
1. cd / 切换到根目录;
2. cd . 切换到当前目录;
3. cd ~ 切换到当前用户的家目录;
4. cd … 切换到当前目录的上一级目录;
5. cd 到指定目录;
ls命令:查看文件与目录
(4)查看目录/usr下所有的文件
1.-1 每列仅显示一个文件或目录名称。
2.-a或–all 列出目录下所有文件和目录,包括以 . 开头的隐含文件。
3.-l 使用详细格式列表,除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。ls -l 等于 ll
4.-S 用文件和目录的大小排序。
mkdir命令:新建新目录
(5)进入/tmp目录,创建一个名为a的目录,并查看有多少目录存在
(6)创建目录a1/a2/a3/a4
1.-p 递归创建多级目录
2.-m 建立目录的同时设置目录的权限
3.-z 设置安全上下文
4.-v 显示目录的创建过程
5.在当前工作目录中,创建一个目录文件并设置700权限,不让除所有主以外任何人读、写、执行它:mkdir -m 700 dir2
6.在当前工作目录中,一次性创建多个目录文件:mkdir dir3 dir4 dir5
7.在系统根目录中,一次性创建多个有嵌套关系的目录文件:mkdir -p /dir1/dir2/dir3/dir4/dir5
rmdir命令:删除空的目录
(7)将上例创建的目录a(/tmp下面)删除
(8)删除目录a1/a2/a3/a4,查看有多少目录存在
1.-p: 递归删除,删除目录之前是否删除父目录,如果父目录为空的话就删除
2.-v: 删除目录时,显示删除信息
3.–help: 显示此帮助信息并退出
4.–version: 输出版本信息并退出
5. 提示:rmdir不能删除非空的目录,如果想删除非空的目录用rm -r命令
cp命令:复制文件或目录
(9)将主文件夹下的.bashrc复制到/usr下,命名为bashrc1
(10)在/tmp下新建目录test,再复制这个目录内容到/usr
cp:copy files and directories(复制文件和目录)
1.-f force 若目标文件已存在,则会直接覆盖原文件
将文件yejx.txt改名为aaa.txt:cp -f yejx.txt aaa.txt
2.-i interactive 若目标文件已存在,则会询问是否覆盖
3.-p preserve 保留源文件或目录的所有属性
4.-r recursive 递归复制文件和目录
复制目录到/home/下: cp -r /root/yejx/ /home/
复制多个文件到tmp中:cp -r a.txt b.txt c.txt tmp/
5.-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件目录连接的原始文件或目录
6.-l link 对源文件建立硬连接,而非复制文件
7.-s symbolic-link 对源文件建立符号连接,而非复制文件
8.-b 覆盖已存在的文件目标前将目标文件备份
9.-v verbose 详细显示cp命令执行的操作过程
mv命令:移动文件与目录,或更名
(11)将上例文件bashrc1移动到目录/usr/test
(12)将上例test目录重命名为test2
sudo mv bashrc1 /usr/test
sudo mv test test2
mv(move),可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。
第二个参数类型是文件时,mv命令完成文件重命名,源文件(目录)只能有一个(也可以是源目录名),源文件或目录重命名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
1.-b 如果已存在相同文件名,则覆盖前进行备份
2.-f 如果已存在相同文件名,而用户不具有写的权限,则强制覆盖
3.-i 如果已存在相同文件名,覆盖前提示用户进行确认
4.-u 比较原文件与目标文件修改时间,如果目标文件较新则不覆盖
5.-v 列出所有被移动或重命名的文件
6.-t 指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
将1.txt改成2.txt: mv 1.txt 2.txt
将2.txt移动到rumenz目录: mv 2.txt rumenz/
将3.txt 4.txt 5.txt移动到rumenz: mv 3.txt 4.txt 5.txt rumenz/
将3.txt 4.txt 5.txt移动到rumenz: mv -t rumenz/ 3.txt 4.txt 5.txt
将3.txt改名为4.txt,4.txt已经存在则给出提示 mv -i 3.txt 4.txt
将4.txt强行改名为5.txt,没有提示: mv -f 4.txt 5.txt
把当前目录下rumenz目录下所有的文件移动到test目录: mv rumenz/ test/
移动目录 mv rumenz/ test/
移动当前目录下所有的文件到上一级目录: mv * …/
文件被覆盖前做简单备份,前面加参数-b: mv 4.txt(用来覆盖的的) -b 5.txt(被备份的)*
rm命令:移除文件或目录
(13)将上例复制的bashrc1文件删除
(14)将上例的test2目录删除
cd /usr/test2
sudo rm -i bashrc1
cd /usr
sudo rm -i -r test2
*1.-f 强制删除,不管有没有文件,不用返回任何提示
2.-i 删除每一个文件都要返回询问提示
3.-r,-R 删除目录
删除单个文件 rm -f file1 #删除file1且不用返回任何信息
rm -i file1 #删除file1之前询问是否删除file1
删除就输入y,不删除就n
删除多个文件 rm -f file1 file2 #删除file1和file2
删除后缀为.o的所有文件,每删除一个文件就询问一次 rm -i .o
删除目录rm -r dir1/ #删除目录dir1及dir1下的子目录
tac命令:反向列示查看主文件夹下的.bashrc文件内容
tac ~/ .bashrc
tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示
-a 将内容追加到文件的末尾
more命令:一页一页翻动查看,查看主文件夹下的.bashrc文件内容
more ~/.bashrc**
1.cat从上到下显示在屏幕上,more可以按页查看,跳转行等功能。
2.+n 从笫n行开始显示。
3.-n 定义屏幕大小为n行。
4.+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示。
5.-c 从顶部清屏,然后显示。
6.-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能。
7.-l 忽略Ctrl+l(换页)字符。
8.-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似。
9.-s 把连续的多个空行显示为一行。
10.-u 把文件内容中的下画线去掉。
1.空格键 (space) 代表向下翻一页。
2.Enter 代表向下翻n行,需要定义,默认为1行。
3.q 代表立刻离开 more ,不再显示该文件内容。
4.Ctrl+F 向下滚动一屏。
5.Ctrl+B 返回上一屏。
6.= 输出当前行的行号。
7.:f 输出文件名和当前行的行号。
8.!命令 调用Shell,并执行命令。
9.V 调用vi编辑器
head命令:取出前面几行。查看主文件夹下的.bashrc文件内容
more ~/.bashrc**
## (18)查看主文件夹下.bashrc文件内容前20行
head -n 20
(19)查看主文件夹下.bashrc文件内容,后面50行不显示,只显示前面几行
head ~/.bashrc
1.-c N 显示文件前N字节的内容
2.-n N显示文件的前N行内容
3.-q隐藏文件名(多个文件时,内容头部以文件名作为开头显示)
4.-V显示文件名(默认单个文件不显示,多个文件显示)
tail命令:取出后面几行,(19)查看主文件夹下.bashrc文件内容最后20行
tail -n 20 ~/.bashrc
(20)查看主文件夹下.bashrc文件内容,只列出50行以后的数据
tail ~/.bashrc
1.-
c, --bytes=K 输出最后的 K 个字节;
或者使用 -c +K 从每个文件的第K字节开始打印。
2.-f(-F), --follow[={name|descriptor}] 随着文件的增长,输出附加数据;(动态输出最新 的信息); 没有选项参数意味着“描述符”
3.-n, --lines=K 输出最后的K行,而不是最后的10行;
或者使用-n +K从第K个开始输出
4.-q, --quiet, --silent 当有多个文件参数时,不输出各个文件名
5.-v, --verbose 当有多个文件参数时,总是输出各个文件名
touch命令:修改文件时间或创建新文件
(22)在/tmp下创建一个空文件hello并查看时间
(23)修改hello文件,将日期调整为5天前
cd /tmp
touch hello
ls -l hello
touch -d “5 days ago” hello
1.如果文件不存在,使用touch命令默认创建一个空文件。
2.使用touch命令,如果文件存在则更新atime,mtime,ctime为当前时间。
3.-a更新atime和ctime 使用-a参数,touch文件时,文件存在只会更新atime和ctime为当前时间。
4.-m参数修改mtime 使用-m参数,touch文件时,文件存在只会更新mtime和ctime为当前时间。
5.-d参数将文件的atime,mtime,ctime按照设置修改。使用touch -d "3 years ago"可以将文件的三个时间改为3年前。
6.-t参数修改atime和mtime。使用touch -t "[[CC]YY]MMDDhhmm[.ss]"修改文件的atime和mtime
7.-at参数只修改atime。如果只想更新atime可以使用-at组合参数。
8.使用-mt参数只修改mtime。如果只想更新mtime可以使用-mt组合参数。
9.-r参数修改文件时间属性为另一文件时间属性。通过touch -r file1 file2,将file2的时间属性值修改为file1文件的时间属性。
10.-h更新软连接的时间属性。touch命令默认更新的是真实文件的时间属性,如果需要更新软连接的时间属性,需要使用-h参数。
chown命令:修改文件所有者权限
(24)将hello文件所有者改为root帐号,并查看属性
sudo chown root hello
ls -l hello
chown 命令用来改变某个文件或目录的属主(owner)和所属用户组(group)。仅限超级用户 root 使用。
在指定属主与所属用户组时有如下几种情况:
(1)如果只指定了属主,则只改变每个给定文件的属主,不会更改文件的用户组;
(2)如果属主后面跟一个冒号和用户组,则文件所属的用户组也将被更改;
(3)如果用户名后面有冒号但没有组名,则该用户将成为文件的属主,并且文件属组将更改为该用户的登录组;
(4)如果给定冒号和组名,但省略了属主,则只更改所属组。这种情况,chown 的功能等同于 chgrp;
(5)如果只给定一个冒号,或者整个操作数为空,则属主和用户组都不会更改。
OWNER 与 GROUP 之间的冒号可以使用点号替代。
(1)只修改文件属主为 root。
chown root FILE
注意,指定的属主必须是系统合法用户,可以查看文件 /etc/passwd 确定当前系统有哪些用户。
(2)修改文件属主和用户组均为 root。
chown root:root FILE
(3)只修改文件所属组为 root。
chown :root FILE
(4)递归修改所有的文件及子目录属主和所属组为 root。
chown -R root:root /DIR
(5)显示修改的动作,使用 -v 冗余模式输出。
chown -vR root:root /DIR
find命令:文件查找
(25)找出主文件夹下文件名为.bashrc的文件
find ~/.bashrc
tar命令:压缩命令
(26)在/目录下新建文件夹test,然后在/目录下打包成test.tar.gz
(27)解压缩到/tmp目录
cd /
sudo mkdir test
sudo tar -czvf test.tar.gz test
sudo tar -xzvf test.tar.gz -C/tmp
打包操作
1.-c 将多个文件或目录进行打包
2.-f <包名> 打包到指定文件,-f后面要紧跟完整的文件名(包括扩展名)
3.-v 打印出打包过程
4.-u 在tar包中添加新的文件(无法直接在压缩包中添加文件)
解包操作:
1.-x 解包操作
2.-f <包名> 解包到指定文件,f后面要紧跟完整的文件名
3.-C<目录> 指定目录为解包位置
4.-t 查看包里的文件
同时(解)打包并(解)压缩(最常用)
1.-z 压缩为".tar.gz"格式,或对.gz压缩包进行解压缩
2.-j 压缩为".tar.bz2"格式,或对.bz2压缩包进行解压缩
grep命令:查找字符串
(28)从~/.bashrc文件中查找字符串’examples’
(29)配置Java环境变量,在~/.bashrc中设置
(30)查看JAVA_HOME变量的值
grep examples ~/.bashrc
export JAVA_HOME=C:\Users\Administrator\AppData\Local\Android\Sdk
source .bashrc
echo $JAVA_HOME
一、管道
管道符号: |
管道的作用:管道的作用是将 前面命令的输出 作为后面命令的输入
二、grep 查找命令
1.grep是查找指令,支持模糊搜索
2.grep选项:
| grep -n 显示匹配行和行号
| grep -i 忽略大小写进行查找
三、grep 命令不与管道配合的语法
grep 选项 “查找内容” 路径
xxx | grep 选项 “查找内容”
命令一 和 命令二 的作用是一样的,只不过写法不同,一个利用了管道一个没有利用