root@localhost ~
root :当前登陆用户 localhost: 主机名. ~: 家目录, home下的二级目录 \# :当前登陆超级用户命令 [选项] [参数]
例如:
ls -l ls -lh显示格式:
前10位表示什么啊:第一位表示文件类型, 后面9位表示用户和组
.所有者u 所属组g 其他人o 的权限 用 r读 w写 x执行 标示 后面部分 ACL权限 引用计数 最后一次修改时间
ls -a 显示包括隐藏文件(什么意义 告诉你系统文件,别轻易改) ls -d 只显示目录信息,而不是文件 ls -h 人性化显示,后面跟文件大小 ls -i 显示文件id号cd [directory]
cd ~ 到家目录 cd - 返回上次目录 cd .. 到上一层目录(福利:Ctrl +L 清屏快捷键) (概念: .相对路径 .绝对路径)
rmdir 只删除空目录
rm -f [目录名](虚拟机时间不准 没有电池)
cp -a [s] [t] 所有属性一起复制 ll 是 ls -l 缩写,可以设置不需要加 -r 也是改名命令 mv [s] [t] linux开发的问题
bin的几个位置:
根目录下的bin和sbin,usr目录下的bin和sbin 这四个目录都是用来保存系统命令的,区别在sbin只有root才能执行.
boot 启动目录 启动数据 dev 设备目录 etc 配置文件 lib 函数库的保存位置media mnt misc: empty directoty, 挂载外接盘符,mnt就可以,老的linux没有其他两个空目录
pro sys 内存中的数据不应该操作 usr 系统软件资源目录,比如
usr/bin/系统命令(普通用户) usr/sbin/系统命令(超级用户)var:系统可变文档的目录
linux是一个严谨系统, 别随便改.
英文link
并不建议创建硬链接
类似windows快捷方式
软连接拥有自己的i节点合Block块,但是数据只保存源文件名和i节点号,并没有实际的文件数据
.lrwxrwxrwx中 l是软连接的意思,而且软连接的权限一般都是这样的.
.修改任意文件,另一个都改变
.删除源文件,软连接不能使用
command: touch [fire]: create a file ll -i : list all info. and node id of the file在后台数据库按文件名搜索,优点搜索速度快
.var/lib/mlocate #locate命令所搜索的数据库
updatedb,因为不是实时的
缺点只能按照文件名搜索
etc/updatedb.conf 里面定义了筛选规则. 比如tmp目录下创建文件不会被搜索到.whereis 和which也遵循这个筛选规则.
查看命令命令执行目录和帮助文档所在位置
-b 只看命令位置 m 只看文档位置cd 命令不能被找到,是shell命令.
查看PATH 环境变量, echo PATH
精确搜索find / -name install.log
通配符: a[cd] *[cd] ?
[]–括号内的任意一个 ?–任意一个 *任意多个
find /root -name install.log find /root -iname install.log 不区分大小写 find /root -user root 搜索固定所有者的文件 find /root -nouser 搜索指定目录下没有所有者的文件 即垃圾文件,但是外来文件和内核产生文件没有所有者 find /var/log/ -mtime(modify) +10 -10 十天内修改的文件 10 10天当天修改文件 +10 10天前修改文件atime 文件访问时间
ctime 改变文件属性
mtime 改变文件
find . -size 25 按照文件大小搜索
+25k 25k -25kfind . -inum 2131132 按节点搜索 ls -i 相反
find /etc +20k -a -size -50 -a and -o or find /etc +20k -a -size -50 -exec ls -lh {} \;命令2处理命令1的结果
grep [选项] 字符串 文件名
-i 忽略大小写 -v排除指定字符串grep 包含匹配 , find 是完全匹配
帮助命令man man [命令名] /-g 可以查询相关命令.
man -f [comment] 配置文件帮助等级 相当于what is man 1 ls man 1 null apropos passwd 查处所有含有关键字的命令信息其他帮助命令
1.获取选项帮助
ls --help获取shell命令帮助
help shell 内部命令
whereis 能够找到位置是后来安装的,而像cd这样的事找不到的,是系统自带的.
所以用 help cd 才可以
3.info 更详细的命令 太麻烦,信息杂
tar.bz2 先打包再压缩
tar -cvf 打包文件源文件 -c 打包 -v 显示所有文件 -f 打包后文件名再 gzip 打包文件
bzip2 打包文件解压缩
gzip -d 压缩文件 tar -xvf 包名麻烦直接 tar就可以做
选项 -z : 压缩成 ..
tar -zxvf 压缩包名选项 -x 解压缩
tar -jcvf 压缩包.tar.bz2选项 -c : 压缩成 ..
tar -jxvf 压缩包名.tar.bz2 -C 指定解压缩位置选项 -x 解压缩
tar -ztvf 压缩包.tar.gz 查看而不解压不安全命令:
halt poweroff init 0重启命令
reboot init 6 //不要用了runlevel 显示运行级别,之前运行级别与现在运行级别,以启动就进入钱一个级别是N(null)
远程时每次要退出.
-o 特殊选项(读写权限 exec(是否挂在分区的可执行文件可执行)) 用户登陆查看和用户交互命令
mount -o remount,noexec /home/ 取消home分区的执行文件的权限. mount -o remount,exec /home/ 恢复home分区的执行文件的权限. 把boot分区搞成这样就起不来了1.退出光盘目录
unmount /mnt/cdrom/如果强制换盘,linux容易崩溃
u盘名字 sdb1
fdisk -l 查看u盘设备文件名 mount -t vfat /dev/sdb1 /mnt/usb/挂载NTFS分区不太好
linux不支持NTFS系统, ntfs-3g 安装后默认支持,只能只读
JCPU 所有CPU耗费 PCPU当前CPU耗费
who last 查询当前登陆和以前登陆用户的信息 存在 /var/log/wtmp中 lastlog 用户名 登陆终端登陆IP 最后一次登陆时间linux 标准 Bash bourne 和 c 两种
echo $变量名 sh // 切换到另一个shell操作终端可以接连调用好几个层级.
执行方式: 命令后加分号
echo -e "" alias 显示别名 alias ls= "ls --color=never" 设置命令别名 alias vi ='vim'永久生效,配置环境变量配置文件
vim ~/.bashrc write the alias set source ~/.bashrc unalias vi 暂时删除命令别名绝对路径或相对路径执行的命令
执行别名
按照Path环境变量定义的目录下的查找顺序第一个找到的命令
命令补全和文件补全
1.标准输入输出
键盘 /dev/stdin 标准输入 0 (文件描述符) 显示器 /dev/stdout 标准输出 1 (文件描述符) 显示器: /dev/stderr 标准错误输出 2(文件描述符)2.输出重定向
标准输出重定向
命令 > 文件 以覆盖的方式把输出输出到指定文件或设备当中 命令 >>文件 以追加的方式把命令正确输出输出到指定文件或设备中标准错误输出重定向()注意大于号左右两边都没有空格,你要知道命令是会报错的,所以很少用.
错误命令 2>文件 错误命令 2>>文件标准输出重定向复合:
命令 > 文件 2>&1 正确的写入文件 错误2的写入正确&1也写入文件
命令 >> 文件 2>&1 命令 &>文件 命令 &>>文件 命令>>文件1 2>>文件2 // 很有用输入重定向(很少见,一般软件安装打补丁时候)
wc [选项] [文件名]
wc -c 统计字节数
wc -w 统计单词数
wc -l 统计行数
输出
几行几个单词几个字符
wc < 文件名 统计文件的几行几个单词几个字符, 不加小于号也可以 wc << 输入结束标记(几乎没用过) 管道符号多命令顺序执行
; 多个命令顺序执行 && 只有命令1正确执行 命令2才执行 || 第一条命令不正确执行 命令2才执行管道符 |:
ls -l /etc | more 命令1的结果作为命令2的对象,命令2一定要可以操作命令1输出才可以 netstat -an (established,由客户端正在链接) netstat -an | grep ESTABLISHED 查看有多少各人正在链接.$ 调用和得到变量的值
单引号'' echo '$a' 输出$a 双引号"" echo "$a" 输出变量值 反引号`` echo `ls` 先执行,再把结果赋给变量 = $() \#注释