Linux 基本指令和开发环境(命令行操作)

Linux 是操作系统内核 ,内核是来负责对于软件资源和硬件设备的管理。

操作系统 = 内核 + 一组配套的应用程序搭建Linux 安装Xshell ,是远程终端工具,可以和vmware(虚拟机)互动,可远程访问CentOS镜像 Linux 完全可以安装在物理电脑上(真实电脑)

Linux基本操作

ls(list) 相当于windows上的文件资源管理器,桌面 ls -l 更详细的显示

ls -a 列出目录下的所有文件

ls -r 反向排序

ls -t 以时间排序

ll 列出的信息更加详细,有时间,是否可读写等信息。 ll的结果的的一个字母为 -表示是普通文件d的目录

在Linux终端中(xshell)不能ctrl+c +v 复制剪贴 ctrl+insert复制 shift+insert 剪切

tab 能够快速完成命令的补全

快速两个tab提示出所以可能的命令

clear 清屏 ctrl+l也可以清屏

Pwd 查看当前目录的路径
在这里插入图片描述
/home/test是test用户 —登录主机进就入的默认目录,这个目录就叫做test用户的home目录

~ 表示用户的home目录

cd: 修改当前目录

cd … 返回上级目录

cd - 返回最近访问目录

绝对路径 /home /test 以 /开头的

相对路径 以.或者…开头 从当前目录出发经历若干结点达到最终目录

通道相对目录,必须明确当前目录是什么

ctrl+c 有特定的功能 终止当前程序,或者重新输入一个命令

不管当前目录是什么,直接 cd ~都能进入home目录 cd 也是同样效果 cd~工作目录

cd -可以 两个目录之间的来回转换

touch 创建一个新文件

mkdir 创建目录 mkdir -p test/test1 递归创建多个目录

rmdir(rm) 是删除命令 删除文件/目录

rm -r 递归删除 删除目录及其下所有文件

如何理解递归删除? 递归删除是后序遍历。

rm -f 即使文件属性为只读(即写保护),亦直接保护

rm -i 删除前逐一询问确认

rm -rf c 强制删除

Man 能够查看命令的方法 jk向下向上 q退出

Man man 前三 man3

cp 拷贝文件/目录 指定两个以上的文件/目录,且最后目的是一个已存在的目录,则把前面指定的所有文件复制到此目录中。

cp -r 递归式的拷贝 将指定目录下单文件与子目录一并处理

强制拷贝 cp -f 无论目的文件/目录文件是否存在

mv(move) 移动文件/目录 亦可以重命名 touch一个trash目录配合mv命令可以充当垃圾桶 , trash/a.txt ./

  • 当第二个参数类型是文件时,mv完成文件重命名,此时源文件只能有一个

  • 是已存在的目录名称时,源文件/目录可以有多个,mv将个参数指定的源文件移至目标目录中

mv -f 若目标文件已存在,强制覆盖

mv -i 若存在,询问是否覆盖

cat 查看文件内容 -n 对输出的所有行编号 -b 非空输出行编号 -s 不输出多行空
tac 将文件最后一行开始倒过来将内容输出到屏幕上

more 类似cat ,, 不能往前翻

使用less 可以打开一个较大的文件,效率很高

less打开文件的时候,只把一小部分数据记载到内存中,而大部分其他的编辑器都是之间吧整个文件都加载(延迟加载/懒加载)

-i 忽略搜索时候的大小写

-N 每行行号 /向上搜索 ?向下 n: 重复前一个搜索 N: 反向重复前一个

head 与 tail 显示开头/结尾某个数量的文字区块 默认打印10行

echo 输出一个字符串

echo >重定向 把字符串写道文件中

echo ” ” > a > 重定向,覆盖之前内容 >> 追加重定向 在原有的内容进行添加

Yum install 管理器 安装一个程序

Su 切换到管理员 root exit / ctrl+d 可切回

使用命令操作的好处:

1.避免出现访问卡顿的问题

2.更方便进行自动化批量的操作

3.Git 在命令行下的使用

还原快照 ,虚拟机里——快照,, 提前备份 还原之前状态,版本还原解决策略 最好经常关机状态备份

在这里插入图片描述
tree 树形图
在这里插入图片描述

whereis 能够找到某个指令的可执行文件路径

时间相关的指令

date显示

date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%

2.在设定时间方面

date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳

时间->时间戳:date +%s即获取到当前的时间戳
时间戳->时间:date -d@1508749502

Unix时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒。

