Linux基础命令知识

2018-07-16 02:34:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

 
 
 
 
 
命令
1.tty (查看登录平台数量及用户)
2.who (查看当前平台及用户) -r(同3)
3.runlevel (查看当前运行级别)
4.whoami (当前登录用户) *
5.init3/5(切换字符/图形界面) 0/6(关机/重启“同16”) *
6.lsblk (查看磁盘,块设备)
7.free (查看内存) -m/g(以MB/GB为单位) *
8.nano (修改文本)
9.ifconfig (查看网络设备) ******* 1
10.ls (显示目标列表) *
11.ll (显示当前目标详细文件) *
12.cat (查看文本文件) *
13.rz (批量上传文件到linux服务器“不能上传文件夹”) *
14.sz (批量上传文件到windows服务器) *
15.cp (复制一个或多个文件到目录目标) *
16.reboot(重启)
17.pwd (显示当前用户工作目录绝对路径) *
18.echo(显示文字) ${A}123 (前提A=某个数) *
19.enable (查看内部命令) -n XXX (查看禁用的XXX内部命令)
20.exit (退出当前用户)
21.logout (注销当前用户)
22.rm -rf(删除文件或目录) *
23.type (判断是内部命令还是外部命令)
24.hash (打开缓存表) -r XX (清除XX缓存记录) -r (清除所有缓存)-p /xx X ("/xx"命 令路径起别名为X)
25.cd XXX (进入XXX目录) *
26.alias (查看别名) XX=“YY” (定义“YY”的别名)
27.unalias YY(取消"YY"的别名) -a(取消所有的别名)
28.date (查看系统时间) xxxxxx.Y (修改月日时分年Y秒)或 date -s '2020-1-5 12:30:50' (修改时间) *
29.clock (主板时间) -s (覆盖系统时间) -w(覆盖主板时间)
30.date +%Y-%m-%d-%H-%M-%S(显示系统时间格式 年-月-日-时-分-秒) "+%F %T"(%F显示年月日 %T显示时分秒) *
31.date -d@距离秒数 “+%Y-%M-%D-%s-%m-%s” *
32.reset (重置,复位)
33.shutdown (关机) -r (重启“同16”) -h +xx (xx分钟后关机)
34.ifconfig (显示或配置网络设备) *
35.screen -S XX(创建会话XX) -x XX(加入会话XX)
36.cal (查看日历) XXX 查看(查看XXX年日历) Y XXX (查看XXX年Y月日历)
37.touch (创建文件) *
38.history (查看当前历史记录) !XX(执行某条历史记录)-a (清空命令历史) -d XX (删除第XX条的命令) *
39.rpm -ivh (显示安装过程和套件相关信息) XXX(安装XXX目录后缀为RPM的文件) *
40.mount XXX YYYY(挂载XXX目录下的光盘到YYY目录下) *
41.df (查看已加载的光盘) *
42.which XXX (查看XXX命令路径) *
43.gedit (图形编辑工具)
44.useradd XXX (创建一个XXX的用户) *
45.su XXX (切换到XXX的用户) *
49.halt:关闭系统 -p(关闭系统并关闭电源) -d(关闭系统,但不留下纪录)
50.hwclock
51.info:在info后面输入命令的名称就可以查看该命令的info帮助文档了:
53.mandb:linux自带的帮助文档mandb
53.makewhatis
55.poweroff:当需要系统关闭电源时,内核调用用户空间的/sbin/poweroff命令来完成。
56.screen:Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用
57.shutdown:关机
58.tree:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。
60.whatis
61.whoami:显示登录名whoami 命令在有 root 用户权限时也有效,因为它不检查 /etc/utmp 文件。显示计算名和用户
62.who am i
63.w:打印当前系统活动摘要。
64.wc:计算器
 
 
bytes
bits
8bits = 1 Bytes
 
100M
B 1024Bytes=1KB
KB 1024KB=1M
MB 1024MB=1GB
GB 1024GB=1TB
TB 1024TB=1PB
PB 1024PB=1EB
 
把十进制转化为二进制
bc
obase=2
192
11000000
二进制转化为十进制
bc
ibase=2
1010101
85
 
虚拟机当中释放鼠标 Ctrl + ALT
在安装环境中输入 ctrl + alt +f2
 
centos5及之前
hda:ida
sda:scsi、sata、sas、usb
centos6及之后
sda:
vda: 虚拟机
xvda: 虚拟机
一切皆文件
 
XShell、SecureCrt、Putty
Shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行
shell也被称为LINUX的命令解释器
Shell:人机交互的语言
GUI:Gnome、KDE、Windows、IOS、Android
CLI:Dos、cmd、powershell、sh、
 
