热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux学习

Linux学习unix中一切皆文件,其目录树如下:   命令格式:  指令,选项,参数等这几个咚咚中间以空格来区分,不论空几格shell都视为一格。所以空格是很重要的特殊字符按下[

Linux 学习

unix 中一切皆文件,其目录树如下:

 

 

 

命令格式 : 

 



  1. 指令, 选项, 参数等这几个咚咚中间以空格来区分,不论空几格 shell 都视为一格。所以空格是很重要的特

    殊字符



  2. 按下[Enter]按键后,该指令就立即执行。[Enter]按键代表着一行指令的开始启动 


  3. 指令太长的时候,可以使用反斜杠 (\) 来跳脱[Enter]符号,使指令连续到下一行。注意!反斜杠后就立刻接 特殊字符,才能跳脱!


    a. 在 Linux 系统中,英文大小写字母是不一样的。举例来说, cd 与 CD 并不同。 





 unix指令代码

1,cd 是指定位到哪个目录,如下:

[root@rfjmy7h77vmu ~]# cd /usr/local/src/
[root@rfjmy7h77vmu src]#

2,ls (即:list)显示当前位置下的文件 ,例如:

[root@rfjmy7h77vmu src]# ls
socket_client1.py socket_client.py socket_server.py

 

ls -al (缩写ll)是查看当前位置下的『所有隐藏档与相关的文件属性』 例如:

[root@rfjmy7h77vmu src]# ll
total 4
-rw-r--r--   1       root      root          442      Jun 14 14:40     socket_client1.py


[ 权限 ]    [连结]  [拥有者] [群组]  [文件容量]   [ 修改日期 ]        [ 文件名 ] 


3, date 查看当前时间,如下:

-date 查看当前时间

[root@rfjmy7h77vmu src]# date
Mon Jun 14 15:18:46 CST 2021

date +%Y/%m/%d 查看时间年月日格式是:年/月/日

[root@rfjmy7h77vmu src]# date +%Y/%m/%d
2021/06/14

date +%H:%M 查看具体时间

[root@rfjmy7h77vmu src]# date +%H:%M
15:24

4,cal 查看日历

cal 查看当前时间的日历

[root@rfjmy7h77vmu src]# cal
June 2021
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

cal 年份 查看具体哪年的全部日历

cal year 是查看2021年所有的日历

cal 2021 是查看2021年所有的日历

cal month year  查看具体哪年哪月的日历。如下:

[root@rfjmy7h77vmu src]# cal 10 2015
October 2015
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

 

5, 计算器 bc

bc 可以用计算的运算符:

1),加法 +

2),减法 -

3),乘法 *

4),除法 /

5),指数 ^

6),余数 %

例如:

[root@rfjmy7h77vmu src]# bc
bc 1.06.95

Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
10*2
20
quit
[root@rfjmy7h77vmu src]#

退出bc 代码是:quit

注意:因为 bc 预设仅输出整数,如果要输出小数点下位数,那么就 必须要执行 scale=number ,那个 number 就是小数点位数 如下:

[root@rfjmy7h77vmu src]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
10/100
0
scale = 2
10/100
.10

6,--help 查看有哪些具有功能,如下:

[root@rfjmy7h77vmu src]# date --help

7,man  比help更具体告诉有哪些功能,怎么用

退出man 环境代码:q

例如:

[root@rfjmy7h77vmu src]# man date

 在man环境中的操作如下:

 

 

8,info 也是在线查询帮助。根 man 差不多

例如代码:info date 

9, linux 系统中数据同步写入磁盘代码:sync 

10,linux系统惯用的关机指令:shutdown


shutdown 可以达成如下的工作:




  •   可以自由选择关机模式:是要关机或重新启动均可;



  •   可以设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间才关机。



  •   可以自定义关机讯息:在关机之前,可以将自己设定的讯息传送给在线 user 。



  •   可以仅发出警告讯息:有时有可能你要进行一些测试,而不想让其他的使用者干扰,或者是明白的告诉使

    用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但却不是真的要关机啦! 




简单的语法规则为:


[root@study ~]# /sbin/shutdown [-krhc] [时间] [警告讯息] 选项与参数:



-k : 不要真的关机,只是发送警告讯息出去!

-r : 在将系统的服务停掉之后就重新启动(常用)

-h : 将系统的服务停掉后,立即关机。 (常用)

-c : 取消已经在进行的 shutdown 指令内容。



时间 : 指定系统关机的时间!时间的范例底下会说明。若没有这个项目,则默认 1 分钟后自动进行。
范例:

