日常使用的几个Linux命令笔记

改变文件的属性和权限:

1.chgrp(change group) :改变文件所属的用户组(要改变的组名必须要在/etc/group文件内存)
chgrp [-R] dirname/filename
-R 进行递归,连同子目录下的所有文件、目录
chgrp users install.log
2.chown(change owner):改变文件所有者(用户名必须存在于/etc/passwd)
chown [-R] 账号名称:组名 dirname/filename
-R 进行递归,连同子目录下的所有文件、目录
chown bn install.log
chown user:group install.log (chown可以同时修改文件的所有者和用户组)
chown user.group install.log (chown .group install.log可用来单纯修改用户组)
3.chmod:改变文件的权限
linux基本权限有9种:owner、group、others三种身份各自有read(4)、write(2)、execute(1)权限
chmod [-R] xyz dirname/filename
-R 进行递归,连同子目录下的所有文件、目录
chmod 644 .bashrc (-rw-r–r--)
chmod u=rwx,go=rx .bashrc (注意u=rwx,go=rx没有任何空格)
chmod a-x .bashrc(a代表all,即全部身份)
chmod a+w .bashrc

文件的权限:

r:读取文件
w:编辑、新增、修改文件内容(不含删除文件)
x:被系统执行
目录的权限:
r:读取目录结构的权限(ls)
w:新建新的文件与目录、删除已经存在的文件与目录(不论该文件的权限为何)、文件和目录重命名、转移目录内的文件和目录位置
x:进入目录称为工作目录(没有x时,可以查询目录下的文件名列表,不能切换到此目录内)

我们的linux在用户登录时,都会将登录的数据记录在/var/log/wtmp那个文件内,该文件时一个data file,能通过last这个命令读取出来。

目录的定义:

/(root,根目录):与开机系统有关
根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区。
保持根目录越小越好,如此不但性能较好,根目录所在的文件系统也较不容易发生问题。
因为根目录与开机有关,开机过程中仅有根目录会被挂载,其他分区则是在开机完成之后才会持续进行挂载的行为。就是因为如此,根目录下与开机有关的目录就不能够与根目录放到不同的分区去。
/etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函数库与内核所需的模块
/sbin:重要的系统执行文件
这五个目录不可与根目录分开放在不同的分区。
/usr(UNIX software resource):与软件安装、执行有关
/var(variable):与系统运作过程有关

常见处理目录的命令:
1.cd (切换目录)
cd ~ / cd 回到自己主文件夹
cd - 回到刚才的那个目录
2.pwd(显示目前所在的目录)
pwd [-p]
[-p] 显示出当前的路径,而非使用连接(link)的路径
ls -ld /var/mail
lrwxrwxrwx. 1 root root 10 12月 7 2014 /var/mail -> spool/mail
3.mkdir(新建新目录)
mkdir [-mp] 目录名称
-m:配置文案的权限。直接设置,不需要看默认权限(umask)
-p:直接将所需要的目录(包含上层目录)递归创建起来
mkdir test 创建一个名为test的新目录
mkdir -p test1/test2/test3/test4 自行创建多层目录
mkdir -m 711 test2 新建权限为rwx–x--x的目录
4.rmdir(删除“空”的目录)
rmdir [-p] 目录名称
rmdir test 直接删除(仅能删除空的目录)
rmdir -p test1/test2/test3/test4 循环删除上层目录

文件与目录管理:
1.ls(查看文件与目录 )
ls [-aAdfFhilnrRSt] 目录名称
ls [–color={never,auto,always}] 目录名称
ls [–full-time] 目录名称
ls -a:全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来
ls -al ~:将主文件夹下的所有文件列出来(含属性与隐藏文件)
ls -al --full-time ~完整呈现文件的修改时间
2.cp(复制文件或目录)
cp [-adfilprsu] 源文件 (sourse) 目标文件 (destination)
cp [options] source1 source2 source3
cp -i ~/.bashrc /tmp/bashrc 若目标文件已存在,在覆盖时会先询问操作的进行
cp -a /var/log/wtmp wtmp_2 将文件的所有特性都复制过来
cp -r /etc/ /tmp 复制目录(但是文件与目录的权限可能会被改变,在备份情况下可以用-a)
cp -s bashrc bashrc_slink 创建链接文件,-s为软连接即快捷方式链接到bashrc
cp -l bashrc bashrc_hlink 硬链接
cp bashrc_slink bashrc_slink_1 复制链接的实际文件
cp -d bashrc_slink bashrc_slink_2 复制快捷方式
cp -u ~/.bashrc /tmp/bashrc 目标文件与源文件有差异时才复制
3.rm(移除文件或目录)
rm [-fir] 文件或目录
rm -i bashrc 加上-i会询问你是否要删掉,避免误删
rm -i bashrc* 将开头为bashrc的文件名都删掉(*代表的是0到无穷多个任意字符)
rm -r /tmp/etc 删掉这个不为空的目录(要一直按Y才会删除里面的文件)
\rm -r /tmp/etc 要确定删掉此目录而不做询问(在命令前加上反斜杠,可以忽略掉alias的指定参数 )
4.mv(移动文件与目录或更名)
mv [-fiu] source destination
mv [options] source1 source2 source3 … directory
mv bashrc mvtest 将bashrc文件移动到mvtest目录中
mv mvtest mvtest2 目录重命名(rename命令也可重命名)
mv bashrc1 bashrc2 mvtest2 多个源文件或目录移动到mvtest2目录中

