1.浏览文件或文件夹
ls
选项:-l 列出详细信息
linux文件类型
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(chareacter)
l:符号链接文件(symbolic link file)
p:命名管道(pipe)
s:套接字文件(socket)
linux文件权限 9位字母,每三位一组,rwx(读写执行)
文件被硬链接的次数
文件的属主(owner)
文件的属组(group)
文件的大小:默认是字节
时间戳(timestamp):这里显示的是最近一次文件内容被修改的时间。还有两种时间为:最近一次被访问的时间(读),修改的时间(modify指的是文件内容发生修改),最后一次被改变的时间(文件包含两种数据,即数据数据,属性数据,属性数据又被称为元数据,属性被修改成为改变)
-h :human readable 将单位换算为人类刻度的单位
因此可以经常写为ls-lh
-a:显示所有文件,包含以.开头的隐藏文件
-A:显示所有隐藏文件,不包含 . 和..
-d:显示目录自身属性,例如:ls -ld /root
index node,简称为inode
例如ls -i 用来显示文件的节点索引号
-r :逆序显示文件(默认是正序文件名)
-R:递归显示
2.切换目录
cd + 目录名
cd不加任何参数为回到用户的家目录
cd ~回到自己家
cd ~用户名: 进入指定用户的家目录
cd -回到上一个目录
3. 查看linux命令类型
内置命令(shell内置):为了方便执行,自带一些管理命令如:cd
外部命令:在文件系统的某个路径下有一个与命令名称相应的程序
例如:
type cd显示结果为 cd is a shell builtin说明为内部命令
type ls 显示结果为/bin/ls
3.1 printenv显示系统环境变量
3.2 hash 列出缓存的命令
4.显示和修改时间
硬件时钟与系统(是软件模拟的)时钟
clock :查看硬件时间
hwclock:也是查看硬件时间
date 设置时间如:date 0226104913.30 设置为2月26日10点49分30秒 2019年
date +"Today is %d"
date +"%Y-%m-%d %H:%M:%S" 显示年月日时分秒
date +%s 显示1970年开始的世纪秒
hwclock -w将系统时间同步到硬件去
hwclock -s将硬件时间同步到系统时钟
4.1获取命令帮助
内部命令:help COMMAND 例如help cd
外部命令:加长选项--help 获得简要 帮助信息。
info 也可查看命令帮助
帮助文件:/usr/share/doc
使用man COMMAND 用手册来查看帮助
分章节显示命令
man LAND=en
whatis command查看命令在哪个章节:如whatis read
1章:用户命令,所有用户都可以(/bin:/usr/bin/:/usr/local/bin)
2章:系统调用
3章:库调用
4章:特殊文件(设备文件)
5章:文件格式,配置文件。如,passwd 。
6章:游戏
7章:杂项(Miscellaneous)
8章:管理员才能使用的命令(/sbin:/usr/sbin:/usr/local/sbin)
如man 5 passwd
用来查看文件帮助
man passwd 用来查看命令
如:man 2 read 查看系统调用的read
查看命令帮助的一般约定:
[ ]中括号括起来的可以省略
<>尖括号是必须给出的
竖线分割代表必选其一
...可以出现多次
{} 分组
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明
DESCRIPTION:命令功能的详细描述,包括每一个选项的意义
OPTION:说明每一个选型的意义
FILES:此命令想干的配置文件
BUGS:
EXAMPLES:
SEE ALSO:另外参照
翻页方法
向后翻一屏: 空格键
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找:
/关键字:向后
?KEYWORD:向前
退出:q
n:下一个
N:前一个
如:man lvcreate
4.2日历 cal
5.echo
6.printf
printf "The year is 2013" 默认没有换行符
printf "The year is 2013\n" 使用\n可以换行
7.file 如:file /bin/lb
windows:PE
Linux:ELF 为可执行文件
rootfs:根文件系统
FHS:文件系统层级标准,规定了Linux发行版应该创建那些目录,
并且在固定的位置看到相应的文件。
/boot:系统启动相关的文件,如内核、initrd、以及grub(bootloader)
vmlinux-2.6.18-308.el5操作系统启动用到的内核
initrd-2.6.18-308.el5.img操作系统映像
/dev:设备文件
如果光驱设备显示为dvd,cdrw
或者cdrom,显示为青色的是符号链接文件,
尝试用:ls -l /dev查看发现有很多链接,
如:cdrom指向sr0 ,dvd和scd0也指向sr0
大多数发行版都可以通过cdrom来引用
设备文件分类:
块设备:随机访问,例如磁盘;
字符设备:只能线性访问,以字符为单位,例如鼠标、显示器、键盘;
背景为黑色,前景为×××的文件,存储为只有数据,没有元数据。
主设备号(major)和次设备号(minor)
/etc:配置文件
/home:家目录
/root:root的家
工作的时候千万不能用root登录
/lib:库文件
/lib/modules:内核模块文件
静态库, .a ; .la(windows)
动态库:.dll (windows); .so(shared object),在内存中只存储一份
lost+found:任何分区都会有
/media: 挂载点目录,通常用于挂在移动设备
/mnt:挂载点目录,额外的临时文件系统
/misc:杂项
/opt:optional可选目录,早期用于安装第三方软件,例如早期oracle.
/proc:伪文件系统,系统启动起来不为空,内核映像文件,内核的统计数据或配置。例如网卡发送多少个数据包,是否支持IPV4.系统调优会用。
/sys:伪文件系统,跟硬件设备相关的属性映射文件。例如修改磁盘调度队列
/tmp:临时文件,公共临时文件,一个月之内没有被修改,会被自动删除;任何一个用户都可以创建文件,但是只能删除自己的文件,不能删除别人的文件。
/var:可变化的文件
lock:锁文件
log:日志
run:
tmp:另一个临时文件存储目录
/bin:可执行文件,用户命令
/sbin:可执行文件,管理命令
/usr:universil shared read-only全局共享只读文件
/usr/bin
/usr/sbin
/usr/lib
/usr/local:第三方软件
/usr/local/bin:
/usr/local/lib:
命名规则:1.长度不超过255个字符;2.不能使用/当文件名;3.严格区分大小写
===========================================================
linux基本操作
1)文件管理
2)目录管理
ls
cd
pwd
mkdir -p /root/x/y/z
-v 显示创建过程
在同一路径下同时创建多个文件夹
可利用Bash Shell 提供的花括号展开
mkdir -pv /mnt/test/{x/m,y}
展开为
mkdir -pv /mnt/test/x/m /mnt/test/y
例子:在/mnt/test2/目录下用一条命令创建
a_b,a_c,d_b,d_c
mkdir /mnt/test2/{a,d}_{c,d}
波浪线展开
~USERNAME
删除目录(空目录)
rm /mnt/test2
rmdir -p /mtn/test2/a_c 删除一脉单传的目录
文件的创建删除
touch a :如果存在a文件,把a的时间戳改掉
touch -a a :只改变访问时间。
touch -m a :只改变修改时间
但是以上两条命令同时也改变了 change time
change time 是无法通过touch 改变的
touch -m -t 201212121212 a
修改了 Modify time为2012年12月12日12时12分12秒
install 只能操作文件
mv 移动文件/文件夹
touch -c c 不建立c文件
stat 显示一个文件的状态信息
tree 查看文件系统树
cp 难点,较复杂 默认会将链接复制为文件
-P 保持为链接
-l 如果是链接就复制链接指向的文件
-d 保持链接
-a 不改变文件的一切属性,归档复制,常用于备份
文本处理命令:
cat more less head
tail tac cut
grep
uniq :报告重复的行,如果三行一样但不相邻,并非一样的行
例子 uniq sort.txt
-d 只显示重复的行
-c 报告某一行重复了几次
cut 按标号分割字符串
例子:cut -d : -f1 /etc/passwd 以分隔符:分割,显示第一个字段
-d :指定字段分隔符,默认是空格
-f +数字 :显示指定的字段 如果 -f1,3 显示第一个第三个; -f1-3显示1到3字段
join 合并文本
sort文本排序
例子:sort /etc/fstab : 用于排序显示文件,默认升序
-n 按照数值大小排序
-r 按照降序排序
-t 指定分隔符
-k 指定按照哪个进行排序
例子:
sort -t: -k3 /etc/asswd 以冒号分割,按照第三个字段排序
sort -t: -k3 -n /etc/asswd 以冒号分割,按照第三个字段排序,并按照数字排序
-u 如果排序完成之后又重复的行,只显示一次
-f 排序时忽略字符大小写
wc 文本统计 word count
例子wc /etc/fstab 报告 8行 48个单词 608个字节
-l 只显示行数
-w 只显示单词数
-c 只显示字符数
-L 最长的一行包含多少个字符
tr字处理命令转换或删除字符
例子:tr ab AB 把a换成A,把b换成B
tr只能用文件重定向,不支持加文件名参数
例子:tr 'ab' 'AB'< /etc/passwd
tr 'a-z' 'A-Z'< /etc/passwd 把所有的小写换成大写
tr -d 'ab' 出现字符a和b的时候都会被删除,使用此选项只有一个参数即可。按照单个字符删除而不是单词
sed
awk(最难)
linux shell 特性
c shell 类似于C语言,Cshell比Bshell更强大
K shell 功能更强大,但是只能付费才能使用,后来分为社区版和
BashShell 指的是原来shell的增强版。遵循开源协定。
bash shell 可以支持个性化配置
shell 有子shell概念
输入bash可以进入子shell
export LANG=en
通过exit可以退出子shell
通过pstree 可以查看到其中关系
通过csh可以切换到cshell
通过ksh可以切换到kshell
bash特性
1、命令历史、命令补全
bash会自动记录命令并记录到内存
history
history 即可显示命令历史,
黑客打扫痕迹会用到
例子:不想让别人知道自己执行过哪些历史
-c 清空整个命令历史
-d +行号例子:history -d 500删除第500行的历史命令
例子:history -d 500 10从第500个开始向后删10个
历史命令的存储文件~/.bash_history
-w:保存命令历史到历史文件中
环境变量中有个
HISTSIZE:命令历史大小
echo $HISTSIZE 默认是1000
!n:叹号加数组,用来执行第n条命令
!-n:执行倒数第n条命令
!! 执行上一条命令
!str :执行命令历史中以指定字符串开头的命令,如:!man
!$ :可以引用上一个命令的最后一个参数,如:nano !$
按下esc 松开再按.也可以引用上一个命令的最后一个参数
alt+.(远程终端不支持)
补全命令:输入cl 敲两下tab键,路径也可补全
2、管道、重定向
3、命令别名
例子:alias cls=clear把clear起个别名为cls
alias CMDALIAS=COMMAND [OPTION] [ARG]
如果有选项空格等,需要用单引号引起来
关闭之后就没有
通过配置文件,可永久使其生效
alias cdnet='cd /etc/sysconfig/network-scripts'
alias cls='clear'
alias cp='cp -i'
还有根据自己的
unalias +别名:撤销别名
命令替换
把命令中某个子命令替换为其执行结果的过程
echo "The current director /root."没有任何替换
echo "The current director $(pwd)" 就是先执行命令,并用返回的结果拼接会原来的字符串
touch ./file-$(date +%F-%H-%M-%S).txt 建立文件名以日期命名
echo "Dir is `pwd`"
命令替换的方法:
$(cmd [option] [arg])
使用反引号`cmd [option] [arg]`
双引号:称为弱引用,可以实现变量替换,用变量的值来替换变量的名字
单引号:弱引用,不完成变量替换
4、命令行编辑
5、命令行展开
6、文件名通配 globbing
* 匹配任意长度的任意字符,没长度也可以
? 任意单个字符
[] 匹配指定范围内的任意单个字符 [abc]从abc中选一个,[a-z] [0-9]
[^] 托字符,指定范围之外的单个字符
[[]]两个中括号,
[:space:] 空白字符
[:alpha:] 所有字母 [^[:alpha:]]非字母
[:upper:] 大写字母
[:lower:] 小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
[:punct:] 标点符号
#man 7 glob可以获得这些说明
字母开头字母结尾,中间含有空格
[[:alpha:]]*[[:space:]]*[[:alpha:]]
touch a123 ab123 abc xyz x12 xyz123
以一个字母开头,后面跟数字的文件名
以a开头,后面跟任意字符
ls a*
以a开头,以3结尾
ls a*3
以字母开头,后面跟任意数字的文件
[a-zA-Z]*[0-9]
以a开头,后面跟了一个数字,后面又跟任意字符
显示文件名中包含了空白字符的文件
ls
以任意一个字符开头,后面跟了y,又跟了任意字符
ls ?y*
ls [^0-9]*
显示所有以a或m开头的文件
ls [am]*
显示所有文件命中包含了数字的文件
ls *[[:digit:]]*
显示所有以数字结尾且文件名中不包含空白的文件
ls *[^[:space:]]*[[:digit:]] 这是错误的,这个问题要依赖于正则表达式
显示文件名中包含了非字母或数字的特殊符号的文件
ls *[^[:alnum:]]* 这个也是有疑问的
7、变量
8、编程
通过man bash可以查看bash的帮助。
快捷键
命令光标跳转
ctrl+a :调转到行首
ctrl+e : 调到行尾
ctrl+d :
ctrl+u :删除光标至命令行首的内容
ctrl+k :删除光标至命令行尾的内容
ctrl 加左右箭头可以向左右跳转一个单词(只有模拟终端支持)
ctrl+l 可以清屏
3)启动程序
4)设备管理->安装系统
5)软件管理 安装与卸载
6)进程管理
7)网络管理