目录管理

  ls、cd、pwd、mkdir、rmdir、tree

ls(list) 列出,列表  

用法: 

ls
  -l:长格式
    文件类型:
      -:普通文件 (f)
      d: 目录文件
      b: 块设备文件 (block)
      c: 字符设备文件 (character)
      l: 符号链接文件(symbolic link file)
      p: 命令管道文件(pipe)
      s: 套接字文件(socket)
    文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
    文件硬链接的次数
    文件的属主(owner)
    文件的属组(group)
    文件大小(size),单位是字节
    时间戳(timestamp):最近一次被修改的时间
    访问:access
    修改:modify,文件内容发生了改变
    改变:change,metadata,元数据
  -h:做单位转换
  -a: 显示以.开头的隐藏文件
  . 表示当前目录
  .. 表示父目录
  -A
  -d: 显示目录自身属性
  -i: index node, inode
  -r: 逆序显示
  -R: 递归(recursive)显示

cd(change directory)

用法:

cd ~USERNAME:进入指定用户的家目录

cd ..:进入父级目录

cd -:在当前目录和前一次所在的目录之间来回切换

cd:进入当前用户主目录

pwd(Printing Working directory)

显示当前路径

mkdir(make directories)

  -p:创建目录树

  -v:显示创建目录的信息

  此两个命令联合使用最有效。

  mkdir -pv /hehe/heihei/haha

创建多级目录

  mkdir /test/{x/m,y}

  mkdir /test/{a,d}_{b,c}

rmdir(remove directory)

  -p 若目录为多级目录,从最后一个目录开始删除。

文件管理

  touch、stat、file、rm、cp、mv

touch(change file timestamps)修改文件时间戳

  -a:修改文件访问时间

  -m:修改文件修改时间

  -t:使用[[CC]YY]MMDDhhmm[.ss]格式修改文件时间戳

  -c:创建空文件

rm(remove)

  移除文件或者目录

  -i:进行确认提示。(在同时给定了-f和-i选项时,列在最后的生效。)

  -f:忽略不存在的文件,并且从不向用户提示。

  -r:或者 -R 递归地移除目录树。

cp(copy)

  -i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  -f 覆盖已经存在的目标文件而不给出提示。
  -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  -r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  -l 建立硬链接,而非复制
  -d 复制符号链接

mv(move)

  移动(改名)文件 

  -t: 指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

日期时间
date、clock、hwclock、cal

显示日期的指令: date(显示系统时间)
hwclock(显示硬件时间)
-w:系统时间同步到硬件时间
-s:硬件时间同步到系统时间
显示日历: cal
计算器: bc

查看文本
cat、tac、more、less、head、tail、tee

cat 连接文件并在标准输出上输出

  -n:显示文本行数

  -E:在每行结束显示 $

head:查看前n行
tail:查看后n行
  -n
tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容;

tee:既显示输出内容,又把内容输入到文件中。

文本处理

cut:
  -d: 指定字段分隔符,默认是空格
  -f: 指定要显示的字段
  -f 1,3
  -f 1-3

文本排序:sort
  -n:数值排序
  -r: 降序
  -t: 字段分隔符
  -k: 以哪个字段为关键字进行排序
  -u: 排序后相同的行只显示一次
  -f: 排序时忽略字符大小写

uniq: 删除排序中重复的行
  -c: 显示文件中行重复的次数
  -d: 只显示重复的行

文本统计:wc (word count)
  -l:输出换行符统计数
  -w:输出单词统计数

  -c:输出字节统计数
  -L:输出最长的行的长度

字符处理命令:tr —— 转换或删除字符
  tr [OPTION]... SET1 [SET2]
  -d: 删除出现在字符集中的所有字符

命令历史
history 查看
  -c:清空命令历史
  -d OFFSET [n]: 删除指定位置的命令
  -w:保存命令历史至历史文件中

命令历史的使用技巧:
!n:执行命令历史中的第n条命令;
!-n:执行命令历史中的倒数第n条命令;
!!: 执行上一条命令;
!string:执行命令历史中最近一个以指定字符串开头的命令
!$:引用前一个命令的最后一个参数;

 用户与用户组及其权限管理

用户管理

useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

useradd,添加用户
  -c 描述
  -d 家目录
  -g 所属组
  -G 附属组
  -s 环境变量
  -u uid

