美文网首页linuxLINUX学习Linux小推车
鸟哥的LINUX私房菜基础篇笔记

鸟哥的LINUX私房菜基础篇笔记

作者: 假装我不帅 | 来源:发表于2019-02-24 11:13 被阅读13次

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

  1. 数字类型
    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
  1. 符号类型更改权限
    格式:
    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更新数据库

这样新安装的库就可以搜索到了

find

相关文章

网友评论

    本文标题:鸟哥的LINUX私房菜基础篇笔记

    本文链接:https://www.haomeiwen.com/subject/hbpvyqtx.html