文件内容的查询:
1.cat:由第一行到最后一行连续显示在屏幕上
cat [-AbEnTv]
cat /etc/issue 查看这个文件的内容
cat -n /etc/issue 加行号
cat -A /etc/xinetd.d/rsync 将内容完整显示出来(包含特殊字符)
2.tac:由最后一行到第一行反向在屏幕上显示出来
tac /etc/issue 最后一行先显示
3.nl:显示的时候,顺便输出行号
nl [-bnw] 文件
nl /etc/issue 空白列不加上行号
4.more:一页一页地显示文件内容
more /etc/man.config
5.less:一页一页得显示文件内容,可以往前翻页
less /etc/man.config
空格键:向下翻动一页
PageDown:向下翻动一页
PageUp:向上翻动一页
/字符串:向下查询“字符串”的功能
?字符串:向上查询“字符串”的功能
n:重复前一个查询(与/或?有关)
N:反向重复亲一个查询(与/或?有关)
q:离开less这个程序
6.head:只看头几行
head [-n number] 文件
head /etc/man.config 默认情况下显示前10行
head -n 20 /etc/man.config 显示前20行
7.tail:只看结尾几行
tail [-n number] 文件
tail /etc/man.config 默认情况下显示最后10行
tail -n 20 /etc/man.config 显示最后20行
head -n 20 /etc/man.config | tail -n 10 显示11到第20行的数据
8.od:以二进制的方式读取文件内容!
od [-t TYPE] 文件
od -t c /usr/bin/passwd 使用ASCII方式输出(-t后面接各种类型,c是使用ASCII的方式输出)

文件的时间:
1.mtime(modification time)更改文件内容的时间
ls -l /etc/man.config 默认显示mtime
2.ctime(status time)更改文件状态的时间,如权限、属性被更改
ls -l --time=ctime /etc/man.comfig
3.atime(access time)文件的内容被取用的时间,如cat去读文件时的时间
ls -l --time=atime /etc/man.config

修改文件时间和创建新文件touch:
touch [-acmt] 文件
touch /tmp 创建一个空的文件,如果有这个文件,会更新这个文件的时间
touch -d “2 day ago” bashrc 将时间调整为两天以前
touch -t 0709150202 bashrc 将日期改为2007/09/15 2:02
touch最常被使用的情况是:
1.创建一个空的文件
2.将某一个文件日期修改为目前时间(mtime与atime)

文件默认权限:umask
umask 目前用户在新建文件或目录时候的权限默认值
umask (直接输入,显示出该文件或文件夹的权限默认值)------>0022
umask -S (另一种方式显示权限默认值)------>u=rwx,g=rx,o=rx
umask 002 减掉other用户组的写权限
用户创建文件,默认权限(666)-rw-rw-rw-
用户创建文件夹,默认权限(777)drwxrwxrwx
umask的分数指的是“该默认值需要减掉的权限”
例如:umask值为022
新建文件时:(-rw-rw-rw- )-(-----w–w-)=(-rw-r–r--)
新建文件夹时:(drwxrwxrwx)-(d----w–w-)=(drwxr-xr-x)

文件隐藏属性charrt,lsattr
chattr(设置文件的隐藏属性)
chattr [±=] [ASacdistu] 文件或目录名称
+:增加某一个特殊参数,其它原本存在的参数则不动
-:删除某一个特殊参数,其它原本存在的参数则不动
=:仅有后面接的参数
a:当设置a后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性
i:它可以让文件不能被删除,改名,设置连接也无法写入或添加数据,只有root才能设置这个属性
chattr +i testattr 给予该文件i属性,则不能删除
chattr -iaj testattr 删除这些属性
lsattr(显示文件隐藏属性)
lsattr [-adR] 文件或目录
lsattr testattr 显示文件的隐藏属性 -----> ----ia—j---e- testattr

查看文件类型:file
file ~/.bashrc ---->/root/.bashrc: ASCII text
file /var/lib/mlocate/mlocate.db ---->/var/lib/mlocate/mlocate.db: data

ls -l /etc/man.config 默认显示mtime,就是文件内容上次被更改的时间
ls -l --time=atime /etc/man.config 文件内容被取用的时间
ls -l --time=ctime /etc/man.comfig 文件状态被改变的时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值