例:useradd -c thisisauser -d /home -g whych -G whych -u 2017 -s /sbin/nologin

chage 修改账号密码有效期限
  -M 最大天数
  -m 最小天数

userdel 删除用户
  -r 同事删除用户的家目录

usermod,修改用户信息
  -c<备注>:修改用户帐号的备注文字;
  -d<登入目录>:修改用户登入时的目录;
  -e<有效期限>:修改帐号的有效期限;
  -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
  -g<群组>:修改用户所属的群组;
  -G<群组>;修改用户所属的附加群组;
  -l<帐号名称>:修改用户帐号名称;
  -L:锁定用户密码,使密码无效;
  -s<shell>:修改用户登入后所使用的shell;
  -u<uid>:修改用户ID;
  -U:解除密码锁定。

id:查看用户的帐号属性信息
  -u:显示用户id
  -g:显示组id
  -G:显示附加组
  -n:显示真实id

finger: 查看用户帐号信息
finger USERNAME

chsh: 修改用户的默认shell

chfn:修改注释信息

组管理
groupadd, groupdel, groupmod, gpasswd

创建组:groupadd
groupadd
  -g GID
  -r:添加为系统组

groupmod
  -g GID
  -n GRPNAME

groupdel

gpasswd:为组设定密码

权限管理
chown, chgrp, chmod, umask

chown: 改变文件属主(只有管理员可以使用此命令)
chown USERNAME file,...
  -R: 修改目录及其内部文件的属主
  --reference=/path/to/somefile file,...

chown USERNAME:GRPNAME file,...
chown USERNAME.GRPNAME file,...

chgrp GRPNAME file,...
  -R:同上

chmod: 修改文件的权限
chmod +|- MODE file,...
  -R:同上

修改某类用户或某些类用户权限:
u,g,o,a
chmod 用户类别=MODE file,...

修改某类用户的某位或某些位权限:
u,g,o,a
chmod 用户类别+|-MODE file,...

特殊权限(suid、sgid、sticky)

一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置。

setuid: 使文件在执行阶段具有文件所有者的权限。

setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

sticky bit: 该位可以理解为防删除位。一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。

换种理解方法如下:

SUID:运行某程序时,相应进程的属主是程序文件本身的属主,而不是启动者。
SGID:运行某程序时,相应进程的属组是程序文件本身的属组,而不是启动者。
Sticky:在一个公共目录,每个都可以创建文件,删除,而其它人不能。

操作:
chmod u+s file — 为file加上setuid标志. (setuid 只对文件有效)
如果file本身有执行权限,则s显示小写,否则大写。

chmod g+s file — 为file目录加上setgid标志 (setgid 只对目录有效)
如果file本身有执行权限,则s显示小写,否则大写。

chmod o+t file — 为file文件加上sticky标志 (sticky只对文件有效)
如果file本身有执行权限,则t显示小写,否则大写。


权限位:SUID(4),SGID(2),STICKY(1)
000:

001:只有sticky

. . .:
111:suid+sgid+sticky(6)

chmod 3755 /tmp/test 此处是4位权限位。3就代表是sgid+sticky
所以经常看到的umask总是四位
umask 0022

文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限+1

umask 022

默认创建文件和目录的权限就是:
文件:666-022
目录:777-022

facl (filesystem access control list)

可以针对单一用户、单一文件或者目录来进行rwx的权限控制。如某一个文件,不让单一的某个用户访问。

setfacl :设置某个文件/目录的ACL设置项目
  -m:设置后续acl参数 

  -x:删除
  -R:递归设置

getfacl:
取得某个文件/目录的ACL设置项目

文件查找
locate
非实时,模糊匹配,查找是根据全系统文件数据进行的。
速度快

find
实时,精确,支持众多查找标准
遍历指定目录中的所有文件完成查找,速度慢。


-name 'FILENAME':对文件名作精确匹配
文件名通配:
*:任意长度的任意字符
?
[]
-iname 'FILENAME': 文件名匹配时不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配

-user USERNAME: 根据属主查找
-group GROUPNAME: 根据属组查找

-uid UID: 根据UID查找
-gid GID: 根据GID查找

-nouser:查找没有属主的文件
-nogroup: 查找没有属组的文件

-type
f:普通文件
d:目录
c:特殊字符文件
b:特殊块文件
l:符号链接
s:套接字

