Tips
:
分类 | 相关设置 |
---|---|
Linux系统默认支持语系 | /etc/locale.conf |
终端界面(bash) | LANG,LC_ALL |
开启终端的软件 | 各自配置文件中 |
文件原始编码 | utf-8,big-5,ASCII(Linux下的纯文本,由0,1转换) |
file + filename
iconv
参数 | 含义 |
---|---|
--list |
列出支持编码 |
-f |
from,原本的编码格式 |
-t |
to,转换为新编码的格式 |
-o file |
保留原文件,输出新编码文件file |
- eg:iconv -f big5 -t utf8 oldfile -o newfile
显示日期与时间的指令:date
显示日历得指令:cal
显示小数点 scale=number
,未开启则无法进行结果含小数得运算
eg:scale=3 计算1/10时,则会保留小数点后三位
shotdown -h now
语法,指令+路径(如果文件是目录,则在指令后添加[ -R] 表示递归)
数字改变权限 r:4 w:2 x:1 ,按照想赋予权限自由组合
符号类型改变权限,(1)user (2)group(3)others 三种身份,可以由 u, g, o 来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成 r, w, x
以[ / ] 开始的路径是绝对路径,以用户lucky举例
eg:cd /home/lucky
pwd(查看当前目录)
以[ . ]或[ ../ ] 开头的路径为相对路径,从home目录进入lucky目录
eg:cd ./lucky
pwd(查看当前目录)
cd [-] 或cd [/]都可从任意目录切换到root目录,cd 或 cd [~]切回用户目录
参数:
[-m] 直接设置权限
[-p] 直接将所需要的目录(包含上层目录)递归建立起来
touch 创建文件
rmdir(删除[空]目录)
语法:rmdir +[-options]+路径
options:
[-p] 递归删除
[-r] 删除非空目录
[-f] 强制删除
cp指令
语法:cp + [-options] + 文件来源路径 + 目的地路径
tips:执行cp指令后用ls + [-l] + 文件来源路径 + 目的地路径,观察权限
options:
[-a]复制后的文件与复制前的文件属性、权限一模一样。即完全复制
[-r]递归复制。用于复制目录(文件夹),但是复制后的文件权限可能改变
[-s]符号链接(symbolic link)。复制后的文件相当于源文件的快捷方式,权限也变更了,有一个(->)链接到源文件的符号
[-l]实体链接(hard link)。复制后的文件与源文件权限相同,但link数+1了
[ ]空参数时(默认状态),复制的是源文件,复制后权限可能会变更,是非链接文件属性
[-d] 复制后的文件是链接文件属性。
[-u]用于备份。目标文件与源文件有差异时才会复制
注意:执行cp指临时,务必清楚执行指令的用户以及权限
rm指令
语法:rm + [options] + 源文件路径
options:
[-r]:递归删除(删除文件夹时使用)
[-f]:强制删除,忽略不存在的文件
[-i]:删除前会询问
mv指令,移动文件或更名
语法:mv + [-options] + 源文件路径 + 目标文件路径
options:
[-f]:强制的意思,若目标文件已存在,直接覆盖
[-i]:若目标文件已存在会询问
[-u]:更新目标文件(源文件比较新时)
获取文件名与目录名称
获取文件名:bashname + 文件路径
获取目录名:dirname +文件路径
文件内容查阅
cat 由第一行开始显示文件内容
tac 最后一行开始显示文件内容
nl 显示的时候输出行号
more 一页一页的显示内容
less 一页一页显示内容,但是可以向前翻页(常用)
head 只看头几行(默认前十行)
tail 只看尾部几行
od 以二进制的方式读取内容
options:以上指令部分可用参数
[-b]:列出行号,空白行不标记行号
[-n]:列出行号,空白行标记行号
[-E]:将结尾的断行字符$显示出来
[-T]:将[Tab]按键以 ^[ 显示出来
[-v]:列出一些看不出来的特殊字符
[-A]:-vET的整合,列出一些特殊字符而不是空白
注意:一般文件推荐使用 less 或 more 查阅,DOS文件有特殊符号,需加 [-A]参数
more 查阅文件的按键:
less 查阅文件的按键:
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
g :前进到这个资料的第一行去;
G :前进到这个数据的最后一行去 (注意大小写);
q :离开 less 这个程序;
查阅前或后几行:
tips:
非纯文本档查阅:od
语法:od + [-t TYPE] + 文件
-t 后接的各种[TYPE]的输出:
文件预设权限:umask
服务器通用:通过该指令设定权限,群组间协同开发
查看文件或目录的权限:umask(推荐) 或者 umask -S
结果为0002,后三位与权限有关,r:4 w:2 x:1
注意:后三位数字分别表示用户/群组/others 缺失的权限
0002表示others没有写的权限,但有读和执行权限
实战(同一主机),领导将 /home/class/ 目录作为共同开发专题目录,如果通过umask查询结果为0022,则同组人员无法开发,因为写的权限被拿掉了,所以管理员终端必须将该目录权限更改才能开发,管理员终端输入 [umask 002],赋予同群组开发人员写的权限
修改文件时间或建置新文件:touch
文件时间属性(可通过ls 指令看到常见文件时间,默认显示的是该文件的mtime)
语法:ls + l + [--time=[option] ]+文件路径
文件隐藏属性
配置文件隐藏属性chattr
语法:chattr + [ +-=][options] + 文件或目录名称
常用options:
显示文件隐藏属性(lsattr)
语法:lsattr + [-options] +文件或目录
[-a]将隐藏文件的属性展示出来
[-d]如果接的是目录,仅列出目录本身的属性而非目录内的文件名
[-R]连同子目录的数据也一并列出来
文件特殊权限:SUID,SGID,SBIT
SGID 对二进制程序有用;
程序执行者对于该程序来说,需具备 x 的权限;
执行者在执行的过程中将会获得该程序群组的支持!
用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
用户在此目录下的有效群组(effective group)将会变成该目录的群组;
用途:(重要)若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。
(重要)此目录下的用户只能增删改、移动自己建立的目录或文件,而无法删除他人的文件/目录
当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件
4 为 SUID
2 为 SGID
1 为 SBIT
用法:在权限指令前添加数字赋予文件或目录特殊
权限
eg:假设要将一个文件权限改为『-rwsr-xr-x』时,由于 s 在用户权力中,所以是 SUID ,因此,在原先的 755 之前还要加上 4 ,也就是:『 chmod 4755 filename 』来设定!
注意:SUID是用在二进制文件上,不是用在目录上的;SBIT是用在目录上的,不是用在文件上的
查看文件类型指令:file
语法:file + 文件路径
指令与文件搜索
指令是根据『PATH』这个环境变量所规范的路径,去搜寻『执行档』的档名(个人理解是程序名),无法找到『bash 内建的指令』(不是程序名)
[-a],添加该参数,所有PATH目录中可以找到的指令均列出。不加参数的话,默认显示第一个被找到的指令名称
whereis(在特定目录查找文件)
语法:whereis + [-options] + 文件或目录名
options:
[-l] 列出指定去查询的几个目录
[-b] 只找binary格式的文件
[-m] 只找在说明文件 manual 路径下的文件
[-s] 只找 source 来源的文件(原始码)
[-u] 搜寻不在上述三个项目当中的其他特殊文件
ps:不加任何参数,默认列出所有数据,但是有些文件是找不到的,whereis 主要是针对 /bin /sbin 底下的执行档, 以及 /usr/share/man 底下的 man page 文件,跟几个比较特定的目录来处理而已。所以速度当然快的多
注意:一般查找文件用whereis 或 locate 指令 ,find 指令对于比较老旧的硬盘,查询很耗时
locate / updatedb(模糊查找文件)
语法:locate + [-options] + 部分文件名
options:
ps:locate 寻找的数据是由『已建立的数据库 /var/lib/mlocate/』 里面的数据所搜寻到的,而数据库的建立默认是在每天执行一次 (每个 distribution 都不同,在数据库更新之前搜寻该当天的文件可能会找不到,可通过直接终端输入[ updatedb ]手动更新数据库,更新成功后即可找到。
注意:
find (列出所有相关文件)
文件变动信息查询
find + 路径 + [-options] + [actions]
与时间有关的选项:有[-atime] [-ctime] [-mtime],以[-mtime]说明
[-mtime] n : 在n天之前被更动过内容的文件;
[-mtime] +n:列出在n天之前(不含n天本身)被更动过的文件;
[-mtime] -n:列出在n天之内(含n天本身)被更动过的文件;
[- newer file] : file 为一个存在的文件,列出比file还要新的文件
与使用者或组名有关的参数:
[-uid n] n 即UID ,在/etc/passwd 里面
[-gid n] n 即GID,在/etc/group 里面
[-user name] name 为使用者账号名称
[-group name] name 为组名
[-nouser] 寻找文件的拥有者(不存在 /etc/passwd 的人)
[-nogourp] 寻找文件的拥有群组不存在于 /etc/group 的文件
与文件权限及名称有关的参数
[-name filename] 搜寻文件名为filename的文件
[-size [+-]SIZE ] 搜寻比SIZE 还要大(+)/小(-)的文件。SIZE 的规格有: c 代表 byte ,k 代表 1024bytes。例如,找比50KB还要大的文件,就是[ -size +50k]
查询结果能够进行额外的动作(action)
{} 代表的是『由 find 找到的内容』,如上图所示,find 的结果会被放置到 {} 位置中;
-exec 一直到 ; 是关键词,代表 find 额外动作的开始 (-exec) 到结束 (?? ,在这中间的就是 find 指令内
的额外动作。
因为『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜杠来跳脱。
压缩与解压缩
语法:
压缩:tar [-z| -j | -J] [cv] [-f] filename
查询:tar [-z| -j | -J] [tv] [-f ] filename
解压:tar [-z| -j | -J] [xv] [-f ] filename [-C] 解压缩后的位置(目录)
[-z] 透过 gzip 的支持进行压缩/解压缩。规范档名为 * .tar.gz
[-j] 透过 bzip 的支持进行压缩/解压缩。规范档名为 * .tar.bz2
[-J] 透过 xz 的支持进行压缩/解压缩。规范档名为* .tar.xz
-z、-j、-J 不可以同时出现在一串指令列中
[-v] 在压缩/解压缩的过程中,将正在处理的文件名显示出来
[-f] filename, -f 后面必须是要被处理的档名
[-c] 建立打包文件
[-C] 目录,在特定目录解压缩
[-p] 保留备份数据的原本权限与属性 常用于备份重要的配置文件
[-P] 保留绝对路径。即允许备份数据中含有根目录存在之意。
--exclude=FILE,在压缩的过程中,不要将 FILE 打包
常用命令:
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
软件安装
tar xzf redis-3.0.7.tar.gz
ln -s redis-3.0.7 redis
,建立目录的软连接,不把redis目录固定在指定的版本上,有利于版本升级,养成安装软件的好习惯make && make install
会将Redis的相关运行文件放到/usr/local/bin
目录下,相当与导入了PATH环境变量,可以在任何目录下执行Redis命令
Linux系统中,默认的情况下,所有的系统上的账号与一般身份使用者,以及root的相关信息,都是记录在/etc/passwd 文件内,个人密码记录在/etc/shadow 文件内,所有组名都记录在/etc/group 内
第一个字符代表这个文件是『目录、文件或链接文件等等』:
o 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
o 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;
o 若是[ l ]则表示为连结档(link file);
o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
o 第一组为『文件拥有者可具备的权限』,以『initial-setup-ks.cfg』那个文件为例, 该文件的拥有者可以读写,但不可执行;
o 第二组为『加入此群组之账号的权限』;
o 第三组为『非本人且没有加入本群组之其他账号的权限』。
Linux 文件 长度限制 :
在 Linux 底下,使用传统的 Ext2/Ext3/Ext4 文件系统以及近来被 CentOS 7 当作预设文件系统的 xfs而言,针对文件的档名长度限制为:
Linux 文件名的限制:
由于 Linux 在文字接口下的一些指令操作关系,一般来说,你在设定 Linux 底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:
* ? > < ; & ! [ ] | \ ‘ "
( ) { }
因为这些符号在文字接口下,是有特殊意义的!另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名啊!
列出文件系统的整体磁盘使用量
语法:df + [-options] + 目录或文件名
options:
评估文件系统的磁盘使用量(常用在推估目录所占容量)
语法:du + [-options] + 目录或文件名
options:
[-s] 列出总量而已,而不列出每个个别的目录占用容量
[-S] 不包括子目录下的总计
[-h] 以人们较易读的容量格式(G/M)显示
[-k] 以KBytes 列出容量显示
[-m] 以MBytes 列出容量显示
link 链接指令
语法:ln +[-options] 源目录 + 与原始目录建立链接的目录(新目录)
第一种:hard link ,不加参数。新目录与源目录两者同一inode,且源目录的link数+1(ls -il + 路径 指令可观察),因为同一inode指向同一个block,所以建立连接后,源目录若是删除了,则新目录仍然能访问 block ,可以正常使用使用。
第二种:Symbolic Link(符号链接),加参数[-s],新目录相当于源目录的快捷方式,新目录与源目录inode 不同,新目录指向源目录的inode,然后通过源目录访问 block 的资源。若是删除源目录,则新目录无法使用,若在新目录中增删改文件,则对应的源目录中的文件信息也随之改变。
磁盘分区相关( root 才能执行)
观察磁盘分区状态
lsblk 列出磁盘上所有的磁盘列表
blkid 列出装置的UUID
parted /dev/sda print 列出磁盘的分区表类型及分区信
磁盘分区工具(错分区工具会使分区记录全部死掉,必须知分区类型操作)
gdisk GPT分区表使用该工具
fdisk MBR分区表使用该工具
gdisk 分区工具的使用(在输出信息后输入 ? 即可增删改分区,q,不保存离开;w,保存操作后离开),不需要背指令
gdisk dev/sda
GPT 分区工具gdisk增加/删除分区 实例 ,千万不要去处理一个正在使用的分区槽
a. lsblk 查出所有文件系统(磁盘是sda 或vda 或其它类型),本机sda
b. parted /dev/sda print 列出 /dev/sda 磁盘的相关数据,若 Partition Table :gpt 则分区表格式是GPT,接下来的分区工具使用gdisk,若显示分区表是mbr,则接下来的分区工具使用fdisk
c. gdisk /dev/sda 在输出的信息中再次确认GPT:present ,有此信息才能使用gdisk工具
d. 承上,在Command(? for help) :输入[ ? ],即可查询gdisk的增删改分区的指令,[n] 增加分区,[d] 删除分区,[p] 打印出分区表信息,分好区后[q]不保存分区信息离开,[w]保存离开。通过[L] 可查询到你想分区的文件系统类型对应的数字,如 8300 代表 Linux预设文件系统(xfs),8200 代表Linux swap 交换系统,0700 代表可同时被windows与Linux识别的Microsoft basic data 文件系统(vfat)
注意:新手初次查阅信息避免误操作,查阅后[q]键离开,数据无价,谨慎操作
e. n 增加分区 在Last sector后输入新分区容量,本人键入[ +1G] 即新分区大小为1G,回车。在Hex code .... 后输入新分区槽使用哪个文件系统,如上一步中 8300 或 8200 或0700 (通过L 可查询文件系统对应数字),回车,输入[p] 打印出新的分区,即增加分区操作成功,若此时不想保留新分区,键入[q]则上述分区记录不会保存,Linux 不会增加新分区;若想保留新分区,键入[w] 保存分区信息离开。
partprobe -s 手动更新 Linux 分区表信息,lsblk /dev/sda 可查看到添加分区后实际磁盘分区状态,cat /proc/partitions 可查看核心的分区记录。
至此,增加分区成功
f. d 删除分区,先键入[p],打印出分区信息,在Number一列中选出你要删除的分区编号,键入[编号],再次键入[p],确认分区已删除,[w] 保存离开。
partprobe -s 手动更新 Linux 分区表信息,lsblk /dev/sda 可查看到删除分区后实际磁盘分区状态,cat /proc/partitions 可查看核心的分区记录。
至此删除分区完毕。
MBR 分区工具 fdisk 使用
分区完毕后进行文件系统格式化(建置文件系统),这样才能使新分区可使用
XFS 文件系统 mkfs.xfs(mkfs 即 make filesystem)
格式化:mkfs.xfs /dev/sda4 (注:新建分区为xfs Linux格式使用此指令)
EXT4 文件系统 mkfs.ext4
格式化:mkfs.ext4 /dev/sda5(注:新建分区为ext4 Linux 文件系统使用该指令)
其他文件系统 mkfs
mkfs 其实是个综合指令,终端输入 mkfs 连按两下[Tab] 即可知道系统还支持哪种文件系统的格式化功能。例如,当我们使用 mkfs -t xfs 时,它就会跑去找 mkfs.xfs 相关的参数给我们使用。
例如:可将上述格式化后ext4 格式的sda5 格式化为 vfat 格式
mkfs -t vfat /dev/sda5 格式化操作
blkid /dev/sda5 查看该分区,可看到TYPE="vfat",格式化成功
例如:再次将vfat 格式的 sda5 分区格式化为 ext4
mkfs.ext4 /dev/sda5 或者(mkfs -t ext4 /dev/sda5)
blkid /dev/sda5 查看该分区,可看到TYPE="ext3",格式化成功
原文:https://www.cnblogs.com/luckyCoder/p/12732676.html