1.shell的介绍
shell在Linux中充当了一种重要的角色,主要是提供了人机交互的接口,可以认为shell是用户命令输入,然后shell解释命令,执行命令执行系统调用,最终操作到硬件,获得数据后返还到shell,然后shell把数据传递给用户。启结构如图1.1所示。
图1.1 shell结构图
【1】浏览目录 ls -lha
-l 列表; -h human read , 显示为K,M,G等; -a all 列出所有目录。
【2】history
查看历史记录。$HISTSIZE 历史记录的容量。可在 ./.bashrc 文件中对其值就行修改。
【6】通配符。
* 任意长度的字符;? 匹配任意的一个字符; [...] 匹配指定的字符;[..-..] 匹配某一范围的字符;[^ ... ] 除了指定字符外的都匹配。
【7】管道 |
将第一个命令的输出作为第二个命令的输入,叫做管道。ls /dev/ | wc -w;ls /bin | grep "ls"。
【8】测试文件
wc -w file.txt 测试文件单词数。参数: -l 测试行数;-m 测试字符数; -c 测试字节数
【9】按照文件的内容,查找文件
grep "内容" 路径 -r // -r 递归查询
【10】输入输出重定向
1,输出重定向:>file 如果文件不存在创建。存在清零。 >>file 如果文件不存在创建,存在追加。3,
出错重定向: 2> 或 &>,2>> 。在Linux输出终端中:0 标准输入,1 标准输出,2 标准出错
【11】命令置换
命令替换是将一个命令的输出作为另一个命令的参数。示例:ls `pwd`
【12】自我定位
pwd /// 得到当前的绝对路径
【14】已知文件的名字,查找文件的路径。格式:find 路径 -name 文件名
【15】查看文件首尾
head /proc/cpuinfo 默认查看前10行。 tail /proc/cpuinfo 默认查看后10行。 head -8 /proc/cpuinfo 查看指定的行数
【16】比较两个文件
示例:diff file.txt file1.txt 找出不一样
【17】echo 向终端输出字符串
echo "hell 123" // 字符串的原样输出; echo hell 123 // 输出字符串,省略部分空格; echo -n hello woeld // 输出内容,不换行
【18】passwd 为用户设置密码
sudo passwd root
【20】date 查看系统时间
date 查看时间 ;修改时间:sudo date -s hh:mm:ss ;修改年月日:sudo date -s month/day/year
修改时区:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
【22】磁盘查看指令
df -aTh // T -- type 类型;// h -- h 人类可读; // a -- all
【23】du 查看文件的大小
du -h; -ah 文件目录
【24】用户管理
用户相关信息文件:
/etc/passwd 其中信息为:
linux:x:1000:1000:linux,,,:/home/linux:/bin/bash
用户名:密码:用户id:组id:个人信息:家目录:登录shell
/etc/group 其中信息为:
linux:x:1000:
组名:密码:组id: 成员列表
密码信息相关文件 : /etc/shadow
linux:$6$a/ougl.t$XTLaBUDQ2nKPLHR0JlRL9.Zi5MYKgLUuaVLwpUMP3mcjWkVWeII9NYg1uM58AmBrY7xFzmZhA4R2ob7.hXNGh1:16718:0:9....
1, 创建一个用户 sudo adduser u1
2,删除用户 sudo deluser --remove-home u1
3,创建用户时模板文件 /etc/skel 。新用户家目录中所有的文件,都是通过 /etc/skel目录下拷贝而来。
4,创建一个新用户所用到的配置文件 /etc/adduser.conf
5,删除组用户delgroup 组名
【25】查看系统的分区情况:cat /proc/partitions
【26】链接文件 ls -i 查看文件inode 号
1, 硬链接
对文件进行备份, 并没有开辟空间
ln file.c linkname
2, 软链接
ln -s file.c linkname // 类似于windows下的快捷方式
【27】压缩
3, tar 归档并且压缩。 tar cjf file.tar.bz2 filelist;tar czf file.tar.gz filelist。
tar xvf *.bz2; tar xvf *.gz
【28】网络配置问题
ubuntu配置网络的方式有两种,一种是配置 /etc/network/interface文件,或者配置 /etc/NetworkManager/NetworkManager.conf文件来达到网络的配置。
那么到底配置哪一个呢?或者说系统使用的是哪一个配置呢?这个是系统通过判断/etc/NetworkManager/NetworkManager.conf 文件中的 managed 的值来判断按照那个文件来设置。如果 managed = false 则以interface文件配置为准,如果 managed = true 则以NetworkManager.conf文件配置为准。
在这里,我们设置 managed = false 则以interface文件配置为准,配置 的步骤如下:
1. 修改interface配置文件: sudo vi /etc/network/interfaces 并设置参数如下:
auto eth0
iface eth0 inet static
address 192.168.4.196
gateway 192.168.4.1
netmask 255.255.255.0
broadcast 192.168.1.255
dns-nameservers 192.168.1.1
2. 在设置完毕后,重启网络: sudo /etc/init.d/networking restart
在网络重启后,如果设置正确则可以上网,这里需要注意,基于图形界面的配置不可以和文件配置发生冲突,所以需要禁用了基于图形的网络设置。
【29】ifconfig 作用:
配置网络,开启网络:sudo ifocnfig eth0 up ;关闭网络 sudo ifconfig eth0 down;