cat:查看文件内容
[root@centos6 ~]# cat /etc/shells 查看当前系统所安装的shell
[root@centos6 ~]# echo $SHELL 查看当前使用的何种shell
 
which 查看命令的路径
who am i 和 who 和whoami 的区别
 
enableenable既可以查看内部命令,同时也可以判断是否为内部命领
-n 查看所有已禁用的内部命令
-a 查看所有的内部命令
enable command 启用指定的内部命令
enable -n command 禁用指定的内部命令
配合 | wc -l 可查看数量
[root@linuxeye ~]# enable -a #查看内部命令
[root@linuxeye ~]# enable whiptail #非内部命令
-bash: enable: whiptail: not a shell builtin
[root@linuxeye ~]# enable pwd #是内部命令
 
命令提示符
例如: PS1="[\[\e[32m\]\u\[\e[36m\]@\h_v6\[\e[31m\]\[\e[0m\] \W]\$ "
[root@localhost ~]#
# 管理员 $ 普通用户
显示提示符格式1:[root@localhost ~]#echo $PS1
修改提示符格式2 PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户 \h 主机名简称 \H 主机名 \w 当前工作目录 \W 当前工目录基名 \t 24小时时间格式 \T 12小时时间格式 \! 命令历史数 \# 开机 后命令历史行
每个用户都有默认shell设定;
查看当前shell种类:
~]# echo $SHELL
$SHELL:是环境变量
 
在shell中可执行的命令有两类
 
内部命令: 由shell自带的,而且通过某命令形式提供
help 内部命令列表
enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令
外部命令: 在文件系统路径下有对应的可执行程序文件
查看路径:which -a |--skip-alias ; whereis
区别指定的命令是内部或外部命令 type COMMAND
命令执行的优先顺序 : alias > 内部 > 外部(hash > PATH)
 
hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径 ($PATH)下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解
释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。
利用hash缓存表可大大提高命令的调用速率
 
 
hash常见用法
hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 清除缓存
 
命令别名nano .bashrc 定义别名 vim ~/.bashrc
alias grep='grep --clock=auto'
alias 显示当前shell进程所有可用的命令别名,在命令行中定义的别名,仅
对当前shell进程有效 ,如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效 :/etc/bashrc
alias copy=cp
alias copy='cp -p -r'
alias 查看别名
unalias 别名名字
unalias -a 取消所有别名
写入~/.bashrc
gedit ~/.bashrc
临时使某条命令不受别名影响
1.路径执行命令
如:/bin/ls
2.\ls
3.'ls'
命令的格式 :command option arguments
options 选项 启用命令的某项功能,从而更改命令的功能
arguments 参数 改变命令作用的对象
短选项
-c
-ca = -c -a
长选项
--word
 
type :查看命令种类
如果是内嵌命令,直接显示为内嵌;
如果是外部命令,显示命令的绝对路径;
例如:
~]# type ls
~]# type cd
~]# type type
 
date : date (查看系统时间) xxxxxx.Y (修改月日时分年Y秒)或 date -s
.clock (主板时间) -s (覆盖系统时间) -w(覆盖主板时间)
日期相关的命令:date,hwclock(clock),cal
硬件时钟:由电池供电,硬件计时;
系统时钟:系统启动时,从硬件时钟读取并设定其时间;内核时钟;
ntp:net time protocol网络时间协议
[root@centos6 ~]# date "+%Y年%m月%d日 %H时%M分%S秒 星期2"
2018年05月15日 15时59分43秒 星期2
[root@centos6 ~]# date "+%F %T" 年月日时分秒
2018-05-15 16:00:07
[root@centos6 ~]# date +%s
1526371345
[root@centos6 ~]# date 100112202019.20 月日时分[年][.秒]
Tue Oct 1 12:20:20 CST 2019
[root@centos6 ~]# date -s '2020-1-5 12:30:50'
Sun Jan 5 12:30:50 CST 2020
[root@instructor_v7(nanyibo) ~]# date -d '-2 days' +%A 表示前天是星期几
 
