linux常用命令
linux装在U盘上 http://zhidao.baidu.com/link?url=rFBh95J8tH1MnmB64is-3kiryYj2_75XADG15FT6O-IvVUoy_VY9rm4wMUm0zOOelvQZlZpxWMATEbPqV_z1fa
Ctrl+z 暂停命令
ls
linux里面 文件和文件夹叫文件
-h 数字以M或G为单位
-a 显示全部文件 包括隐藏文件
-l 显示文件详细信息
-R 大R 递归显示子目录结构
-ld [文件名]显示目录和链接信息
file [文件名] 显示文件的类型和信息
touch 创建空白文件
如果创建一个已经存在的文件会更新文件的修改时间
cd 目录切换
.. 上一级目录
. 当前目录
~ 用户家目录
- 上一个工作目录
pwd 当前的工作目录cvd
cp 源文件(夹) 目标文件(夹)
-r (用于复制文件夹)递归复制整个目录
-v 显示详细信息
-p 不改变文件属性
mv 移动、重命名
mv 源文件(夹) 目标文件(夹)
移动到当前文件夹可以重命名
-p
rm
删除文件(夹)
-r 删除文件夹(递归删除)
-i 交互式
-f 强制删除,没有警告提示
mkdir 创建目录
-p递归创建
rmdir 删除一个空的目录
rm -r 删除一个非空目录
文件系统目录
文件系统目录
bin 可执行文件(叫命令)
boot 引导目录(和内核)
dev 设备文件(设备在linux被抽象为文件)
etc 所有配置文件
home 家目录(每一个用户都有一个家目录 ),保存用户的文件、
lib 库文件(相当于windows的dll)
media 挂载外设用的比如光盘和USB盘
opt 通常用来装大型软件
proc 系统的实时信息(只存在内存中)第次启动都会创建: 可以通过查看里面的文件内容,得到系统的信息/数字文件夹代带一个进程/
sbin 只有root用户才能执行的文件(或叫命令)super bin
sys 系统底层的信息
tmp 临时目录,里面的内容会自动删除
usr 一般的软件装在这里
var 保存一些会经常变化的信息,里面有日志,邮件
时间
date
重新定义输出格式 date +%Y--%M--%D --可以改成别的 前面要加+号
date -s "20:20:20" 修改时间
hwclock (clock) 显示硬件时针时间
cal 显示日历
uptime 查看系统的运行时间
查看文件的内容
命令后加文件
echo "要输出的内容"
cat 显示文件的内容
more 翻页显示文件的内容(只能向下翻页)
less 翻页显示文件的内容(带上下翻页)
head 用以显示文件的头几行(默认10行) head -n 3 显示3行
head 用以显示文件的头几行(默认10行) head -n 3 显示3行
tail 显示文件的末尾几行(同上) (-f 追踪显示文件更新 用来查看日志,文件更新内容也会更新)
查看硬件信息
lspci 查看PC设备 -v 查看详细信息
lsusb 查看USB设备 -v同上
lsmod 查看加载的模块(模块=windows驱动)
关机、重启
shutdown
-h 关闭
-r 重新启动
例:
shutdown -h now 立即关机
shutdown -h +10 10分钟后关机
shutdown -h 23:30 23:30关机
shutdown -r now 立即重启
poweroff 立即关机
reboot 立即重启
归档、压缩
zip new.zip myfile 把myfile压缩为new.zip
unzip myzip.zip 解压缩
gzip myfile 压缩(gzip格式)
if
tar 用以归档文件,不是压缩命令
tar -cvf 归档后的文件(out.tar) 要归档的文件(夹)(/etc)
tar -xvf myfile.tar 解开归档的文件
tar -cvzf backup.tar.gz /etc
-z 参数将归档后的归档文件进行gizp压缩以减少大小
tar -zxvf file.tar.gz 解压缩归档压缩的文件
查找locate
查找locate
locate 快速打找文件和文件夹,此命令需要建立数据库,此命令是从数据库中查找文件,速度比较快,每天更新一次,只能通过关键字查找
locate keyword
updatedb 更新数据库
find 高级查找文件(夹)
find 查找位置 查找参数
查找位置:. 表示当前目录 / 全部文件
find / -name *.conf 查找文件名为.conf格式的
find . -perm 777 -perm表示权限 为777的文件
find . -type d 文件类型为d (文件夹)
find . -name "a*" -exec ls -l {} \; -exec 表示执行,将找到的结果传给ls -l执行, 除了ls -l其他的都是固定格式
find 的查找条件 -name 名字 -perm权限 -user属于某个用户 -group属于某个组 - ctime 基于时间 -type类型 -size 基于文件大小
VIM
VIM 命令直接启动
VIM 是VI的增强版,特别是支持GUI
vim 目标文件的路径
如果目标文件存在,则打开,如果不存在则创建
VIM 三种模式 :
VIM 三种模式 :
命令模式(常规模式)
启动后,默认的模式,任何模式按esc回到命令模式,可以完成选择、复制、粘贴、撤销等操作
插入模式
命令模式中按“i",可进入,在插入模式可以输入编辑文本内容,esc可以返回命令模式
ex模式
命令模式中按 “:”可进入,进入ex模式,光标会移动到底部,在这里可以保存修改或退出VIM
命令模式:
i 在光标前插入文本
o 在当前行的下面插入新行
dd 删除整行
yy 将当前行的放入缓冲区(复制)
n+yy 将n行的内容放入缓冲区(复制n行)
p 将缓冲区中的文本放入光标后 (粘贴)
u 撤销上一个操作
r 替换当前字符
/ 查找关键字
EX模式
:w 保存当前修改
:q 退出
:q! 强制退出,不保存修改
:x 保存并退出 相当于 :wq
:set number 显示行号(或 :set nu)
:! 系统命令 执行一个系统命令并显示结果
:sh 切换到命令行,使用ctrl+d 切换回vim
FDISK 分区工具
FDISK 分区工具
Linux 所有设备都被抽象为一个文件,保存为/dev目录下
硬盘设备名称一般hd[a-z]或sd[a-z] ([a-z])为分区号,, 如hda,hdb,sda,sdb
IDE 设备为hd[a-z],SATA,SCSI,SAS, USB 设备为sd[a-z]
fdisk -l -h 查看硬盘信息(-h用单位表示 )
fdisk /dev/sda 对/dev/sda硬盘进行分区操作并进入分区界面
partprobe 让内核更新分区表
文件系统
操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程
又称之为格式化
没有文件系统的设备为裸(raw)设备
MKE2FS 用来创建文件系统
mke2fs -t ext3 /dev/sda2
参数:
-b blocksize 指定文件系统块大小
-c 建立文件系统时检查坏损块
-l label 指定卷标
-j 建立文件 系统日志
-t 文件类型
DUMPE2FS 查看分区的文件系统信息
dumpe2fs /dev/sda1
E2LABEL 为文件系统添加标签
e2label /dev/sda1 tool 将sda1的标签改变 tool
FSCK 检查差修复损坏的文件系统
fsck /dev/sda2
-y 不提示而直接修复
对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found
系统启动时会对磁盘进行fsck 操作
文件系统挂载
磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用。windows会自动挂载,比如C盘,D盘
mount /dev/sdb1(要挂载的分区) /mnt(挂载点,可以是任务目录)
参数:
-t 指定文件系统的类型(默认是自动读取的)
-o 指定挂载的选项:
ro, rw 以只读或读写形式挂载,默认是rw
sync 代表不使用缓存,直接写入磁盘
async 使用缓存,默认是async
noatime 每次访问文件时不更新文件的访问时间
atime 更新文件的访问时间
remount 重新挂载文件系统
(多个选项用,分开)
mount -o remount, ro /dev/sdb1 /mnt 重新挂载并设置为只读
*mount -l 查看硬盘的挂载点
umount 卸载已挂载的文件系统,
umount /dev/sda3 = umount /mnt
如果出现device is busy报错,表示文件系统正在被使用,无法卸载,
查看文件系统的进程
fuser -m /mnt
正在被使用的文件
lsof /mnt
自动挂载
配置文件/etc/fstab用来定义需要自动挂载的文件系统,文件中第一行代表一个挂载配置,格式如下:
/dev/sda3 /mnt ext4 defaults 0 0
需要挂载的设备 挂载点 文件系统 挂载选项 dump,fsck相关选项
(mount -a命令会挂载所有fstab中定义的自动挂载项)
Linux 的帮助信息
Linux 的帮助信息
命令加 -h 或 --help
ls --help 显示ls 的帮助信息
如果帮助信息左下角显示 ":" 表示可以查询 输入“/内容”
man + 命令 显示命令的帮助信息
-k 查找带关键字的所有命令
用户基础
使用linux时,需要以一个用户的身份登入,一个进程也需要以用户的身份运行,用户的权限可以限制使用者或进程可以使用、不可以使用哪些资源。
-每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名
-每一个用户属于一个主组,属于一个或多个附组
-每一个组拥有一个GroupID
-每一个进程以一个用户身份运行,并受该用户可访问的资源限制
系统中的每一个文件都有一个所属用户及组
用户ID为32位,从0开始,用户ID限制在60000以下:
用户分为三种:
-root 用户 (ID为0的用户为root用户)
-系统用户 (1-499)
-普通用户 (500以上)
*有些设备也有自己的ID,被当作用户
使用ID命令可以显示当前用户的信息
相关文件 :
-/etc/passwd 用户的信息
- /etc/shadow 保存用户的密码
- /etc/group 保存组的信息
查看登录的用户:
-whoami 显示当前用户
-who 显示有哪些用户已经登录系统
-w 显示有哪些用户已经登录并在干什么
创建用户:
-useradd 用户名
这个命令执行的操作:
1、在/etc/passwd中添加用户信息
2、如果使用passwd,则将密码加密保存在/etc/shadow中
3、为用户建立新的家目录 /home/adduser
4、将/etc/skel中的文件复制到用户的家目录中 (里面有一些隐藏文件包括注销时运行的命令的文件和,登录时运行的命令的文件 ,可以在skel里手动建立一个文件之后所有用户的家目录都有这个文件 )
5、建立一个与用户用户名相同的组,新建用户默认属于这个组
修改用户信息:
-usermod 参数 username
参数:
-l 新用户名
-u 新userid
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登录
-U 解除锁定
删除用户
userdel username 保留用户的家目录
userdel -r username 同时删除用户的家目录
创建,修改,删除组
groupadd groupname
groupmod -n newname oldname
groupmod -g newGid oldGid 组ID
groupdel groupname
文件权限
Linux中,每个文件拥有三种权限:
-r(读取)
-w (写入)
-x (执行)
对于目录用户必须有rx权限,否则不能浏览目录
Linux权限基于UGO,模型进行控制:
Linux权限基于UGO,模型进行控制:
-U代表User,G代表Group,O代表Other
-每一个文件的权限基于UGO进行设置
-权限三个一组(rwx),对应UGO分别设置
-每一个文件拥有一个所属用户(U)和所属组(G),不属于该文件所属或组的使用O权限
ls -l 命令的信息(格式)
UGO权限 链接数量 所属用户 所属组 大小 时间 文件名
修改文件所属用户、组
修改文件所属用户、组
-chown改变文件的所属用户:
chown 用户名 文件名
-R (大写)递归修改目录下的所有文件
-chgrp在改变文件的所属组:
chgrp 组名 文件名
-R 同上
修改权限
chmod 模式 文件
(-R 可以递归修改)
-模式的模式:
u,g,o分别代表用户、组和其他
a可以代指ugo
+,-代表加入或删除对应权限
r,w,x代表三种权限
示例:
chmod u+rw chen
chmod g-x chen
chmod go+r chen
chmod a-x chen
支持数字表示权限:
-r = 4 (2^2)
-x = 2 (2^1)
-x = 1 (2^0)
使用数字表示权限时,每组权限分别为对应数字之和:
rw = 4 +2 = 6
rwx = 4+2+1 =7
r-x = 4+1 =5
chmod 660 chen == rw-rw----
chmod 775 chen == rwxrwxr-x
网络基本配置
linux中,网上以eth0,eth1命名,
lspci 查看PCI硬件信息
lsusb 查看usb硬件信息
ifconfig -a 查看所以网上接口信息
ifconfig -eth0 查看特定接口
ifup eth0 开启网卡
ifdown eth0 关闭网卡
setup 向导配置网络地址
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
DNS配置文件
/etc/resolv.conf
静态主机名配置文件
/etc/hosts
主机名配置文件
/etc/sysconfig/network
网络测试
网络连通性
ping 192.168.1.1
host www.baidu.com
dig www.baidu.com
显示路由表
ip route
追踪到达目标地址的网络路径
traceroute www.baidu.com
网络质量测试
mtr www.baidu.com
修改主机名
永久修改:
/etc/sysconfig/network 修改这个 文件
CentOS 7 配置IP 用
nmtui 命令
管道和重定向
命令行shell 的数据流有以下定义:
名称 说明 编号 默认
STDIN 标准输入 0 键盘
STDOUT 标准输出 1 终端
STDERR 标准错误 2 终端
重定向: > 将STDOUT 重定向到文件(覆盖) echo "abc" > outfile
>> 同上(追加)
2> 将STDERR重定向到文件(覆盖)
2>&1 将STDERR与STDOUT结合 报错和输出结果都会保存
< 重定向STDIN grep abc < /etc/passwd (在passwd里文本内查找abc)
管道:
| 将一个命令的STDOUT作为另一个命令的STDIN ls -l | grep bingxing
Linux命令行文本处理工具
grep基于关键字搜索文本
grep 'linuxcast' /etc/passwd
find / -user linuxcast | grep Video
-i 忽略大小写
-n 显示结果所在行
-v 输出不带关键字的行
-A4 输出结果所有行之后的4行
-b2 输出结果所在行之前的2行
cut 基于列处理文本
cut -d: -f3 /etc/passwd 只显示passwd里面用:分开的第三列
grep linuxcast /etc/passwd | cut -d: -f3
-d 指定分割字符(默认是tab)
-f 指定输出的列号
-c 基于字符进行切割 cut -c2-6 /etc/passwd 只显示第2到第6个字符
wc 文本统计
wc+文件名
-l 只统计行数
-w只统计单词
-c只统计节数
-m 只统计字符数
sort 文本排序
sort+文件名(非中文)
-r 倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-tc 使用c作为分隔符分割为列进行排序
-kx 当进行基于指定字符分割为列时,指定对哪(x=?)个列排序
diff文本比较
diff linuxcast linuxcast.net
-i 忽略大小写
-b 忽略空数量的改变
-u 统一显示比较信息(一般用以生成patch)
diff -u linuxcast linuxcast-new > final.patch
tr 处理文本内容
tr -d 'TMD' < linuxcast
tr 'a-z' 'A-Z‘ < linuxcast
sed 以搜索差替换文本(使用的是正则表达式)
sed 's/linux/unix/g' linuxcast s: 搜索 g : 全部替换
sed '1,50s/linux/unix/g' linuxcast
sed -e 's/linux/unix/g' -e 's/nash/nash_su/g' linuxcast 加e可以同时进行多个替换
sed -f sededit linuxcast sededit 可以是一个文件,内容是 ''里的内容,不要每次都写''里的内容
RPM安装
安装软件: rpm -i software.rpm
卸载软件: rpm -software
升级形式安装: rpm -U software-new.rpm
rpm支持通过http,ftp协议安装软件
可以加入以下参数:
-v 显示相关信息
-h 显示进度条
rpm -qa 列出所有安装的rpm软件
rpm -qf filename 查询目标文件属于那个rpm包
rpm -qi packagename 查询指定已安装rpm软件信息
rpm -ql packaname 查询指定已安装rpm软件包含的文件
rpm -qip software.rpm 查询rpm文件的信息
rpm -qlp software.rpm 查询rpm文件包含的文件
导入秘钥:
rpm --import rpm-gpg-key-centof-6
验证rpm文件:
rpm -K linuxcast--1.0-i-i386.rpm
验证已经安装的软件
rpm -V software