Linux 命令

目录

使用

文件

规则

改进

文件

目录操作

文件操作

文件权限

文件属性

用户管理

用户账号

用户组

指令


使用

文件

1. 每种交互式shell脚本下会有一个独立的启动文件.bashrc,可在.bashrc文件里保存个性化设置,如命名别名、路径等,可用来提供工作效率。变动.bashrc是很直接又低风险的,如果不小心配错了,可以删掉这个文件重新配一遍。配置完后,如果想要立刻生效,可以在终端运行~/.bashrc,这样就不必为了生效而重启终端了。

规则

1. 命令后面若接组合可选项,如果可选项之间含意不冲突,则会按从左到右顺序执行。如果含意起冲突,则后面的可选项会覆盖前面的可选项。

2. /表示根目录,~表示用户目录。root用户目录是/root,用户a的用户目录则会是/home/a。

3. 在Linux系统中,目录的默认权限为755,而文件的默认权限是644。如果想创建一个别人看不到内容的目录,只需要将其权限设置为740。

改进

1. 建议使用mv命令代替rm,并使原来的rm命令失效。

示例步骤:

(1). 终端运行vim ~/.bashrc

(2). 复制粘贴如下内容到打开的文件里。

mkdir -p ~/.trash   # 在用户目录下创建一个.trash文件夹
alias rm=del        # 使用别名del代替rm   
del()	            # del函数用于将rm命令修改为mv命令
{  
  mv $@ ~/.trash/  
}  
cleardel()          # cleardel函数用于清空回收站.trash文件夹,y或Y表示确认,n表示取消
{  
    read -p "clear sure?[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" confirm   
    [ $confirm == 'y' ] || [ $confirm == 'Y' ]  && /bin/rm -rf ~/.trash/*   
}  

(3). 终端运行 source ~/.bashrc。然后就可以使用del 【文件名】删除单个文件【移动到回收站】了。

(4). 如果想清空回收站【~/.trash/】,则需要运行cleardel。但要注意cleardel里运行的其实是用rm -rf命令删除回收站目录内文件,删除前会有确认提示,但还是要注意慎用【先看看有哪些文件】。

文件

目录操作

cd 进入目录。

pwd 显示当前目录。

ls  列出文件目录。

ls [-ald] [路径]

-a 列出项目中包含隐藏目录或文件。

-l 列出文件的详细信息,ll命令等同于ls -l。

-i 显示inode,可查看到硬链接。

-d 只列出目录。

mkdir  创建目录。

mkdir [-mp][目录名称]

-m指定要创建目录的权限。

-p递归创建目录。

rmdir  删除空目录。

-p 递归删除目录。

rm 【慎用,建议用mv命令代替rm】删除目录或文件。

-f 强制删除,否则删除不存在的文件时会报错。

-i 确认删除。

-r 删除目录,不加此选项删除目录时会报错。

-rf 删除文件和目录。一定不要运行 rm -rf /,这会删掉所有系统文件

-ir 在删除文件或目录前会给出确认提示。

cp 复制目录或文件。

cp [-driu][来源文件][目的文件]

-d 只拷贝一个软连接【类似于快捷方式】。

-r 拷贝一个目录。

-i 会询问是否覆盖已存在文件。Redhat/CentOS中cp等同cp -i

-u 更新文件,如果目标文件不存在则不更新。

实例:

cp test1/f1 test2/ 将test1目录下的f1移动到目录test2下。

mv  移动目录或文件,源文件和目标文件须同为文件或目录。

mv [-iu等][源文件][目标文件]

-i 会询问是否覆盖已存在文件。

-u 更新文件,如果目标文件不存在则不更新。

讲解:

若目标文件不存在,则会重命名源文件。

若目标文件和源文件都是文件,则会覆盖。

文件操作

touch 创建文件,如果文件已存在则更新其访问时间。

touch [文件名]

echo 写入文件。

echo "A">B  :将内容A写入到文件B当中。B文件原内容会被删除。

echo "A">>B :将内容A追加写入文件B当中。

cat 显示文件内容。

cat [文件名]

-n 显示行号。

-A 显示所有内容。

tac 反向显示文件内容。

more 查看文件完整内容,按空格键看下一屏,按q键提前退出。

按/【或?】键,输入关键词后,则向下【或向上】查找。按n键下一个。

less 多功能查看文件完整内容,可以上翻、下翻。

按空格键看下一屏,按j键向下移行,按k键向上移行。

按/【或?】键,输入关键词后,则向下【或向上】查找。按n键下一个。

head 显示文件的前num【默认为10】行。

head [-n num] [文件名]

tail 显示文件的后num【默认为10】行。

tail [-n num] [文件名]

-f 动态显示文件的后num【默认为10】行。

-f [-n num] [文件名]

du 查看文件或目录磁盘使用的空间。

du [选项][文件]

-a 显示目录及子目录、子文件的大小。

-b 以byte为单位。

-k 以KB为单位。

-m 以MB为单位。

-h 以K,M,G为单位,提高信息的可读性。

-c 显示每个文件或目录大小,也显示总计。

-s 仅显示总计。

--exclude=<目录或文件> 略过指定的目录或文件。

ln 建立硬连接【默认】或软连接。

ln [-s] [来源文件] [目标文件]

-s 建立软连接。

whereis在文件列表库去查找文件。

whereis [-bmsu] [文件名称]

-b: 只找binary文件

-m: 只找在说明文件manual路径下的文件

-s: 只找source来源文件

-u: 没有说明档的文件

grep 使用正则表达式搜索文本,并把匹配的行【标红】打印出来。grep可用于shell脚本,因为 grep可通过一个返回值来说明搜索的状态【0搜索成功,1搜索不成功,2搜索文件不存在】, 所以可以用grep的返回值进行一些自动化文本处理工作。

grep [options] pattern file

-e: 显示多个选项的逻辑或【or】关系。

-E: 拓展的正则表达式。

-v: 显示不被pattern匹配到的行。

-A<显示行数n>: 显示匹配到的内容所在的行及之后n行的内容。

-B<显示行数n>: 显示匹配到的内容所在的行及之前n行的内容。

-C<显示行数n>: 显示匹配到的内容所在的行及之前、之后各n行的内容。

-c: 统计匹配到的行数。

-f File: 从File文件里获取模式【pattern】匹配。

-i --ignore-case: 忽略字符大小写的差别。

-n: 显示匹配到的行号。

-o: 仅显示匹配到的字符串。

-s: 不显示错误信息。

-w: 匹配整个单词。

sed 流编辑器,一次处理一行内容,用来自动编辑一个或多个文件,简化对文件的反复操作。

sed [options] '[地址定界] command' file(s)

-n: 只打印匹配到的行。

-e: 多点编辑,对每行处理时,可以有多个Script。

-f: 把Script写到文件里,如果是多个Script。则换行写。

-r: 支持拓展的正则表达式。

-i: 直接把处理的结果写入文件。

-i.bak: 在将处理结果写入文件前备份一份。

文件权限

chgrp 更改文件的所属组。

  chgrp [组名] [文件名]

chown 更改文件的所属账户。   

       chown [-R] 账户名[:组名] 文件名

-R 只作用于目录,作用是级联更改子目录、子文件的所属账户。

chmod 更改用户对文件的操作权限【r:4 w:2 x:1 -:0】。

chmod [-R] 权限值数字 文件名

chmod还支持u表示主权限【user】,g表示组权限【group】,o表示非本群组【others】的权限,a【all】表示三群全部权限【ugo】。另外,还可以针对u,g,o,a增加(+)、减少(-)、设定(=)某个权限(读r,写w,执行x)。

例如:

一个文件test/test2的权限设置为755:

chmod u=rwx,og=rx test/test2

减少主权限的执行权限:

chmod u-x test/test2

三群权限中全部去掉执行权限:

chmod a-x test/test2

linux下有两个特殊的权限s和t。

s权限只能应用在二进制的可执行文件上,是为了让一般使用者临时具有该文件所属主/组的执行权限【如修改密码时临时拥有root的权限】。s权限。

t权限只针对目录生效,它表示只能让所属主以及root可以删除 (重命名/移动) 该目录下的文件。

例如:

        如果不想让普通用户修改自己的密码,只需要运行:

                [root@localhost ~]# chmod u-s /usr/bin/passwd

        或者

                [root@localhost ~]# chmod 0755 /usr/bin/passwd

        0755最前面的0表示不适用任何特殊权限,该位上的数字可以是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)

umask 设置文件掩码。

umask 三群权限数字

若用户建立普通文件,且预设“没有可执行权限”,只有rw两个权限。最大为666(-rw-rw-rw-)。

若用户建立为目录,则预设所有权限开放,即777(drwxrwxrwx)。

umask后数值代表的含义就是上面两条规则中的默认值(普通文件为666,目录为777)需要减掉的权限。umask可以在/etc/bashrc里面更改。

预设情况下,root的umask为022,而一般使用者为002,因为可写权限非常重要,所以预设会去掉写权限。

文件属性

chattr 修改文件的特殊属性。

chattr  [+-=][ASaci]  [文件或者目录名]

+-=: 分别为增加、减少、设定。

A:文件或目录的访问时间(atime)不可被修改。

S:将数据同步写入磁盘中。

a:只能追加不能删除,非root用户不能设定该属性。

c:自动压缩该文件,读取时会自动解压。

i:文件不能被删除、重命名、设定连接、写入、新增数据。目录内不能新建文件。

lsattr 列出文件/目录的特殊属性。

lsattr [-aR] [文件/目录名]

-a: 连同隐藏文件一同列出。

-R: 连同子目录的数据一同列出。

find 查找文件。

find [路径] [参数]  

-name filename: 按文件名查找文件。

-type type: 通过文件类型【f,d等】查找。f表示一般文件,d表示目录。

-atime n: 在过去n天内被读取的文件。

-ctime n: 在过去n天内被修改的文件。

-amin n:  在过去n分钟内被读取的文件。

-cmin n:  在过去n分钟内被读取的文件。

-empty: 空的文件。

用户管理

用户账号

添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

useradd 添加新的用户账号。

useradd 选项 用户名

  -c <备注> :添加备注文字。

-e <有效期限> :指定账号的有效期限。

-f <缓冲天数> :指定在密码过期多少天后关闭该账号。

-g <群组> :指定用户所属的群组。

-G <群组> :指定用户所属的附加群组。

-d <登入目录> :指定用户登入时的起始目录。

-m :自动建立用户的登入目录。

-r :建立系统账号。

-s <shell> :指定用户登入后所使用的shell。

-u <uid> :指定用户ID。

usermod 修改用户账号。

usermod 选项 用户名

  常用的选项同useradd选项。

passwd 修改用户口令。

passwd 选项 用户名

-l 锁定口令,即禁用账号。

-u 口令解锁

-d 使账号无口令

-f 强迫用户下次登录时修改口令

如果设置用户名,则默认修改当前用户的口令。

userdel 删除用户账号。

userdel 选项 用户名 

-r,它的作用是把用户的主目录一起删除。

用户组

   每个用户都有一个用户组,一个用户可以同时属于多个用户组。组的增加、删除和修改实际上就是对/etc/group文件的更新。不同Linux系统对用户组的规定有所不同。

groupadd 增加一个新的用户组。

groupadd 选项 用户组

      -g GID: 指定新用户组的组标志号【GID】。

      -o    : 允许添加组标志号重复的工作组。

groupmod 修改用户组的属性。

groupmod 选项 用户组

      -g <组标志号>  :设置要使用的组标志号。

-o  :重复使用组标志号。

-n <新群组名称>:设置要使用的群组名称。

groupdel 删除一个已有的用户组。

groupdel 用户组名称

newgrp 切换到其它用户组。

newgrp 用户组名称

指令

which 查找一个命令的绝对路径。

alias 设置指令的别名。

alias [别名]=[指令名称]

注意:

        使用alias给指令命名别名后,仍然可以用指令的绝对路径来调用原指令。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值