1、basename路径:取路径基名
dirname路径:取路径目录名
2、type命令:用来查看命令类型
bash中命令有两中类型:
builtin内置命令:在shell程序中实现的命令即为内建命令
外部命令:在文件系统上的某一个位置有一个与命令名称对应的可执行文件
shell:事先通过变量(PATH)设定好了多个路径,当用户输入命令时,shell会自动到这些路径(由左至右)查看与命令名称相同的可执行文件,查找到并执行过的文件会被保存到一个hash查找表中;可以使用hash查看此表
3、which命令:查看一个可执行程序的具体路径
命令格式:
command options arguments
命令 选项 参数
选项:调整命令的执行特性的,选项可以有多个,多个选项之间必须以空格分隔
短选项:-char,可以合并
长选项:--word,不可以合并
命令参数:就是命令的作用对象,有些命令可以带多个参数,各参数间需要使用,号分隔
4、获取帮助命令
内置命令:
help 命令名,例如:help cd
外部命令:
命令 --help
使用手册:manual
man 命令
使用帮助中命令格式的字符意义:
[]:可选的部分
{a|b}分组,a和b作为一个使用单元来使用
|:或者,只能选其一
<>:必不可少的部分
...:同类内容可以出现多个
man的简要使用机制:
空格键:向文件尾部翻一屏
b:向文件首部翻一屏
回车键:向文件尾部翻一行
k:向文件尾部翻半屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
1G:首行
G:最后一行
文本搜索:
/kerword:向文件尾部搜索
?kerword:向文件首部搜索
n:跟搜索命令相同的方向的(下一个)
N:跟搜索命令相反的方向(上一个)
q:退出
补充:man其实能为命令(普通命令、管理命令)、程序的配置文件格式、系统调用、库调用、游戏及其他不变归类的文件提供帮助文件。
man命令的分段机制:
1-8:
查看某关键字在哪些段落中有使用帮助,可使用两种方式:
whatis keyword:精确查找,如果whatis数据库尚未生成,可以使用makewhatis手动生成
man -k keyword:模糊查找
info命令:获取在线文档:大部分应用程序都自带有文档,在/usr/share/doc下。
5、系统管理类命令:
shutdown -r :重启
shutdown -h:关机
shutdown -c:取消重启或者关机命令
shutdown命令的时间格式:
now :立即
+ #:#分钟之后
HH:MM:几时几分
reboot:重启电脑
6、日期时间管理类命令:
date:显示系统时间
hwclock:显示硬件时钟时间
Linux有两个时钟,硬件时钟和软件时钟,软件时钟开启时读取硬件时钟
hwclock -s :以硬件时钟为准,--hctosys
hwclock -w:以系统时钟为准,--systohc
date使用格式:
#date MMDDhhmm[CC]YY.ss
#date [+format]
%Y:四位年份
%y:两位年份
%m:月
%M:分
%d:日
%H:时
%S: 秒
%D: 日期
%F:日期
%T:时间
%s:unix元年,从1970-01-01 00:00:00到现在的时间
7、目录切换、文件的添加、删除
可以通过cd命令在目录间进行切换:
/ :根分区,根文件系统,rootfs
. :当前所在目录,工作目录
.. :返回到上一级目录,到/目录下之后无法继续返回,/是根目录
- :返回至上一次所在目录
~ :用户家目录
pwd命令:显示用户当前所在目录即工作目录
mkdir:创建目录
-p :先创建父目录
-v :显示详细信息
rmdir: 删除空目录,如要删除非空目录可以使用,rm命令:
rm -r :递归删除
rm -f :强制删除
history:查看命令历史记录:
-c:清空列表
-d #:删除指定的历史命令
-a :追加当前会话的历史命令至历史文件中去;
命令历史相关的环境变量:
HISTSIZE:命令历史中可以保存的命令个数
HISTFILE:命令历史文件
HISTFILESIZE:命令历史文件中可以保存的命令的个数
HISTCONTROL:控制命令历史的生成:
ignoreedups:忽略记录重复的命令;连续的的相同命令才为重复
ignorespace:不记录以空白字符开头的命令,
ignoreboth :同时具有ignoreedups、ignorespace的特性;
8、文件类型:
Linux文件类型:
普通文件: - ,f
目录文件: d
链接文件(一般指符号连接文件):l
设备文件:
字符设备:c
块设备:b
命令管道:p
套接字文件:s
9、Linux文件时间戳:
访问时间:atime
修改时间:mtime
改变时间:ctime
touch
access time,atime
modify time,mtime
change time,ctime
-c:不创建空文件
-a:仅修改访问时间
-m:仅修改修改时间
ctime无法人为操控 ctime就是当前系统时间
-t: STAMP: [CC]YYMMDDhhmm.SS
10、ls命令使用方法:
-a:显示所有文件,包含隐藏文件
-l:长格式
-d :显示目录自身的信息,通常与-l同时使用
-r: 逆序显示
-R:递归显示
-h:易读的格式
-i:inode号,index node
- rwxr-xr-x 1 root root Feb 22 2013 rvi-> vi
文件类型 文件权限 硬连接数 宿主 宿组 最近修改时间 链接文件 原文件
alias:命令别名
alias 别名=’原始命令'
unalias:取消命令别名
11、文件管理相关命令
文本文件查看:
file File :查看文件内容的格式
cat:
-E:显示行结束符
-e:显示非打印字符,相当于-vE
-n:显示时给行按顺序编号
-s:多个连续的空白行显示为一个空白航
tac:按行逆序显示
分屏显示命令:
more:向后翻屏,不能向前
less:可以使用前后翻屏
head:从头部读取文件
-n #:可以指定读取文件的前几行,在获取某一行时可以和tail联合使用
-# :同上
tail:从尾部读取文件
-n #:读取文件的从尾部开始的几行
-f:显示一个文件后不退出,等着其他文件写入并显示出来,可以用来监控日志
echo命令的用法:
-e:
\033[##m
第一个#:3表示前景色,4表示背景色
第二个#:颜色,1-7
\033[0m:控制符结束
-n:不为显示内容自动换行
文件操作:
touch:创建空文件,可以用来改变atime、mtime、ctime
cp:COPY
CP SRC DEST
假如src是一个文件:
如果目标是一个文件且目标存在:覆盖
如果目标文件不存在:创建新文件
如果目标存在,且是个目录:复制源至目标目录
cp SRC...DEST
假如SRC有多个文件
如果目标存在,且是一个文件:复制无法进行
如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名
如果目标不存在:复制无法进行
如果SRC只有一个且是目录: -r 递归复制
如果目标是一个文件且存在:失败
如果目标文件不存在:创建新目录
如果目标存在,且是个目录:复制源目录至目标目录中,且保持原名
cp命令的常用选项:
-r:递归
-i:交互 提醒用户的
-d:复制链接文件本身而非指向的源文件
-a:相当于-dr
-p:保留原有属性
-f:强制
mv:移动,和microsoft的剪切意思一样 移动文件用法和cp相近
可以直接移动目录,而无须-r选项
mv /tmp/passwd /tmp/abc 改名
mv /tmp/passwd /var/tmp/abc 移动
rm:移除文件
删除非空目录:# rm -rf File
权限:read,write,execute
文件的三种权限:r,w,x
r:可以使用内容查看类的命令来显示其相关内容。
w:可以使用编辑器修改器内容。
x:可以将其发起一个进程。
目录:
r:可以使用ls命令查看目录内容的文件信息:
w:可以创建,删除文件
x:可以使用ls-l命令查看目录内容的文件的信息,并且可以使用cd命令切换此目录为工作目录
用户不拥有某个权限,则使用-占位:
r-x:可读可执行
r--:只读权限
rw-:可读可写不可执行
创建用户:
useradd UserName
/etc/passwd:
用户名:x(密码占位符):UID:基本组ID GID:备注信息comment:家目录:默认shell
/etc/shells 当前系统上安全的shell列表
useradd:adduser
-u:UID:指定UID
-g gid:指定GID,即指定用户的基本组,但GID要事先存在
-G GID:指定用户的额外组,组要事先存在;
-d:/path/to/somewhere:
-c: "comment"
-s:/path/to/shell:指定默认的shell,应该指定使用/etc/shells文件中出现的shell
-m:创建用户时,强制给用户创建家目录。
-M:创建用户时,但不创建家目录。
-D:dafault,为useradd命令创建的用户指定新的默认值
-r:创建系统用户
id:1-499为系统用户, 不会为用户创建家目录,默认shell为/sbin/nologin
groupadd GrpNAME
-g GID:创建组并且其指定GID
用户类别:
管理员:0
普通用户:1-65535
系统用户:1-499
登陆用户:500+
用户组:
管理员组
普通组
userdel:删除用户,默认保留家目录
格式:userdel UserName
-r:一并删除家目录,
passwd:用来设定用户密码
管理员设定密码直接输入passwd即可,而普通用户需要输入passwd 用户名
如何修改用户默认shell命令:
修改用户默认shell:chsh
修改用户注释:chfn
usermod:修改用户的属性信息
-u: UID:设定用户uid
-g: GID:设定用户gid
-G: GID:默认会覆盖原有的附加组;如果是添加,则同时使用-a选项
-c: String:修改注释
-d:/path/to/new_home: 默认不会迁移用户的家目录;如果要迁移,则同时使用-m
-s :SHELL:更改用户默认shell
-l: New_login_name:
-L:锁定用户账号
-U:解锁
如何修改组属性定义:
groupmod:
-g GID:修改组gid
-n New_GrroupName:修改组名
查看用户的相关信息id:
用法:id UserName
-u:显示UID,跟-n一起使用则显示用户名
-g:显示基本组ID,跟-n一起使用则显示基本组名
-G:显示所有组ID,跟-n一起使用则显示所有组名
su:Switch user
切换用户:
用法:su Username
-l:登录的方式切换到某一用户
-c:‘command’:以另外一个用户的身份执行某一命令
newgrp:切换到别的组
chmod命令:
操作三类用户的权限:使用8进制形式
chmod OCTAL-MODE file..
755:rwxr-xr-x
644:rw-r--r--
700:rwx------
操作指定类型类别用户的权限:使用u,g,o来赋权,基于=或+/-来进行
u:属主
g:属组
o:其他
a:所有
=:操作指定类别用户的权限:u=,ug=, u=,g=,
+/-:操作指定类别用户的单个权限
-reference=要参照的文件 要修改的文件
参照其他文件的权限为当前文件赋权
umask:
创建文件:666-umask
文件默认绝不允许出现执行权限:
umask 023
666-023=644
创建目录:777-umask
root:022
如果用户名和基本组组名一致:002;否则为022;
修改文件的属主或属组:chown,chgrp
-R:递归
--reference=
修改用户的属主、属组
chown[option] UserName [:|.Groupname] file
权限应用模型:
进程的属主,是否与文件的属组相同;如果相同,进程则以文件属主的权限来访问文件,否则进程的属主所属的组,是否其中之一与文件的属相同;如果相同,进程则以文件属组的权限来访问文件;否则,进程则以文件的其他用户的权限来访问文件;
12、文本处理类的命令:wc,word count
wc [option] [file]...
-l:统计行数
-c:统计字节数
-w:统计单词数
tr:转换字符或删除字符
tr '集合1' '集合2':和集合1一样的改为集合2对应的内容
tr -d '字符集合' :删除字符集合中的任何字符
cut:
-d字符:指定分隔符
-f#:指定要显示的字段
单个数字:一个字段
逗号分隔的多个数字:指定多个离散字段
-:连续字段,如3-5;
显示所有用户的用户名:cut -d: -f1 /etc/passwd
显示所有用户的用户名和默认的shell:
cut -d: -f1,7 /etc/passwd
sort:
sort[option] file ...默认按照字符串比较顺序的
-f:忽略字符大小写;
-n:按照数字大小排序
-t:指定分隔符
-k:用来指定分隔后进行比较的字段
-u:重复的行,只显示一次;
uniq:移除重复的行,重复的行是连续的重复的行
-c: 显示每行重复的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行
以上是一些常用基本命令的总结,由于时间仓促,总结的不好的地方还请见谅。
-