1、 常用目录及其作用
/root root用户的家目录,在生产环境中不允许用root用户登录
/home家目录,root用户的家目录不在/home目录
/etc 各种配置文件
/bin 二进制文件,用户可以执行的程序和命令。这是一个软连接,指向/usr/bin/var 可变化的数据文件:日志文件、邮件文件
/var 可变目录,用以存放经常变化的文件如日志文件
/var/log/
/var/log/messages 系统日志文件
/var/spool/mail 邮件文件
/dev 设备文件 任何设备与接口设备都是以文件形式存在于这个目录的
/sbin 可执行文件 管理员命令
/media 媒体目录,也是挂载点目录通常挂载光盘,移动硬盘
/lib 系统的函数库库文件和内核模块文件,这个目录是用来存放系统动态连接共享库的。
2、 系统维护类
ls 列出目录下的内容(list)
ls -l 以长列表方式列出 =ll
ls -r 逆序列出
ls -d 查看当前目录.
ls -ld 长列表列出当前目录的详细信息
ls -lh 显示目录或文件大小
ls -a 列出隐藏文件,包括.和..
ls -A 列出隐藏文件,不包括.和..
ls -i 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。
pwd
cd 切换目录 change directroy
date 时间
passwd 改用户密码
修改密码:passwd 用户名 直接输入passwd修改当前用户的密码
删除密码:passwd -d 用户名
man manual手册
man 命令
man ls 查看ls的使用手册
Who
last 列出目前与过去登入系统的用户相关信息。
ps 当前系统进程信息
3、 文件管理
Touch 文件名 创建文件
文件命名规则:
(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
(2)文件名不能超过255个字符
(3)区分大小写file File FILE fIle
(4)目录也是文件,在同一路径下,两个文件不能同名
创建多个普通文件:
方法1:touch 文件名1 文件名2 文件名3
方法2:touch {文件名1,文件名2,文件名3}
touch {1,2}{3,4}
cd
切换目录 cd. Cd..
Stat查看文件的详细信息
rm删除文件,命令别名默认带-i,该选项用来提示用户进行交互。
force,强行删除,不提示-f
-r recursive,递归删除来删除目录
More支持向后翻,在没有翻到最后一屏时支持向前翻,空格/k/回车
Mv移动文件: 等同Windows里面的剪切,移动之后原文件消失
-i 提示
-f 强制覆盖
-t 先写目标 后写源
Cat 连接并显示文件到标准输出
-n 显示行号,行号只是行号,不是文件内容
不带任何选项时,从标准输入接收输出到标准输出
Less 前后翻,用法同man,man手册就是用less命令打开的
Head 查看文件前n行,默认是10行
-n 指定多少行
-LINE NUMBER 直接用行数作为选项
Tail 查看文件后n行,默认是10行
-n 指定多少行
-f follow,查看文件后并不退出,滚动显示追加内容
Grep文本过滤显示:可以根据特定的字符串,对指定文件的每一行进行搜索,如果找到了这个字符串,就将含有这些内容的行输出。
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep ^[q] 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep ^[0-9] 文件名
匹配以q或者f开头的行:grep ^[qf] 文件名
不匹配以q或者f开头的行:grep ^[^qf] 文件名
匹配oo前面不是f或者g的字符串:grep [^gf]oo 文件名
匹配以#号开头的行:grep ^#
过滤空白行:grep ^$
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
-l:查询多文件时只输出包含匹配字符的文件名
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
find
1.与时间有关的参数:共有-atime,-ctime,-mtime。ll --time=atime
-mtime n:意义为在n天之前的一天之内被更改过的文件;-mtime 4,前4~5那一天的文件名
-mtime -n:列出在n天之内(包含n天本身)被更改过的文件名;-mtime -4,小于等于4天内的文件名
-mtime +n:列出在n天之前(不包含n天本身)被更改过的文件名;-mtime +4,大于等于5天前的文件名
find /-mtime 0 #0代表目前的时间,所以从现在开始到24小时前有改动过内容的文件都会被列出来
find /etc/ -newer /etc/passwd寻找/etc/下面的文件,如果文件日期比/etc/passwd新就列出
2.与用户或者用户组名有关的参数
-uid n:n为数字,这个数字是用户的账号ID,即UID
-gid n:GID
-user name:根据文件拥有者寻找文件
-group name:根据文件所属组寻找文件
-nouser:寻找文件的所有者不存在/etc/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group(当你自行安装软件时,很可能该软件的属性当中并没有文件所有者)
3.与文件权限及名称有关的参数
-name filename:查找文件名为filename的文件,支持通配符和?(由于find命令自己能解析通配符的含义,所以加引号不会让和?这两个符号失效)
-size [±]SIZE:查找比SIZE还要大(+)或者小(-)的文件。这个SIZE的规格有:c代表字节,k代表1024字节。-size +50k表示要找比50kB还要大的文件。
-type TYPE:根据文件类型查找文件,一般正规文件f,设备文件c、b,目录d,链接文件l,socket(s),FIFO(p)
-perm -mode:根据文件权限寻找文件。-perm -0744,当一个文件权限为4755时,也会被列出来。
-perm +mode:查找文件权限“包含任一mode的权限”的文件。-perm +755,当一个文件权限为-rw-------时也会被列出来,因为它有rw的属性存在
find /bin /sbin -perm +6000找出在/bin和/sbin这两个目录下具有SUID或SGID的文件
4.其他可执行的操作
-exec command:command为其他命令,-exec后面可再接其他的命令来处理查找到的结果
-print:将结果打印到屏幕上,这个操作是默认操作
find / -perm +700 -exec ls -l {} ;
{}表示“由find找到的内容”,find的结果会被放置到{}位置中。
-exec一直到“;”是关键字,代表额外命令的开始(-exec)到结束(;),在这中间的就是find命令内的额外命令。额外的命令不支持命令别名。
ln 为文件创建链接文件
ln -s 创建软链接文件
硬链接(hard link):
A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。
软链接(soft link):
A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
eg:在root家目录创建文件file, 在/目录下创建file文件的软链接文件haha
~]#touch file
/]#ln -s /root/file haha
~]#ln -s file /haha
touch 文件名 创建文件
ln 原文件 目标文件 创建硬链接
ln -s 原文件 目标文件
4、压缩和解压缩
gzip
(1)压缩文件gzip:gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
(2)解压文件:gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
bzip
(1)压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
(2)解压文件:bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
xz
LZMA2压缩算法,比gzip、bzip压缩的文件更小。
-z, --compress # 强制压缩
-d, --decompress, --uncompress
# force decompression
-t, --test # 测试压缩文件的完整性
-l, --list # 列出有关.xz文件的信息
-k, --keep # 保留(不要删除)输入文件
-f, --force # 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout
# 写入标准输出,不要删除输入文件
-0 … -9 # 压缩预设; 默认为6; 取压缩机和
# 使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme # 尝试通过使用更多的CPU时间来提高压缩比;
# 要求不影响解压缩存储器
-T, --threads=NUM # 最多使用NUM个线程; 默认值为1; set to 0
# 设置为0,使用与处理器内核一样多的线程
-q, --quiet # 抑制警告; 指定两次以抑制错误
-v, --verbose # 冗长; 指定两次更详细
-h, --help # 显示这个简洁的帮助并退出
-H, --long-help # 显示更多帮助(还列出了高级选项)
-V, --version # 显示版本号并退出
tar
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
v— 归档或解包过程中显示被打包的文件
C—这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f— 输出结果到文件,必须写该选项
–exclude=FILE在打包的过程中,不要将 FILE 打包! --排除某个文件打包
常见的两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 -C 目标路径 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
查看已压缩文件:tar tf 文件名
5、用户管理
useradd (adduser)
添加系统用户:useradd -r 用户名,添加系统用户,不创建主目录和邮箱
添加用户并用选项指定参数:useradd 用户名 -u uid号 -g gid号/组名 -G 附加组/组名 -c 备注 -s 指定shell -d 指定家目录
usermod
-c 改变用户的全名或者说描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-f 密码的过期宽限时间
-g 改变用户的gid
-G 将用户添加入一个新组
-s 改变用户的默认shell
-l 改变用户用户名
-u 改变用户的uid
-L 锁住密码,使账号不能用
在/etc/shadow中的密码字段前加一个!
-U 为用户密码解锁
删除文件中密码字段前的一个!
给用户追加附加组:usermod -a -G 组名 用户名
userdel
userdel -r 用户名 删除用户和用户文件
userdel 用户名 只删除用户
groupadd
添加用户组
创建组:groupadd -g gid 组名
groupmod
修改组信息:groupmod -n 新组名 -g gid 原组名
groupdel 删除组
id
查看用户信息
w
显示目前登陆系统的用户信息
w命令 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息
第一行显示目前的时间、开机多久、几个用户在系统上的平均负载等;
第二行只是各个项目的说明;
第三行以后,每行代表一个用户。
who
显示目前登陆系统的用户信息
显示系统中有哪些用户登录了系统,显示的资料包含使用者ID、使用的登录终端、上线时间、空闲时间、CPU占用,以及做了些什么
who [options] [user]
-h:不要显示标题列
-u:不要显示使用者的动作/工作
-s:使用简短的格式来显示
-f:不要显示使用者的上线位置