FORMAT:格式说明
%F:日期,显示为数字,格式为:2016-03-02;
%D:显示英制格式,月日年,显示格式为:03/02/16;
%T:时间,显示为数字,格式为:15:52:16;
%Y:年份,只显示完整年份数字(4位数字)显为:2016
%y:显示年份的后两位,显示格式为:16;
%m:月份,只显示数字,显示格式为:03;
%d:日期,只显示数字,显示格式为:02;
%H:小时,只显示数字,显示格式为(00..23):15;
%k:小时,显示格式为(0..23);
%I:小时,格式为(01..12);
%l:小时,显示格式为(1..12);
%h:显示月份,显示格式为:3月;
%M:分钟,只显示数字,显示格式为:52;
%S:秒钟,只显示数字,显示格式为:16;
%a:缩写星期;
%A:完整星期;
%b:缩写月份;
%B:完整月份;
%r:显示格式为(11:11:04 PM);
%R:同%H%M,格式为(23:37)
%s:从1970年1月1日至此刻所经历的秒数;timestamp; 显示格式为:1456905397;
 
设定日期时间格式:[月月日日时时分分[[年年]年年][.秒秒]];
hwclock命令:硬件时钟
-s, --hctosys:以硬件时间为准;设定系统时间;
-w, --systohc:以系统时间为准;设定硬件时间;
 
 
 
 
cal:显示日历;
cal [month] [year] clock/hwclock
command 查看硬时间
-s 硬时间写入软时间
-w 软时间写入硬时间
init :init 0 关机
:init 6 重启
poweroff
shutdown shutdown (关机) -r (重启) -h +xx (xx分钟后关机)
shutdown -h +0
+xx 几分钟后关机
20:00
TIME:无指定,默认相当于 +1
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
 
 
screen命令:
创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
 
安装screen
centos6:
在虚拟机上操作,加载好光盘centos6-dvd1
[root@centos6 ~]# cd /media/CentOS_6.9_Final/Packages/
[root@centos6 Packages]# rpm -ivh screen-4.0.3-19.el6.x86_64.rpm
centos7:
在虚拟机上操作,加载好光盘centos7-everything
[root@centos7 ~]# mount /dev/cdrom /media/
mount: /dev/sr0 is write-protected, mounting read-only
 
[root@centos7 ~]# rpm -ivh /media/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
 
screen -S sessionname 创建screen
screen -x sessionname 加入screen
screen -ls 查看screen
 
echo命令
功能:显示字符
语法:echo [-neE][字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,
并在最后加上换行号
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
显示变量:
echo "$VAR_NAME“ 变量会替换,弱引用 “” 双引号
echo '$VAR_NAME‘ 变量不会替换,强引用 `` 反向单引号
[root@centos6 ~]# echo -e "\a" 报警
[root@centos6 ~]# echo -e "aaa\n123\naaaaa"
aaa
123
aaaaa
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当
成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e '\033[43;31;5mmagedu\033[0m'
\xHH插入HH(十六进制)所代表的ASCII字
 
命令行扩展、被括起来的集合
命令行扩展:$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
echo "This system's name is $(hostname) "
This system's name is server1.example.com
echo "i am `whoami` "
i am root
括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}
file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}
 
tab键:补全
 
$的用法
$varname 引用变量的值
如:[root@centos7 ~]# echo $SHELL当前shell类型
/bin/bash
$()或`` 命令行扩展:表示引用命令执行的结果
$[]或$(())
如:[root@centos6 ~]# echo $[2+3]
5
${}或"$varname"
强调变量名的起止范围
 
!$的用法 :上一条命令的最后一个参数
[root@centos7 ~]# cat /etc/fstab
[root@centos7 ~]# vim !$=vim /etc/fstab
 
{}
[root@centos6 ~]# echo {-3..9}
-3 -2 -1 0 1 2 3 4 5 6 7 8 9
[root@centos6 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@centos6 ~]# echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
[root@centos6 ~]# echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@centos6 ~]# echo {3..10..3}
3 6 9
 
history ; 查看当前的历史记录
!XX 执行某条历史记录
!!重复执行上一条历史
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表
 
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT=“%F %T “ 显示时间
HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
export 变量名="值“
存放在 /etc/profile 或 ~/.bash_profil
export 设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相 当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)
 
bash 的快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + N 提示输入指定字符后,重复显示该字符N次
注意:Alt组合快捷键经常和其它软件冲突
 
 
获取帮助
whatis
基于数据库的查找命令
优点:查找速度快
缺点:不具有实时性
centos6:
数据库存放位置:/var/cache/man/whatis
更新数据库:makewhatis
centos7:
数据库存放位置:/var/cache/man/index.db
更新数据库:mandb
 
man
1 User Commands
 
2 System Calls
 
3 C Library Functions
 
4 Devices and Special Files
 
5 File Formats and Conventions
 
6 Games et. Al.
 
7 Miscellanea
 