[root@study ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'

Broadcast message from root@study.centos.vbird (Tue 2015-06-02 10:51:34 CST):

I will shutdown after 10 mins

The system is going down for power-off at Tue 2015-06-02 11:01:34 CST! 



取消这次的关机指令:『 shutdown -c 』

如果你什么参数都没有加, 单纯执行 shutdown 之后, 系统默认会在 1 分钟后进行『关机』的动作喔! 



11,重新启动,关机: reboot, halt, poweroff 

12, cp 复制

代码:cp 来源文件 目标文件 例如:

[root@rfjmy7h77vmu src]# cp socket_client1.py socket_client2.py
[root@rfjmy7h77vmu src]# ll
total 16
-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py
-rw-r--r-- 1 root root 442 Jun 14 22:55 socket_client2.py

13: rm 删除文件

  rm -rf 删除目录

[root@rfjmy7h77vmu src]# rm socket_client2.py
rm: remove regular file ‘socket_client2.py’? y
[root@rfjmy7h77vmu src]# ls
socket_client1.py socket_client.py socket_server.py

14,mkdir 创建目录

15,touch 创建文件

 

 

 

 

 

 

 

Linux 的文件权限与目录配置


在 Linux 里面,任何一个文件都具有『User, Group 及 Others』 


默认的情况下:

所有的系统上的账号与一般身份使用者,还有那个 root 的相关信息,都是记录在/etc/passwd 这个文件内的。

个人的密码则是记录在/etc/shadow 这个文件下

Linux 所有的组名都纪录在/etc/group 内! 

文件权限:r w x

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容

w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件)

x (eXecute):该文件具有可以被系统执行的权限 



文件属性:

ls -al (缩写ll)是查看当前位置下的『所有隐藏档与相关的文件属性』 例如:

[root@rfjmy7h77vmu src]# ll
total 4
-rw-r--r--   1       root      root            442          Jun 14 14:40     socket_client1.py


[ 权限 ]      [连结]  [拥有者]   [群组]     [文件容量]    [ 修改日期 ]        [ 文件名 ] 

1, 第一栏:


-rw-r--r-- 代表这个文件的类型与权限(permission) 


第一个字符代表这个文件类型 例如:目录、文件或链接文件等等:


o 当为[ d ]则是目录,例如上表档名为『.config』的那一行;

o 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;

o 若是[ l ]则表示为连结档(link file);

o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)例如:硬盘,软盘

o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) 

o 若是[ s]则表示为数据接口文件(sockets)



  • 这种类型的文件通常被用在网络上的数据承接了。我们可以启动一 个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了 ,最常在/run 或/tmp 这些个目录中看到这种文件类型了。 



o  若是[ p ]则表示为数据输送文件(FIFO, pipe)



  • FIFO 也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题 





 

接下来的字符中以三个为一组且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)[ w ]代表 可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出 现减号[ - ]而已。


o 第一组为『文件拥有者可具备的权限』即:user,以-rw-r--r--为例, 该文件的拥有者 可以读写,但不可执行;

o 第二组为『加入此群组之账号的权限』即:group;以-rw-r--r--为例, 该group 权限是只可读


o 第三组为『非本人且没有加入本群组之其他账号的权限』即:others,以-rw-r--r--为例, 该others 权限是只可读


2,第二栏:

第二栏表示有多少档名连结到此节点(i-node) 

3,第三栏:


第三栏表示这个文件(或目录)的『拥有者账号』 


4,第四栏


第四栏表示这个文件的所属群组 


5,第五栏


第五栏为这个文件的容量大小,默认单位为bytes;



6,第六栏

第六栏为这个文件的建档日期或者是最近的修改日期 

显示出完整的时间格式代码:ls -l --full-time 例如:

[root@rfjmy7h77vmu src]# ls -l --full-time
total 12
-rw-r--r-- 1 root root 442 2021-06-14 14:40:10.215033603 +0800 socket_client1.py

7,第七栏


第七栏为这个文件的档名 

比较特殊的是:如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』 





Linux文件权限的用途:

-系统保护的功能

-团队开发软件或数据共享的功能:

-未将权限设定妥当的危害 


如何改变文件属性与权限 

chgrp :改变文件所属群组

代码:chgrp 需要修改成的组名 文件名

注意:此方法修改组名是要求/etc/group 下要有你所修改的组名,否则会修改失败