闰秒:闰秒,是指为保持协调世界时接近于世界时时刻,由国际计量局统一规定在年底或年中(也可能在季末)对协调世界时增加或减少1的调整。由于地球自转的不均匀性和长期变慢性(主要由潮汐摩擦引起的),会使世界时(民用时)和原子时之间相差超过到±0.9秒时,就把协调世界时向前拨1秒(负闰秒,最后一分钟为59秒)或向后拨1秒(正闰秒,最后一分钟为61秒); 闰秒一般加在公历年末或公历六月末。
在这里插入图片描述
获得任意格式化的时间 srand(time(NULL)

格式化时间和时间戳的换算 rand()

头文件函数 inclue<stdint.h>

假设给定一个时间戳,如何计算三天之前的同一刻的时间戳是多少??一年之前的今天呢?

  • 。。。。。。。。下个文档回答

find -name 在目录结构中按照文件名来查找文件 * 表示通配符.代表着多个字符

大部分Linux指令都支持通配符 P1

cal 显示阳历日历 -3 系统前一月,当前月,下一月 -j 在当年的第几天 -y 当前年份的日历

grep在文件中搜索字符串,将找到的行打印出来常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

在这里插入图片描述

zip/unzip指令

语法: zip 压缩文件.zip
目录或文件功能: 将目录或文件压缩成zip格常用选项:-r 递 归处理,将指定目录下的所有文件和子目录一并处理
举例

将test2目录压缩:zip test2.zip test2/*
解压到tmp目录:unzip test2.zip -d /tmp

tar指令(重要):打包/解包,不打开它,直接看内容

tar [-cxtzjvf] 文件与目录 … 参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

uname用来获取电脑和操作系统的相关信息

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

热键
  • [Tab]按键—具有『命令补全』和『档案补齐』的功能

  • [Ctrl]-c按键—让当前的程序『停掉』

  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File』的意思;另外,他也可以用来取代exit

关机命令shutdown

-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
init 0也可以关机

Linux权限管理
a.文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

b.基本权限

i.读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有新增删除移动目录内文件的权限
iii.执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限

c.文件类型和访问权限(事物属性)

在这里插入图片描述

d.文件权限的表示方法

.字符类表示方法
在这里插入图片描述

e.文件访问权限设置的相关方法
1) chmod 修改文件的权限

权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

举例

chmod u-r u+r 只处理当前文件拥有者

chmod g-r 操作同组者的权限

chmod o-r 其他用户的权限

chmod 664

chmod 777
在这里插入图片描述
绿色——可执行
在这里插入图片描述

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod ( 三位八进制的数字 ) 修改文件权限

— — — rwx三个位 777三种情况

二进制000110100
八进制064
2)chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例

chown user1 f1
chown -R user1 filegroup1

3)chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例chgrp users /abc/f2d)

4)umask

功能:查看或修改文件掩码新建文件夹默认权限=0666新建目录默认权限=0777但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。 umask 去掉在xx中出现的权限 文件的最终权限是缺省权限去掉umask中出现的权限
实例

umask 755
umask //查看
umask 044//设置

f.关于权限的总结
  • 目录的可执行权限是表示你可否在目录下执行命令。
  • 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  • 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
    所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

粘滞位

  • 创建新用户: sudouseradd 【用户名】
  • 为新用户添加密码: sudo passwd 【用户名】
  • 删除用户 userdel -r 【用户名】
  • 切换用户 su 【用户名】

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限,(设计不足) 怎么解决————粘滞位

[root@localhost yhs]# chmod 777 /home/
[root@localhost yhs]# ls /home/ -ld
drwxrwxrwx. 6 root root 52 Apr 28 05:25 /home/
[root@localhost yhs]# touch /home/root.c
[root@localhost yhs]# ls -l /home/
total 4
drwx------.  5 hsy  hsy   107 Apr 28 05:27 hsy
-rw-r--r--.  1 root root    0 Apr 28 05:39 root.c
drwx------. 12 yhs  yhs  4096 Apr 28 04:56 yhs
drwx------.  3 yhs2 yhs2   78 Apr 28 05:16 yhs2
drwx------.  3 yhss yhss   78 Apr 28 05:13 yhss

[root@localhost yhs]# su - hsy
Last login: Sun Apr 28 05:27:41 PDT 2019 on pts/1
[hsy@localhost ~]$ rm /home/root.c      // hsy可以删除root创建的文件
rm: remove write-protected regular empty file ‘/home/root.c’? y
[hsy@localhost ~]$ exit
logout
[root@localhost hsy]# chmod +t /home/     //加上粘滞位
[root@localhost hsy]# ls -ld /home/
drwxrwxrwt. 6 root root 52 Apr 28 05:40 /home/
[hsy@localhost ~]$ rm /home/yhs/test.c
rm: cannot remove ‘/home/yhs/test.c’: Permission denied      //不允许的操作

所谓的执行权限是一个程序能执行的必要条件,但非充要条件。

必须文件满足系统可执行格式要求才是真的能执行,平时敲的大部分指令都是可执行指令

可以把Linux 上的文件发到 windows上 Windows 到Linux 拖拽 都不可以执行
在这里插入图片描述

file指令:

功能说明:辨识文件类型。
语法:file [选项] 文件或目录…
常用选项
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

使用 sudo分配权限

(1)修改/etc/sudoers 文件分配文件

chmod 740 /etc/sudoers
vi /etc/sudoer

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令
(2)使用 sudo 调用授权的命令

$ sudo –u 用户名 命令

实例

sudo -u root /usr/sbin/useradd u2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值