8 System Administration tools and Daemons
man命令的配置文件:/etc/man.config | man_db.conf
中文man需安装包man-pages-zh-CN
man命令的操作方法:使用less命令实现
space, ^v, ^f, ^F: 向文件尾翻屏
b, ^b: 向文件首部翻屏
d, ^d: 向文件尾部翻半屏
u, ^u: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行 y or ^Y or ^P or k
or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部
f:向下翻一屏
b:向上翻一屏
d:向下翻半屏
u:向上翻半屏
j:向下翻一行
k:向上翻一行
g:跳至首页
G:跳至尾页
 
info
man常用于命令参考 ,GNU工具info适合通用文档参考
没有参数,列出所有的页面
info 页面的结构就像一个网站
每一页分为“节点”
链接节点之前 *
info [ 命令 ]
方向键,PgUp,PgDn 导航
Tab键 移动到下一个链接
d 显示主题目录
Home 显示主题首部
Enter进入 选定链接
n/p/u/l 进入下/前/上一层/最后一个链接
s 文字 文本搜索
q 退出 info
 
 
文件有两类数据:
元数据:metadata
数据:data
文件名最长255个字节
 
文件系统结构
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,
grub)都存放于此目录
/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的
程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc:配置文件目录
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media:便携式移动设备挂载点
/mnt:临时文件系统挂载点
/dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置
/srv:系统上运行的服务用到的数据
/tmp:临时文件存储位置
/usr: universal shared, read-only data
bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置
bin, sbin, lib, lib64, etc, share
/var: variable data files
cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据;
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据;
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
 
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man,
/usr/local/share/doc
 
Linux下的文件类型
-:普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接文件
p: 管道文件pipe
s: 套接字文件socket
nc -Ul mage.sock
nc -U mage.sock
 
centos7 目录变化
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和/usr/lib
/lib64 和 /usr/lib64
 
pwd
显示当前所在shell的绝对路径
-P 如果当前所在位置是软链接目录,则显示源路径
 
绝对路径与相对路径
绝对:从根开始的路径
相对:相对于当前的路径
 
基名:basename
目录名:dirname
basenam /etc/rc.d/init.d/functions 基名路径
dirname /etc/rc.d/function 取目录名
 
例如下:
[root@instructor_v7(nanyibo) ~]# dirname '/etc/sysconfig/network-scripts/ifcfg-eth0'
/etc/sysconfig/network-scripts
[root@instructor_v7(nanyibo) ~]# basename '/etc/sysconfig/network-scripts/ifcfg-eth0'
ifcfg-eth0
 
 
cd:移动
cd 进入家目录
cd ~ 进入家目录
cd - 进入上一次的工作目录,反复执行会在两个目录间来回切换
 
ls :列出目录内容
列出当前目录的内容或指定目录
用法:ls [options] [files_or_dirs]
示例:
ls -a 显示所有文件,包含隐藏文件
ls -A 显示所有文件,包含隐藏文件,除了. and ..
ls -l 长列出,显示属性信息
例子:-rw-------. 1 root root 1495 May 15 11:23 anaconda-ks.cfg
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序
-/d/l/s/b/c/p 表示文件的类型
rw- --- --- 表示owner,group,other的权限
. 表示该文件有selinux的context标签,可用-Z 详细查看
 
 
查看文件状态:stat
文件:metadata, data
三个时间戳:
access time(atime): 访问时间,当文件被读取时才更新
modify time(mtime): 数据修改时间,当文件的数据被修改时才更新
change time(ctime): 元数据修改时间,当文件的元数据(权限,大小,
owner,group,mtime等)更新时则更新
stat ,ls --time=atime[ctime] -l
touch filename
若文件不存在,则创建一个空文件
若文件存在,则更新三个时间戳
-a 更新atime和ctime
-m 更新mtime和ctime
-c 若文件存在,则更新三个时间戳,若不在,不会创建新文件,无作为。
为什么一个byte等于8bit?
0 0
1 1
10 2
11 3
100 4
A
127
 
ASCII 3000
GB2313
Shift_JJS
Euc-kr
 
Unicode
 
