文件(夹)操作
-
mkdir
创建文件夹,-p
如果路径中有不存在的则会创建 -
rmdir
删除空文件夹 -
mv
移动(重命名)文件或文件夹 -
rm
删除文件,删除文件夹-r
,强制-f
-
cp
复制文件,复制文件夹-r
vi(vim)
- 进入后为命令模式,
i
切换插入模式,ESC
返回命令模式,在命令行模式下按下shift + :
进入末行模式 - 用
vi
打开一个不存在的文件,如果没往里写,最终不会创建文件 - 末行模式
q
退出,q!
强制退出 - 末行模式
wq
保存后退出,wq!
强制保存后退出 - 末行模式
set nu
和set nonu
显示和取消行号 - 末行模式
n
回到第n行首列 - 命令模式
gg
回到首行首列,shift + g
回到末行首列 - 命令模式
yy
复制当前行,5yy
复制当前行开始后的5行,p
在当前位置粘贴 - 命令模式
dd
删除当前行,5dd
删除当前行开始后的5行 - 命令模式
u
撤销上一步 - Home键回到行首,End键回到行末
cat
-
cat file
输出文件内容,-n
显示行号 -
tac file
反向顺序输出 -
tail -n file
输出文件末尾n行,默认10行 -
head -n file
输出文件前n行,默认10行 -
cat file1 > file2
,将file1的内容覆盖file2;cat file1 >> file2
,将file1追加在file2末尾 -
cat > file
覆盖file的内容,file不存在则创建;cat >> file
往file追加内容,ctrl + d结束,cat > file << '00'
指定结束符;cat > file1 < file2
将file2的内容覆盖file1
echo
-
echo "hello" > file
用hello覆盖file;echo "hello" >>file
,在file末尾追加hello
touch
-
touch file1 file2
创建文件
file
-
file file-name
判断文件类型
wc(wordcount) 统计
wc -l file
统计行数
wc -w file
统计单词数
wc -c file
统计字符数
du 统计文件大小
du -h file
人性化地显示单位
more和less
查看文件(分页查看)
visudo
编辑/etc/sudoers文件,给某个用户sudo权限
/etc/inittab
/etc/passwd
用户信息文件,格式如下
管理员用户只有一个:UID=0的用户就是管理员用户,一般情况下,默认它的用户就是root,家目录:/root
root :x :0 :0 :root :/root :/bin/bash
用户名 密码 uid gid 组名 家目录 所用的shell
grep 正则匹配
- 文件内搜索
grep keyword file
在文件内搜索关键字
用户
-
useradd username
添加用户 -
passwd username
给用户设置密码 -
userdel -r username
删除用户并删除其家目录 -
groupdel groupname
删除用户组
su 切换用户
su - username
切换到username,普通用户切换到root用户需要输入root的密码,root切换到普通用户不需要密码,exit退出回到之前的用户
权限
Linux中用户的分类
所有者(u) 同组用户(g) 其他人(o) 所有人(a)
Linux中文件权限
读(r,4) 写(w,2) 执行(x,1) 没有权限(-,0)
文件权限详情格式(ll命令显示的那种)
文件类型(-普通文件,d目录文件,l链接文件),文件权限,文件链接个数,文件所有者,文件所属组,文件大小,文件创建时间或最后修改时间,文件名
chmod修改文件权限,chown修改文件所属
chown username:groupName file
chown :groupName file
chown username: file
名字
-
hostname
显示主机名 -
uname
显示unix name
who
who
显示已登录的用户
whoami
显示当前用户
网络
-
ifconfig
类似于Windows下的ipconfig -
route
查看路由信息 -
traceroute
路由跟踪,类似于Windows下的tracert -
iptables
防火墙 -
iw
无线网相关(机器需要有无线网卡和对应的网卡驱动) ip
服务
service s_name start|stop|status|restart|reload
(reload为重新载入配置)
chkconfig 开机启动项
chkconfig --list
列出开机启动项,0-6代表的是各个runlevel
chkconfig s_name --list
列出s_name的开机启动设置,s_name为chkconfig --list
里面的一项
-
chkconfig s_name on/off
设置该项是够开机启动
netstat 端口管理
-a
列举所有的连接,服务监听等。
-t
列举tcp协议的服务
-u
列举udp协议的服务
ps
查看进程
-
kill -9 pid
杀死进程
jobs
后台进程
前后台进程
当前进程就是前台进程
-
ctrl + c
结束当前进程,ctrl + z
暂停当前进程,并放到后台去 - 在一条命令的后面加上
&
表示将此命令后台运行 -
fg
从后台调一个到前台运行 -
bg
从被暂停的进程中唤醒一个运行,在后台运行
管道符|
连接多条命令,上一条命令的输出作为下一条命令的输入
xargs
给命令传递参数
gzip(或zip(zip和unzip))压缩与解压
后缀为.gz
,压缩后原文件没了,不能对文件夹压缩
-
gzip file
压缩 -
gunzip file.gz
解压
bzip2压缩与解压
后缀为.bz2
,适合压缩比较大的文件,压缩后原文件没了,不能对文件夹压缩
-
bzip2 file
压缩 -
bunzip2 file.bz2
解压
tar
后缀为.tar
,将多个文件或文件夹打包成一个包
-
tar -zcvf file.tar source
压缩source为file.tar -
tar -zxvf source.tar -C targe
解压到target目录
重启与关机
关机:halt
orinit 0
orshutdown -h now
重启:reboot
orinit 6
orshutdown -r now
logout
注销
修改mac,ip,hostname
修改mac地址 vim /etc/udev/rules.d/70-persistent-net.rules
修改ip vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改hostnamevi /etc/sysconfig.network
rpm
redhat package manager
-
rpm -qa
查询所有本机的rpm包 -
rpm -ivh xxx.rmp
安装 -
rpm -e xxx
卸载,--nodeps
忽略依赖
yum
从仓库中安装
-
yum install xxx
安装 -
yum remove xxx
卸载
at 一次性定时任务
at 命令可以用来执行一次性任务,任务的命令是可以手工输入,也可以从文件读取
crontab 周期性定时任务
发出crontab -e
命令后,会让选择一个编辑器,在里面每新增加一行,就多一个任务,每个任务 (每行) 的格式都是具有六个字段,这六个字段的意义分别为:
意义 分钟 小时 日期 月份 周 命令
范围 0-59 0-23 1-31 1-12 0-7 具体命令(周的0和7都代表周日)
另外,*
代表全部,,
隔开多个值,-
代表一个时间段,/
代表每隔固定时间,示例如下:
每年的12月31号,每个整点执行一次脚本/root/cron.sh:
0 * 31 12 * /root/cron.sh
每天的0点和12点整执行脚本/root/cron.sh
0 0,12 * * * /root/cron.sh
每周一到周五上午8点执行脚本/root/cron.sh
0 8 * * 1-5 /root/cron.sh
每隔5分钟执行一次脚本/root/cron.sh
*/5 * * * * /root/cron.sh
或者
0-59/5 * * * * /root/cron.sh
注意,不能同时指定周与日月,也就是说,如果指定了具体日期,就不要指定周几了;分钟这一栏,如果不希望每分钟一次,则一定要指定;如果为 *,则每分钟都要执行一次
文件目录
硬链接和软链接
//创建硬链接
ln oldfile newfile
创建软链接
in -s oldfile newfile
我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。下图展示了程序通过文件名获取文件内容的过程。
在 Linux 系统中查看 inode 号可使用命令 stat 或 ls -i(若是 AIX 系统,则使用命令 istat)。使用命令 mv 移动并重命名文件后,其结果不影响文件的用户数据及inode号。
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名(hard link 就是 file 的一个别名,他们有共同的 inode)。硬链接可由命令 link 或 ln 创建。
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
- 文件有相同的 inode 及 data block;
- 只能对已存在的文件进行创建;
- 不能交叉文件系统进行硬链接的创建;
- 不能对目录进行创建,只可对文件创建;
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制: - 软链接有自己的文件属性及权限等;
- 可对不存在的文件或目录创建软链接;
- 软链接可交叉文件系统;
- 软链接可对文件或目录创建;
- 创建软链接时,链接计数 i_nlink 不会增加;
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相- - 关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。