目录
1. Linux是啥?
- Linux 是一个操作系统内核。
- 操作系统(Centos): 内核(Linux)+配套的程序。
- 发行版: Android, Ubuntu,Centos,Debain,Kall...公司用RedHat
- 起源与Unix 诞生于AT&T
- XShell, 终端工具, 通过网络方式访问一台远程的主机;vmware, 虚拟机, CTRL+alt 鼠标箭头出来。
- xshell -> ssh [ip]进行登陆;xshell的复制粘贴方法:右键-> 粘贴 / shift +insert 。
2. 为啥学Linux?
- 学的是Linux环境编程
- 到处都在用(全世界市场份额占领最高的系统)
- a 移动端(Android),b 服务器, c 嵌入式(投影仪), d 桌面(Linux桌面领域表现不佳)
3. 基本指令
1. ifconfig 查看ip, 查看linux系统中网卡信息。
2. ls指令 查看当前目录下的内容(即list)。home目录(~);d开头->目录;-开头->普通文件;l->链接文件。
- ls / 查看根目录(/)下的内容
- ls -a 查看当前目录下的所有文件包括隐藏文件
- ls -l 查看文件的详细信息, ls -l指令相当于 ll
- ls -lrt 查看文件的详细信息
3. pwd 查看当前目录相对于根目录的路径
- 绝对路径和相对路径。
- 绝对路径:从根目录出发到目标目录的路径。来看一个例子,假如我们现在有下图所示一个文件树。假如我们现在想要知道到test的绝对路径,那就是 /home/test
- 相对路径:. 或 ..开头的路径,先指定一个当前路径, 在这个基础上在执行一个相对路径。假如我们现在在test目录,我们想要到etc目录,那么它的相对路径就是 ../../etc(命令为cd ../../etc)
4.cd 切换目录
- cd / 切换到根目录
- cd 直接切回家目录
- cd - 返回你切换目录前的目录
- ctrl c-> (1) 重置当前进程;(2) 结束前台进程
- ctrl a ->回到你所输入当前命令的起始位置
- Ctrl + insert : 复制拷贝(部分用户需要搭配fn使用);Shift + insert : 粘贴(部分用户需要搭配fn使用)
5. touch 创建一个新的文件
6.mkdir 创建一个新的目录
- mkdir -p 确保目录名称存在,不存在的就建一个。
- 在工作目录下,建立一个名为 AAA 的子目录:mkdir AAA
- 在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。mkdir -p BBB/Test
7.rm 删除文件或者文件夹
- rm - r 递归删除
- rm -i 提示每一步的动作是否要执行
- rm -rf 递归强制删除
- rmdir 删除一个空目录
- *是通配符, 表示删除所有,删除时,可以搭配*使用,来匹配不同的文件名或者后缀
- rm * 表示删除当前目录下的文件
- rm -r * 表示删除当前目录下的所有文件或者文件夹
8.echo
- echo > 可以将字符重定向到文件当中,示例(echo "123456" > ts.txt 将字符串“123456”重定向到 ts.txt文件中)
9.cat 可以查看文件中的内容
- cat /dev/null > filename 可以重定向filename这个文件为空文件
10.more 查看文件内容
- 向下查看: 空格键, f
- 查看是哪个文件: :f
- 退出是 q
- more (num)行数 filename 从filename这个文件的第num行处开始查看
11.less 查看文件内容
- 可利用 pageup & pagedown翻页
- /bigger 查找字符串bigger
- n 查找下一个匹配的结果结果
- shirt n N 查找上一个匹配的结果
- less 打开大文件的时候效率很高,其他的文本编辑器大部分都会尝试把整个文件加载到内存中,less 只加载当前能看到的一部分,随着翻屏动作的发生在加载新的数据,这是一种在计算机领域中非常常见的思想方法->延时加载/懒加载。
12.head 查看文件的头部内容,默认是10行
- head -n num(行数) filename 从filename这个文件的头部开始展示num行
13.tail 查看文件的尾部内容, 默认10行
- tail -n [num] filename 从 filename这个文件的尾部开始展示num行
- tail -f filename 要跟踪名为 filename 的文件的增长情况,此命令显示 filename 文件的最后 10 行。当将某些行添加至 filename 文件时,tail 命令会继续显示这些行。 显示一直继续,直到按下(Ctrl-C)组合键停止显示。
14.mv
- a.移动文件夹或者文件
- mv [filename] [path] :将filename移动到path下
- mv [folder] [path]: 将folder移动到path下
- b.重命名
- mv [src_filename] [dest_filename]
- mv [src_folder] [dest_folder]
15.cp
- a.拷贝文件 cp [filename] [path]
- b.拷贝文件夹 cp -r [foldername] [path]
- c.既拷贝又重命名 cp [filename] [path+newfilename]
16.tar
- a.压缩(gzip) tar -zcvf [压缩完成后的文件名称] [待压缩的文件或文件夹]
- b. 解压缩(gzip) tar -zxvf [待解压缩的文件或者文件夹]
- c.压缩 (bzip2) tar -jcvf [压缩完成后的文件名称] [待压缩的文件或文件夹]
- d.解压缩(bzip2) tar -jxvf [待解压缩的文件或者文件夹]
17. zip
- a.压缩 zip [压缩后的名字] [待压缩的文件或者文件夹] -r
- b.解压缩 uzip[待解压缩的文件]
18.uname -a
- a.操作系统位数 64(x4) 或者32(i386)
- b.操作系统内核版本(el6 或者 el7)
19.ulimit -a
- a.查看系统的一些参数的变量值
- 栈的大小,系统允许的最大进程数,核心转储文件大小...
20.find
- a.在当前系统中查找某一个文件可以使用find命令
- b. find [path] -name [待查找的filename]
- find -name 1.txt > ~/result 按文件名查找,可以搭配重定向,保证结果被汇总到一个文件中
- 输出到显示器的两种方法
- 1.标准输出(文件IO章节讨论) 1> (1可以省略)
- 2.标准错误 2> (2不可以省略)
- find -name 1.txt 1> ~/result 2> ~/result_error
- cat result_error
- *通配符 大部分Linux指令都支持通配符 find -name 1.* > ~/result
21.grep
- a.在某一个目录下查找当前目录中的文件里面是否存在待查找的字符串
- b. grep -r "string" [path]
- c.grep可以配合管道符 ‘|’一起使用
22.date
- 1.格式化显示时间日期
- 2.计算时间戳,并且对时间戳进行换算.
- date +%Y-%m-$d %H%M%S
- 20:54:01 04/24/2019
- date+%s 获取时间戳
- date -d@[时间戳] 给定一个时间戳转换成格式化时间
- -s修改系统时间
23.su
- a.切换用户
- b.su 切换到root 用户 exit退出root
- c.su-uesrname
- d.su 和 su -root 区别
24.exit 退出
25.man 查看函数或者命令的用法或者注意事项
26.shell 当前使用的shell叫做bash,zsh,fish
- a.将命令呈递给操作内核
- b.将操作系统内核执行的结果呈现给用户
- 权限:
- a.root 普通用户 b.
- c.修改权限
- 1.去掉当前用户/组用户/其他用户的可读权限,chmod -r [filename]
- 2.只去掉当前用户的可读权限。 chmod u-r [filename]
- 3.增加可读权限 chmod +r [filename] chmod u+r [filename]
- 4.chmod u+r/u-r/g-r/g+r/o-r/o+r [filename] chmod u+w/u-w/g-w/g+w/o-w/o+w [filename] chmod u+x/u-x/g-x/g+x/o-x/o+x [filename]
- 5.可执行权限-> 拥有可执行权限,也就是x,不一定能够执行。
27.ping 检测网络是否畅通
- sudo yum install tree 安装树
- 使用树 在当前目录下 输入 tree
4. 基本指令练习
1、将之前创建的全部目录和文件名全部清理掉
rm -rf
2、在家目录下创建~/workspace/cmd 目录以及 ~/workspace/tmp/test 目录
mkdir -p ./workspace/cmd //-p递归创建目录
mkdir -p ./wordspace/tmp/test
3、进入~/workspace/cmd目录,创建一个空文件my.txt
cd workspace/cmd
touch my.txt
4、使用重定向>>与echo命令向my.txt文件写入hello world数据
echo "hello word" >> my.txt
5、将my.txt复制一份到~/workspace/tmp/test目录下
cp -r my.txt ~/workspace/tmp/test
6、将~/workspace/tmp/test目录移动剪切到~/workspace/下
mv ~/workspace/tmp/test ~/workspace/
7、清空~/workspace/下的空目录
rmdir ~/workspace/tmp/
7.rm -rf 循环删除当前目录和目录下的所有文件
rm -rf AAA //删除当前目录下的AAA目录,里面的所有目录和文件递归删除
8、刷新~/workspace/cmd/my.txt文件的时间属性与家目录时间相同
touch -r ~/workspace/cmd/my.txt ~
9、打印~/workspace/cmd/my.txt文件全部内容到终端显示上
cat ~/workspace/cmd/my.txt
10、分页显示/etc/passwd的内容到显示终端上
more /etc/passwd
11、分页显示的内容中匹配root字符
less /etc/passwd ?root
12、显示/etc/passwd文件的前五行数据
head /etc/passwd -n 5
13、显示/etc/passwd文件的后五行数据
tail /etc/passwd -n 5
14、动态打印~/workspace/cmd/my.txt最后的一行数据
tail -f ~/workspace/cmd/my.txt -n 1
15、显示/etc/passwd文件中包含root字符串的行,并显示行号忽略大小写
grep -n -i root /etc/passwd
16、查找~/workspace/目录下名字包含my字符串的文件
find ~/workspace/ -name "my*"
17、查找~/workspace/目录下最后一次修改时间在10分钟以内的文件
find ~/workspace/ -mmin -10
18、显示系统时间的时间戳,日历
date +%s
cal
19、以“月-日 时:分”格式显示当前系统时间
date +"%m -%n %h :%m"
20、修改文件~/workspace/cmd/my.txt的权限为651
chmod 0651 ~/workspace/cmd/my.txt
21、如何使系统默认创建的文件权限为666?记得修改回来
umask 0111
22、修改~/workspace/tmp目录的权限为其他用户可以进入但是不能查看其中内容也不能在其中创建文件
cd ~/workspace/
mkdir tmp
chmod 9751 tmp
22、修改~/workspace/cmd目录权限为可以浏览或进入或创建文件,但是不能删除别人的文件
chmod -t ~/workspace/cmd/
在Linux中,如果对一个目录具有写权限,那么我们就可以在这个目录下创建删除文件。
现在我们要创建这样一个目录,我们可以在这个目录里创建文件,但是其他用户不能删除这个文件。
在这里就要用到一个特殊的权限:粘滞位
在linux中有三种特殊权限,分别为:
SetUID = 4:在所有者设置的权限
SetGID = 2:在所属组设置的权限
粘滞位 = 1:在其他人的位置设置的 (使用 t 来表示)
23、打印/etc/passwd文件的第五行数据
head -n 5 /etc/passwd | tail -n 1
24、返回上一级目录,返回家目录
cd ~ //返回家目录
cd ../ //返回上一级目录