Utf-8`
 
文件名通配符
 
*:匹配零或多个任意字符
?:匹配任意一个单一字符
0-9:表示任何数字
a-Z:表示所有字母,包括大小写
[linux]:表示包含l或i或n或u或x
[^linux]:表示不包含l和i和n和u和x
[:digit:]:表示任意数字
[:lower:]:表示小写字母
[:upper:]:表示大写字母
[:alpha:]:表示大小写字母
[:alnum:]:表示任意字母或数字
[:blank:]:表示空格(水平制表符)及TAB
[:space:]:表示空格(水平制表符)、回车(垂直制表符)及TAB
[:punct:]:表示符号
[:print:]:表示可打印字符
 
touch命令:创建文件
touch [OPTION]... FILE...
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
 
cp :复制文件或者目录
 
 
选项说明:
-r或-R:源文件是目录时使用;
-d:复制文件是软连接文件时,仅复制软连接文件本身;
-p:复制时保持源文件属性;等价于--preserv=mode,time,owner;
-a:归档复制,相当于rdp即:-dR --preserv=all;
 
-i 覆盖时交互式提示
-r 递归,可以复制目录
-d 默认不加-d时,cp复制软链接会将源复制过去,加上-d保留链接属性,把软链 接复制过去
--preserv=
mode 权限不变
owner[ship] 权限及owner,group 不变
time 三个时间戳不变
xattr acl权限不变
links 链接不变
context 文件的selinux上下文关系不变
all
-p 等于 --preserv=mode,owner,time
-a 等于rdp
-v 显示复制过程
-f 强制覆盖: 当普通用户对目标文件不可更改时,但对该目标文件所在的目录 有创建及删除文件的权限,则使用-f可以强制覆盖,实际上是先删除文件,再创建
-u 只覆盖源比目标文件新的文件
--backup-numbered 覆盖前,先将旧文件改名为 文件名.~数字~
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
 
scp
实例1:从远处复制文件到本地目录
 
命令:
 
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
 
说明:
 
从192.168.120.204机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中
 
实例2:从远处复制到本地
 
命令:
 
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
 
说明:
 
从192.168.120.204机器上的/opt/soft/中下载mongodb 目录到本地的/opt/soft/目录来。
 
实例3:上传本地文件到远程机器指定目录
 
命令:
 
scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest
 
说明:
 
复制本地opt/soft/目录下的文件nginx-0.5.38.tar.gz 到远程机器192.168.120.204的opt/soft/scptest目录
 
实例4:上传本地目录到远程机器指定目录
 
命令:
 
scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest
 
输出:
 
mv:移动和重命名文件
mv [OPTION]... [-T] SOURCE DEST
? mv [OPTION]... SOURCE... DIRECTORY
? mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i: 交互式
-f: 强制 直接覆盖,不交互式,抵消i的作用
 
rm -rf :删除
-i 交互式
-f 强制删除
-r 递归
 
rename 旧名字 新名字 要改名的文件
rename doc txt *.doc
 
目录操作
tree 显示目录树
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
rm -r 递归删除目录树
 
inode(index node)表中包含文件系统所有文件列表
一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包
括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
文件引用一个是 inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射
inode
索引节点:inode(比较抽象不好理解)
理解数据、元数据、inode、inode表、block(数据块)、block表、数据指针、inode bitmap、block bitmap等名词术语;
 
block:磁盘分区中存储数据的最小的单位;
数据:保存最终数据的block;
元数据:保存数据的属性信息;
inode:文件系统查找文件的id号;
inode表:就是文件系统中保存查找数据指针的表格;
block表:就是存放最终数据的一些block。
数据指针:在inode表中查找到的block的位置;
inode bitmap:统计了inode相关信息,如剩余可用的inode还有多少个,使用了多少inode等;
block bitmap:统计了block相关信息,如哪些block可用,哪些被使用了;
 
 
理解inode与软连接文件、硬链接文件、目录文件的关系;
理解inode与删除目录、删除文件的关系;
 
 
ln命令
-s:创建软连接文件;
 
注意:在创建软连时,软连接的名词位置放置最后:
ln -s 源始文件 软连接名词
 
软连接和硬链接的区别:
硬链接不能夸分区创建;
删除源文件对连接的影响:删除源文件后,不影响硬链接文件;但软链接文件会受影;
 
注意:创建软连接文件是,目标文件一般使用相对路径;
ln 源 目的 (注意:源与目的要在同一文件系统下)
创建硬链接会增加额外的记录项以引用文件
对应于同一文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
不能跨越驱动器或分区
语法:
ln filename [linkname ]
 
软连接
ln -s 源路径 目的路径
 
链接文件:
硬链接:指向同一个inode的多个文件路径;inode号相同;
特性:
(1)目录不支持硬链接;
(2)硬链接不能跨文件系统;因为不同文件系统的inode是独立管理的,编号也是从0开始的,所以不能跨文件系统引用文件的inode编号;
(3)创建硬链接会增加inode引用计数;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Linux 安装Zookeeper<准备>(使用Mac远程访问)

下一篇:linux ls常用用法