-size [+|-]
k
M
G

精确匹配:
-perm MODE
-MODE:任意以为匹配即满足条件
/MODE:文件权限能完全包含次MODE时才符合条件
find / -perm /222

组合条件
-a:and
-o:or
-not:

-mtime n 查找系统中最后n*24小时数据修改的文件
-ctime n 查找系统中最后n*24小时状态被改变的文件
-atime n 查找系统中最后n*24小时访问的文件


-mmin n 查找系统中最后n分钟数据修改的文件
-cmin n
-amin n

xargs与-exec

xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数。

# find  . -name test11.txt | xargs rm

-exec rm {} \;:{} 表示命令的参数即为所找到的文件,以;表示comman命令的结束。\是转义符。

# find  . -name test222.txt -exec rm {} \; 对每个匹配的文件执行一个单独的rm操作

登录信息命令

  w,who,last,lastb,lastlog

终端:
pty #:物理终端
tty #:虚拟终端
ttys #:串行终端
pts #:伪终端

w:显示已经登录的用户以及他们在做什么
who:显示已经登录的用户
last:显示 /var/log/wtmp文件用户登录历史及系统启动历史
  -n #:显示最近#次的历史

lastb:显示/var/log/btmp文件,显示用户错误的登录尝试
  -n #:显示最近#次的历史
lastlog:显示每一个用户最近一次的成功登录信息
  -u USERNAME:显示特定用户最近的登录信息

basename:
$0:执行脚本时的脚本路径及名称

linux基础命令用法的更多相关文章

  1. Linux——基础命令用法(上)

    一.Linux基础命令 1.Linux命令行的格式 命令行的格式为:用户名+主机名+当前工作目录 输入内容的命令格式为:命令 [-短选项/--长选项] [参数] [root@localhost ~]# ...

  2. Linux——基础命令用法(下)

    一.linux用户 1.什么是用户 用户是用来运行某一些进程.拥有某一些文件或目录. 在Linux里面,用户分成三大类:root用户.系统用户.普通用户. 用户是用UID来唯一标识身份的,且root用 ...

  3. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  4. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  5. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  6. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  7. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  8. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  9. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

随机推荐

  1. Using PL/SQL APIs as Web Services

    Overview Oracle E-Business Suite Integrated SOA Gateway allows you to use PL/SQL application program ...

  2. ARC时代的内存管理

    什么是ARC Automatic Reference Counting (ARC) is a compiler feature that provides automatic memory manag ...

  3. 新版MATERIAL DESIGN 官方动效指南(一)

    Google 刚发布了新版Material Design 官方动效指南,全文包括三个部分:为什么说动效很重要?如何制作优秀的Material Design动效及转场动画,动效的意义.新鲜热辣收好不谢! ...

  4. C++中的new/delete

    不同于C语言中的malloc/free是库函数,C++语言中的new/delete是运算符,而不是库函数. new/delete执行流程 我们经常会接触到的是new/delete operator(就 ...

  5. JDBC 连接Oracle

    工作中,我们遇到的操作数据库代码都是封装起来的,今天我们就来看看,最基本的利用JDBC来操作数据库. JDBC连接数据库主要有三个步骤: 第一步:加载数据库驱动.通常我们使用Class.forName ...

  6. The 12th tip of DB Query Analyzer, powerful in text file process

    MA Gen feng ( Guangdong Unitoll Services incorporated, Guangzhou 510300) Abstract   It's very powerf ...

  7. asp.net 分布式探讨之Session共享问题

    ---恢复内容开始--- Session共享是分布式架构设计中的一大难点,尽管session共享的解决方案不少,但是.net 下的解决方案还是比较少,而且说明文档也很少. 之前尝试用memcached ...

  8. 深入源码解析类Route

    微软官网对这个类的说明是:提供用于定义路由及获取路由相关信息的属性和方法.这个说明已经很简要的说明了这个类的作用,下面我们就从源码的角度来看看这个类的内部是如何工作的. public class Ro ...

  9. poi excel 常用操作

    基本 Workbook wb= new HSSFWorkbook(); Sheet sheet = wb.createSheet("sheetName"); Row row = s ...

  10. javascript初学者必须注意的7个细节

    [IT168 技术]每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任意类型的变量,这门脚本语言看起来很简单,然而想要写出优雅的代码却是需要不断积累经验的.本文列举Java ...