date
date
date +%Y-%m-%d
date +%H:%M:%s
date +%H:%M:%S
cal
cal
cal 6 1999
#查询1999年6月日历
bc
bc
2+3
1/3
quit
bc
scale=3
#设置精度
1/3
[Tab]
ca[Tab] [Tab]
#ca后按两次TAB
# 命令补全
ls -la ~/.bash[tab] [tab]
#文件补全
ctrl+c
中断命令
ctrl+d
键盘输入结束
linux文件属性
ls -la
ls -l --full-time Desktop
修改文件属性与权限
命令 | 解释 |
---|---|
chgrp | 修改文件所属用户组 |
chown | 改变文件所有者 |
chmod | 改变文件的权限 |
(以上三者)-R | 进行递归更改 |
更改用户组,本地所在的用户组有wjl和root
ls -la
chgrp root a.txt
# 权限不够
chgrp wjl b.txt
改变文件所有者
chown [-R] 账号名称 文件或者目录
ls -lA
# -A忽略隐藏目录
chown wjl b.txt
ls -lA
将b.txt的所有者和用户组改回root
ls -lA
chown root:root b.txt
ls -lA
改变权限 chmod
- 数字类型
r:4
w:2
x:1
每种身份各自的三个权限是需要累加的如[-rwxrwx---]
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0
命令则如下:
chmod 770 文件或者目录
格式:chmod [-R] xyz 文件或者目录
# b.txt为例
# -rw-r--r--
# 改为-rwxrwxrwx
chmod 777 b.txt
ls -lA
- 符号类型更改权限
格式:
chmod u/g/o/a +/-/= r/w/x 文件目录
u=user
g=group
o=others
a=all
设置b.txt权限为-rwxr-xr-x
# -rwxrwxrwx
chmod go=rx b.txt
ls -lA
假如是-rwxr-xr--这样的权限设置,可以使用chmod u=rwx,g=rx,o=r 文件名
如果不知道b.txt文件权限,想要把b.txt的这个文件改为每个人可以写入的权限
chmod a+w b.txt
#增加写的权限
ls -lA
如果想去掉b.txt的x权限可以这样写
chmod a-x b.txt
ls -lA
查看文件与目录 ls
参数 | 解释 |
---|---|
-a | 全部的文件连同隐藏文件一起列出来 |
-A | 列出全部文件连同隐藏文件,但不包括. 和.. |
-d | 仅仅列出目录本身,而不是列出目录内的文件数据 |
-f | 直接列出结果而不进行排序ls以文件名默认排序 |
-F | 根据文件目录等信息给予附加目录结构 |
-h | 将文件容量以人类较易读的方式列出来 |
-i | 列出inode号码 |
-l | 列出长数据串,包含文件属性与权限 |
-n | 列出UID与GID而非用户的UID与GID |
-r | 将结果方向输出 |
-R | 连同子目录内容一起列出来 |
-S | 以文件容量大小排序 |
-t | 依据时间排序 |
--color=never | 不要依据文件特性给予颜色显示 |
--color=always | 显示颜色 |
--color=auto | 让系统自行依据设置来判断是否给予颜色显示 |
--full-time | 以完整时间模式输出 |
--time={atime,ctime} | 输出访问时间或者改变权限属性 |
复制删除与移动
cp
参数 | 解释 |
---|---|
-a | 相当于-pdr的意思 |
-d | 如源文件为链接文件属性则复制链接文件属性而非文件本身 |
-f | 强制的意思,如果目标文件已经存在并且无法开启,删除后再尝试一次 |
-i | 如果目标文件已经存在,再覆盖时会先询问操作的进行 |
-l | 进行硬链接的链接文件创建而非复制文件本身 |
-p | 连同文件的属性一起复制过去,而非使用默认属性(备份常用) |
-r | 递归持续复制,用于目录的复制行为 |
-s | 复制成为符号链接文件,即快捷方式文件 |
-u | destination比source旧才更新 |
用root身份将主文件夹下的.bashrc复制到/tmp下,并且更名为bashrc
cp /.bashrc /tmp/bashrc
cp -i /.bashrc /tmp/bashrc
# 会询问是否覆盖
切换到/tmp,并且将/var/log/wtmp复制到/tmp并且查看属性
cd /tmp
cp /var/log/wtmp .
# "." 代表当前目录
ls -l /var/log/wtmp wtmp
# 不加参数文件的属性或者权限会被改变
cp -a /var/log/wtmp wtmp_2
ls -l /var/log/wtmp wtmp_2
#属性就相同了
复制/etc目录下所有文件到/tmp文件夹下
# 如果目标是文件夹则需要加-r参数
cp -r /etc/ /tmp
将复制的bashrc创建一个链接文件
cp -s bashrc bashrc_slink
cp -l bashrc bashrc_hlink
ls -l bashrc*
如果~/.bashrc比/tmp/bashrc新才复制过来
cp -u ~./bashrc /tmp/bashrc
将bashrc_slink复制为bashrc_slink_1,bashrc_slink_2
cp bashrc_slink bashrc_slink_1
cp -d bashrc_slink bashrc_slink_2
ls -l bashrc_slink*
#没有加任何参数时,cp复制的是源文件,如果要复制链接文件的属性就是用-d参数
将主文件夹下的.bashrc以及.bash_history复制到/tmp下面
cp ~/.bashrc ~/.bashrc_history /tmp
#最后一定是目录
rm
参数 | 解释 |
---|---|
-f | 忽略不存在的文件,不会出现警告信息 |
-i | 交互模式,在删除之前会询问 |
-r | 递归删除,最常用的是目录删除 |
通过通配符*将/tmp下的bashrc开头的文件全部删除
rm -i bashrc*
如果想删除目录不要询问,可以这样做
\rm -r /tmp/etc
# \忽略掉alias参数
删除一个带有-开头的文件
touch ./-aaa-
rm -aaa-
#删除不掉
rm ./-aaa-
mv
参数 | 解释 |
---|---|
-f | 目标文件存在不询问直接覆盖 |
-i | 交互模式,已经存在文件夹时覆盖之前询问 |
-u | 如果目标文件存在且source比较新才会更新 |
移动/home/wjl/a.txt到/tmp文件夹下
#wjl登录
cd ~
mv a.txt /tmp
mkdir test
#将test改名为test2
mv test test2
# 将a.txt,b.txt移动到桌面
mv a.txt b.txt /home/wjl/Desktop/
当文件路径很长时,获取最后的文件夹名字或者路径比太方便,可以使用下列命令
basename /home/wjl/Desktop
dirname /home/wjl/Desktop
文件内容查阅
cat
由第一行显示内容
参数 | 解释 |
---|---|
-A | 相当于-vE的整合参数,可以列出一些特殊字符 |
-b | 列出行号,仅仅针对非空白行做行号显示,空白行不显示行号 |
-E | 将结尾的断行字符串$显示出来 |
-n | 打印行号,连同空白行也会有行号,与-b的参数不同 |
-T | 将TAB以^I显示出来 |
-v | 列出一些看不出来的特殊字符 |
tac
反向列示
nl(添加行号打印)
参数 | 解释 |
---|---|
-b | 指定行号样式,主要有两种 |
-b a | 无论是否为空行,同样列出行号 |
-b t | 没有空行,空的一行不列行号(默认) |
-n | 列出行好的样式 |
-n ln | 行号在屏幕的最左方显示 |
-n rn | 行号在自己字段的最右方显示,且不加0 |
-n rz | 行号在自己字段的最右方显示,且加0 |
-w | 行号字段占用的位数 |
列出所有行号,最右方显示三位数的行号
nl -b a -n rz -w 3 a.txt
可翻页查看
more
参数 | 解释 |
---|---|
空格 | 代表向下翻一页 |
Enter | 代表向下滚动一行 |
/字符串 | 代表在这个显示的内容当中向下查询"字符串"这个关键字 |
:f | 立刻显示出文件名以及目前显示的行数 |
q | 代表立刻离开more |
b或者ctrl+b | 代表往回翻页,不过这操作只针对文件有用,对管道无用 |
less
参数 | 解释 |
---|---|
空格 | 代表向下翻一页 |
PageDown | 向下翻一页 |
PageUp | 向上翻动一页 |
/字符串 | 向下查询“字符串”的功能 |
?字符串 | 向上查询“字符串”功能 |
n | 重复前一个查询 |
N | 反向重复前一个查询 |
q | 离开less |
数据选取
head(取出前面几行)
参数 | 解释 |
---|---|
-n | 后面接数字,代表显示几行的意思 |
不加参数默认显示10行
-n -100代表列出前面的所有行数,但不包括后面100行
tail(去除后面几行)
参数 | 解释 |
---|---|
-n | 后面接数字,代表显示几行的意思 |
-f | 表示持续监测后面所接的文件名,等到按下[TAB]-c才结束tail检测 |
不加参数默认显示10行
-n +100 a.txt
列出100行以后的数据
持续监测/var/log/messages
tail -f /var/log/messages
每当messages有内容写入时,就会显示到屏幕,除非ctrl+c停止
显示第11到第20行的命令
head -n 20 a.txt|tail -n 10
非纯文本文件 od
参数 | 解释 |
---|---|
-t | 后面可以接各种类型(type)的输出,例如: |
a,利用默认的字符串输出 | |
c,使用ASCII字符串输出 | |
d[size]利用十进制来输出数据,每个整数占用size bytes | |
f[size]利用浮点数来输出数据,每个数占用size bytes | |
o[size]利用八进制来输出数据,每个整数占用size bytes | |
x[size]利用十六进制来输出数据 |
将/usr/bin/passwd的内容用ASCII方式输出
od -t c /usr/bin/passwd
将/etc/issue这个文件内容以八进制列出存储值与ASCII的对照表
od -t oCc /etc/issue
touch
三个主要变动时间
状态 | 触发 |
---|---|
modification time(mtime) | 当该文件的内容数据更改时就会更新这个时间 |
status time(ctime) | 当该文件的状态改变时,就会更新这个时间例如权限与属性的更改 |
access time(atime) | 当该文件的内容被取用是,就会更新这个读取时间,例如用cat读取文件时 |
ls默认显示的时间是mtime
参数 | 解释 |
---|---|
-a | 仅仅修改访问时间 |
-c | 仅仅修改文件的时间,如果文件不存在则不创建新文件 |
-d | 后面可以接欲修改的日期而不用目前的日期,也可以使用--date=日期或者时间 |
-m | 仅仅修改mtime |
-t | 后面可以接欲修改的时间而且不用目前的时间,格式为【YYMMDDhhmm】 |
文件默认权限 umask
umask
umask -S
数字形式关注的是后面三位,代表的是减分制。
022代表u=rwx,g=rx,o=rx
即go被拿掉了w权限
新建文件时(-rw-rw-rw-) - (-----w--w-)=-rw-r--r--
新建目录时(drwxrwxrwx) - (-----w--w-)=drwxr-xr-x
touch test1
mkdir test2
ll
umask 002
touch test3
mkdir test4
ll
chattr(设置文件的隐藏属性)
chattr [+-=] [ASacdistu]
参数 | 解释 |
---|---|
+ | 增加某一参数其他原本的参数不变 |
- | 删除某一个参数,原本参数不动 |
= | 仅仅有后面界的参数 |
A | 当设置了A这个属性时,若你有访问此文件时,他的访问时间atime不会被修改,可避免I/O较慢的机器过度访问磁盘。 |
S | 一般文件时异步写入磁盘的,如果加上S这个属性是,当你进行任何文件修改,该修改会同步写入磁盘中 |
a | 当设置a之后,这个文件只能增加数据,而不能删除数据也不能更改数据,只有root才能设置这个属性 |
c | 这个属性设置之后,将会自动将此文件压缩,在读取的时候将会自动解压缩,但是在存储的时候,将会先进性压缩后在存储 |
d | 当dump程序被执行时,设置d属性可以将该文件不会被dump备份 |
i | 它可以让一个文件不能被删除、改名,设置连接也无法写入或者添加数据。对于系统安全行有相当大的帮助 |
s | 当文件设置了s属性是,如果这个文件被删除,它会被完全从磁盘空间中删除 |
u | 与s相反,当使用u来配置文件时如果该文件被删除了,则数据内容其实还存在在磁盘中,可以使用来找回该文件 |
lsattr(显示文件隐藏属性)
参数 | 解释 |
---|---|
-a | 将隐藏文件的属性也显示出来 |
-d | 如果接的是目录,仅仅列出目录本身的属性而非目录内的文件 |
-R | 连同子目录的数据也一同列出 |
file产看文件类型
脚本文件名查询 which(寻找执行文件)
参数 | 解释 |
---|---|
-a | 将所有由PATH目录中可以找到的命令均列出来 |
文件名查找 whereis(寻找特定文件)
参数 | 解释 |
---|---|
-b | 仅仅查找二进制格式的文件 |
-m | 只找在说明文件manual路径下的文件 |
-s | 只找source原文件 |
-u | 查找不在上述三个选项当中的其他特殊文件 |
locate
参数 | 解释 |
---|---|
-i | 忽略大小写的差异 |
-r | 后面可以接正则表达式的显示方式 |
找出系统中所有与passwd相关的文件名
locate passwd
updatedb更新数据库
这样新安装的库就可以搜索到了
网友评论