Linux 学习
unix 中一切皆文件,其目录树如下:
命令格式 :
-
指令, 选项, 参数等这几个中间以空格来区分,不论空几格 shell 都视为一格。所以空格是很重要的特
殊字符
- 按下[Enter]按键后,该指令就立即执行。[Enter]按键代表着一行指令的开始启动
-
指令太长的时候,可以使用反斜杠 () 来跳脱[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 创建目录
cd 变换目录
pwd 显示当前目录
rmdir 删除目录
15,touch 创建文件
16 ,绝对路径与相对路径
-绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc;
-相对路径:相对于目前路径的文件名写法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正开头不是 /
就属于相对路径的写法
. 代表当前的目录,也可以使用 ./ 来表示
.. 代表上一层目录,也可以 ../ 来代表。
17, 切换用户 代码:su 用户名
18, 新用户以及组 的添加,删除
-添加:
用户添加:
代码 useradd 用户名
密码添加:
代码:passwd 密码
组的添加:
代码:groupadd 组名
-删除:
用户删除:
代码:userdel 用户名
删除组:
代码:groupdel 组名
19,家目录:~
20,修改文件名 代码:mv 原文件名 新文件名
21,排序命令:
1)sort
代码: sort [-f/b/M/n/r/t/u/k] [file or stdin]
选项与参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思
2)uniq 将重复的资料仅列出一个显示
代码: uniq [-i/c]
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
3)wc 计算输出的讯息的整体数据
代码:wc [-l/w/m]
选项与参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
22,撷取命令: cut, grep:
cut -d'分隔字符' -f fields <==用于有特定分隔字符
cut -c 字符区间 <==用于排列整齐的讯息
选项与参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分区成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
例如:
echo ${PATH} | cut -d ':' -f 5
# 如同上面的数字显示,我们是以『 : 』作为分隔,因此会出现 /home/dmtsai/.local/bin
#
那么如果想要列出第 3 与第 5 呢?,就是这样:
echo ${PATH} | cut -d ':' -f 3,5
grep 则是分析一行讯息, 若当中有我 们所需要的信息,就将该行拿出来
grep [-a/c/i/n/v] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
23,双重导向:tree
代码: tee [-a] file
选项与参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
24, wc 计算文件的Byte数、字数、或是列数
代码:wc -c/l/w/--help/--version 文件名
参数:
- -c或--bytes或--chars 只显示Bytes数。
- -l或--lines 显示行数。
- -w或--words 只显示字数。
- --help 在线帮助。
- --version 显示版本信息。
在默认的情况下,wc将计算指定文件的行数、字数,以及字节数,如下:
[root@rfjmy7h77vmu src]# wc socket_client.py
18 27 441 socket_client.py
-------------------------------------
统计多个文件,代码wc 文件1 文件2 如下:
[root@rfjmy7h77vmu src]# wc socket_client.py socket_server.py
18 27 441 socket_client.py
28 43 665 socket_server.py
46 70 1106 total
25,特殊符号
是将光标的位置移动到本行开始的位置
是将光标的位置退回一位
是换行的意思,代表另起一行
是水平制表符,即缩进4个空格(8个字节的大小),相当于tab键
end = '' 代表末尾不换行
通配符
热键
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,
Linux 文件扩展名与文件放置
-
*.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用 shell 写成的,所以扩展名就编成 .sh 啰;
-
*Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不 同的压缩软件,而取其相关的扩展名啰!
*.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网 页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算 后的网页结果呢!
linux 目录树架构图如下: