Linux基础–基础命令
1. 学习目标
1.说出 Linux 下的目录结构和常见目录的作用
2.熟练使用 Linux 下的相对路径和绝对路径
3.熟练使用 Linux 下常用文件和目录操作相关的命令
4.熟练使用修改用户权限、用户和用户组相关的命令
5.熟练使用文件的查找和检索相关的命令
6.熟练掌握 Ubuntu 下的软件安装和卸载
7.熟练使用压缩工具完成文件或目录的压缩解压缩
2.命令解析器
shell就是命令解析器
作用:对用户输入的命令进行解析,调用对应的执行程序。
又是一种程序设计语言,具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,允许用户编写由shell命令组成的程序。
**查看当前 Linux 的默认 Shell: echo $SHELL**
**可以通过 cat /etc/shells 来查看 linux 支持的 shell。**
bath也是命令解析器,大多数情况下我们用的是bath。
shell快捷键
tab:自动补全命令和文件
crtl+p:向上遍历输入的历史命令。(上箭头)
crtl+n:向下遍历输入的历史命令。(下箭头)
使用history可以显示输入的所有命令。
绝对路径
从根目录开始:/home/itcast
绝对路径
从当前目录开始
.表示当前目录
..表示当前目录的上一级目录
3.常用命令
tree命令
tree:树状结构显示当前的文件信息。
tree 目录:树状结构显示指定的文件信息。
ls命令
ls:显示当前目录的文件信息
ls 目录或文件名 :显示指定目录下的文件信息
-a:列出当前目录的所有文件(all)
1. .当前目录
2. ..上一目录
3. 隐藏文件,以.开头
4. 普通文件
-R:以递归方式列出所有目录的内容
-l:列出文件的详细信息(用的最多)
参数之间可以捷结合使用:
- ls -la:列出当前目录下所有文件的相关信息,包括隐藏文件。
- la -ltr:列出当前目录下的文件,按照时间逆向排序。
cd命令
切换目录:cd+路径
cd /home/itcast 绝对路径
cd ./itcast/test 相对路径
cd . . / 返回上一级目录
cd . . /. . 返回上两级目录
切换到家目录
cd
cd~
cd /home/itcast
cd$HOME
临近两个目录直接切换
cd-
pwd命令
查看用户当前所处的工作目录
which命令
显示命令所在的目录,如which ls which cp
touch
如果文件不存在,创建新文件,如果文件存在,更新文件的最后修改时间。
使用方式:touch 文件名
mkdir命令
创建新目录,make directory
创建方式:mkdir 目录名
如果创建多级目录需要添加参数 -p 。
rmdir命令
删除空目录,只能删除空目录。
使用方式:rmdir目录名。
rm命令
1.删除文件:rm 文件名
2.删除目录:rm -r 目录名
参数:
-r: 递归删除目录,删除目录比如用这个
-i:提示用户是否删除文件或目录
-f:强势删除
cp命令 (拷贝)
使用方式:cp源目录或文件 目标目录或文件。
1. cp file1 file2(不存在)
2. cp file1 file2(存在)直接覆盖file2
3. cp file dir
4. cp -r dir1 dir 2(不存在)
5. cp -r dir1 dir 2(存在)dir1直接作为dir 2子目录,同时原来的dir1还存在。
6. cp -a file1 file2 (可以把file1的属性信息都拷贝过来)
mv命令(类似于剪切)
mv 源文件 目标文件
改名:
1. mv file1 file2(不存在):和剪切一样,file1没有,出现flie2.
2. mv file1 file2 (存在):没有了file1,file1将file2覆盖了。
3. mv dir1 dir2(不存在):没有了dir1,变成了dir2
移动:
4. mv file dir :把文件移动到另一个目录里.
5. mv dir 1,dir2(存在):dir1变成了dir2的子目录,原来的dir1不存在了。
4.常用查看命令
cat ,more,less,head,tail
cat命令
将文件一次性输出到终端.
使用方式: cat 文件名.
缺点:终端的显示内容有限,如果文件太长无法全部显示.
可用于文件重定向:cat file1>file2,相当于cp file1 file2.
more命令
文件内容分页显示到终端,但是只能一直向下浏览,不i能回退
使用方式:more 文件名
相关操作:
显示下一行:回车;
显示下一页:空格
推出:q(ctrl c )
less命令
文件内容分页显示到终端,可以自由上下浏览
使用方式:less
相关操作:
显示下一行:回车,ctrl+p,键盘向下键
显示上一行:ctrl+n ,键盘向上键
显示下一页:空格,pagedown
显示上一行:pageup
退出:q
head 命令
从文件头部开始查看前n行内容
使用方式:head -n 文件名
如果没有指定行数,默认前十行
taill 命令
从文件尾部开始查看最后n行内容
使用方式:tail -n 文件名
如果没有指定行数,默认后十行
一个终端比较常见的应用:显示日志:tail -f test.log
一个终端tail -f test.log,另一个终端:恶臭“hello world”>>test.log
软链接
软链接类似于window下的快捷方式。
如何创建软链接:
ln -s 文件名 快捷方式的名字
例如:ln -s aa aa.soft
目录也可以创建软链接
例如:ln -s tmp tmp.link
创建软链接注意事项:
源文件要使用绝对路径,否则软链接文件移动位置之后,就会找不到指向的文件了。
硬链接
使用方式:ln 文件名 硬链接的名字
ln tset.log test .log.hard
使用硬链接应注意事项:
1.硬链接不能建立在目录上。
2.硬链接对绝对路径没有要求。
3.硬链接不能跨文件系统。
硬链接文件和源文件的indoe(索引节点号)是相同的,文件系统的indoe要 求唯一,跨文件系统可能会使indoe不同,所以硬链接不能跨文件系 统。
硬链接本质:
1.硬链接本质是不同的文件名所在的indoe节点是相同的,相同的indoe结点指向了相同的数据块,所以他们的文件内容是一样的,文件内容会同步。
ls -i 文件名::可以查看文件的i节点
stat 文件名 :可以查看i节点信息
wc
显示文件行数,字节数,单词书数。
wc -l file 显示文件的总行数。。
wc -c file 显示文件的总字节数。
wc -w file 显示文件的总单词数。
wc file 显示文件行数,字节数,单词书数。
whoami
显示用户名
5用户权限,用户,用户组
修改文件权限chmod
linux是通过权限对文件进行控制的,通过使用chmod命令可以修改文件相关权限
-
文字设定法:
1.1 命令:chmod[who][+][-][=][mode] 文件名
1.1.1 操作对象【who】u--用户(user) g--同组用户(group) o--其他用户(other) a--所有用户(all)
1.1.2 操作符【±=】
+: 添加权限 -:取消权限 =:赋予给定权限并去取消其他权限
1.1.3 权限【mode】
r:读 w:写 x:执行
2.数字设定法
2.1 命令:chmod[+][-][=][mode] 文件名
1.1.1 操作符【±=】
+: 添加权限
-:取消权限
=:赋予给定权限并去取消其他权限
1.1.2 数字表示的含义【mode】
二进制表示(r,w,x):
0:没有权限
1:执行权限
2:写权限
4:读权限
修改文件所有者和所属组
1.修改文件所有者chown
用法:chown 文件所有者 文件名
2.修改文件所有者和所属组chown
用法:chown 文件所有者:文件所属组 文件名
6.find命令
1.按文件名查询:使用参数 -name
命令:find 路径 -name “文件名”
实例:find/home -name “*.c”
2.按文件类型查询:使用参数 -type
命令:find 路径 -type 类型
类型:
1. f:普通文件类型用f表示
2. d:目录
3. l:符号链接
4. b:块设备文件
5. c:字符设备文件
6. s:socket文件
7. p:管道文件
查找指定目录下的普通文件;find 路径 -type f
3.按文件大小查询:使用参数 -size
命令 :find 路径 -size 范围
范围 :
大于:+表示 ---- +100k
小于:-表示 ---- -100k
等于: 不需要添加符号 -- 100k
大小:
M 必须大写
k 必须小写
c 表示字节数
4.按文件日期查询
创建日期:-ctime -n/+n
-n:n天以内
+n:n天以外
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
5.按深度查询
-maxdepth(层数):
搜索n层以下的目录,搜索层数不超过n层
6.高级查找
例:查找指定目录下所有目录,并列出目录中文件详细信息
1. find ./ -type d -exec shell命令 {} \;
find ./ -type d -exec ls -l {} \;
2. find ./ -type d -ok shell命令 {} \;
find ./ -type d -ok ls -l {} \;
ok比较安全,特别是rm删除的时候
3. find ./ -type d | xarge shell命令
find ./ -type d | xarge ls -l
7.grep命令
grep -r (有目录) “查找的内容”搜索的路径:
-r 参数,若是目录,则可以递归搜索
-n 参数可以显示该查找内容所在的行号
-i 参数可以忽略大小写进行查找
-v 参数不显示含有某字符串
搜索当前目录下包含 hello world 字符串的文件:
grep -r -n "hello world" .------显示行号
grep -r -i -n "HELLO world" .------忽略大小小查找
8.find 和grep命令结合使用
先使用 find 命令查找文件,然后使用 grep 命令查找哪些文件包含某个字符串
find . -name "*.c"| xargs grep -n "main"
7.软件的安装和卸载
1 在线安装
软件安装: sudo apt-get install 软件名
软件卸载: sudo apt-get remove 软件名
更新软件列表: sudo apt-get update
清理安装包: sudo apt-get clean
清理的是缓存路径: /var/cache/apt/archives
2 软件包安装
在 Ubuntu 系统下必须有 deb 格式的安装包
软件安装
sudo dpkg -i xxx.deb
软件卸载
sudodpkg-r 软件名
8.LINUX中常用的压缩工具
gzip 和 bzip2:(一般不用)
不能压缩目录,只能一个一个文件进行压缩,压缩之后会使原文件消失。
gzip* : 压缩当前目录下所有的文件,但是目录不能压缩
gunzip* :解压当前目录下所有的.gz文件
bzip2 *: 压缩当前目录下所有的文件,但是目录不能压缩
bunzip2" :解压当前目录下所有的.bz2 文件
tar 工具(一般用这个)
相关参数说明:
z:用 gzip来压缩/解压缩文件。
j: 用 bzip2 来压缩/解压缩文件
c: create,创建新的压缩文件,与x 互斥使用
x: 从压缩文件中释放文件,与C 互斥使用
v: 详细报告 tar 处理的文件信息
f: 指定压缩文件的名字
t: 查看压缩包中有哪些文件
压缩:
tar cvf 压缩包名字.tar 原材料[要打包压缩的文件或目录]
tar zcvf 压缩包名字.tarz 原材料[要打包压缩的文件或目录]
tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
解压缩:
tar xvf 已有的压缩包(test.tar.gz)
tar zxvf 已有的压缩包(test.tar.gz)
tar jxvf 已有的压缩包 (test.tar.bz2)
解压到指定目录: 添加参数 -C (大写)
tar zxvf test.tar.gz -C 解压目录 (./mytest)
查看压缩包中有哪些文件
tar -tvf test.tar
rar工具
使用前需要安装 rar 工具
sudo apt-get install rar
压缩:
命令: rar a -r 要压缩的文件(含文件或者目录)
压缩目录需要使用参数: -r
rar a -r my aa bb dir----将aa bb dir 压缩到 my.rar,文件中
打包的生成的新文件不需要指定后缀
解压缩:
命令: rar x xxx.rar 压缩目录
rar x myrar ----将myrar 解压到当前目录
解压到指定目录,直接指定解压目录即可
rar x xxx.rar,目录
rar x my.rar TAR-----将myrar解压到 TAR目录下
注意: 若解压目录不存在则会报错
zip工具
压缩: zip 压缩包名 要压缩的文件(含文件或目录)
压缩目录需要使用参数-r
使用该命令不需要指定压缩包后缀
zip -r xxx file dir ---生成 xxx.zip 文件
解压缩:unzip 压缩包名
解压缩到指定目录 : 添加参数 -d 解压目录
unzip xxx.zip -d /home/itcast/test/day1
注意: 解压目录若不存在则会创建