[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root users 442 Jun 14 14:40 socket_client1.py

******************************************

[root@rfjmy7h77vmu src]# chgrp root socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 

chown :改变文件拥有者

代码:chown 需要修改成的账号名称 文件或目录

      chown 需要修改成的账号名称:组名 文件或目录


注意:/etc/passwd 这个文件中有纪录的用户名称才能改变 

l例如:

[root@rfjmy7h77vmu src]# chown bin socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 bin root 442 Jun 14 14:40 socket_client1.py

******************************************

[root@rfjmy7h77vmu src]# chown root:root socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

 


chmod :改变文件的权限, SUID, SGID, SBIT 等等的特性   


权限的设定方法有两种, 分别可以使用数字或者 是符号来进行权限的变更 

-数字类型改变文件权限  代码: chmod 需要修改成的权限数字 文件名


文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中, 我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r 对应的数字是:4

w对应的数字是:2

x对应的数字是:1



每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数 则是:

owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

例如:

socket_client.py 文件原权限是:-rw-r--r-- 

[root@rfjmy7h77vmu src]# chmod 770 socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rwxrwx--- 1 root root 442 Jun 14 14:40 socket_client1.py

-符号类型改变文件权限 

chmod 身份=修改后权限 文件名

chmod 身份+需要加上的权限 文件名


linux权限分别是(1)user (2)group (3)others 三种身份啦!那么我们就可以藉由 u, g, o 来代表三种身份的权限! 


a 则代表 all 亦即全部 的身份! 那么读写的权限就可以写成 r, w, x  ,也就是可以使用底下的方式来看 



 

 

原来的:-rw-r--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

给user 加上可执行权限 代码如下:

-------------------------------------------

[root@rfjmy7h77vmu src]# chmod u=rwx socket_client1.py
[root@rfjmy7h77vmu src]# ll
total 12
-rwxr--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

--------------------------------

[root@rfjmy7h77vmu src]# chmod u+x socket_client1.py

[root@rfjmy7h77vmu src]# ll

total 12
-rwxr--r-- 1 root root 442 Jun 14 14:40 socket_client1.py

----------------------------

给所有身份都加上可执行权限

[root@rfjmy7h77vmu src]# chmod a+x socket_client1.py

[root@rfjmy7h77vmu src]# ll

total 12
-rwxr-xr-x 1 root root 442 Jun 14 14:40 socket_client1.py

权限对文件/目录的作用如下图:


 

 

 

Linux 文件扩展名




  •   *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用 shell 写成的,所以扩展名就编成 .sh 啰;



  •   *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不 同的压缩软件,而取其相关的扩展名啰!





 *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网 页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算 后的网页结果呢! 


 


 

 

 

 

 

 linux 目录树架构图如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

热键

1,[Tab]按键 

tab键有:命令补全』与『文件补齐』的功 能 


-[Tab] 接在一串指令的第一个字的后面,则为『命令补全』; 

 如下:

[root@rfjmy7h77vmu src]# ca[Tab]按键 [Tab]按键 

cacertdir_rehash     cache_repair     cal callgrind_control     cat
cache_check       cache_restore      ca-legacy                   capsh catchsegv
cache_dump       cache_writeback     caller


-[Tab] 接在一串指令的第二个字以后时,则为『文件补齐』! 

如下:

[root@rfjmy7h77vmu src]# ls -al ~/.bash[Tab]按键 [Tab]按键 
.bash_history      .bash_logout      .bash_profile .bashrc

-若安装 bash-completion 软件,则在某些指令后面使用 [tab] 按键时,可以进行『选项/参数的补齐』功能! 如下:

[root@rfjmy7h77vmu src]# date --
--date    --help        --reference=    --rfc-3339=    --universal
--date=    --iso-8601    --rfc-2822      --set= --version

2,[Ctrl] +c按键,是中断目前正在运行的程序

先按着[Ctrl] 不放,且再按下 c 按键,是组合按键 

 

3, [Ctrl]+d 按键 

-键盘输入结束(End Of File, EOF 或 End Of Input)』的意思!

-另外,他也可以用来取代 exit 的输入呢!例如你想要直接离开文字接口,可以直接按下[Ctrl]+d 就能够直接离开了(相当于输入 exit 啊!)。 

4, [shift]+{[PageUP]|[PageDown]}按键 



纯文本的画面中执行某些指令,这个指令的输出讯息相当长啊!所以导致前面的部份已经不 在目前的屏幕画面中, 所以你想要回头去瞧一瞧输出的讯息,那怎办?其实,你可以使用 [Shift]+[Page Up] 来往前翻页,也能够使用 [Shift]+[Page Down] 来往后翻页 



5,

 



推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
author-avatar
mobiledu2502887867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有