linux shell快速使用

(1)
who是查看当前谁登录了linux系统
|是在两个程序之间建立一个管道, who | wc -l who的输出成为了wc 的输入
当然也可以自己创建linux的命令,创建一个文件,赋值给其执行的权限+x即可,同时要记住ctrl d相当于exit
ctrl c强制终止所有进程 ctrl Z挂起进程,使用fg恢复,ctrl l清屏,ctrl s 中断控制台输出
绿色文件 可执行文件,可执行的程序 红色文件 压缩文件或者包文件 ,蓝色文件 目录浅蓝色文件 链接文件,主要是使用ln命令建立的文件
echo是显示变量的名称的命令,echo -n不要打印换行符,\c一样
printf 不会自动提供一个换行符,同时printf可以提供类似c的占位符,例如%s %d
cat创建文件可以输入,使用ctrl d结尾,cat > 文件名,创建并输入信息,cat 文件名 查看文件内容
打开执行跟踪 sh -x ,当然也可以直接在脚本中使用set -x 来打开执行跟踪的功能,使用set +x 来关闭执行跟踪功能
ctrl +a 快速切换命令到行首 ctrl + e 快速切换命令到行尾
(2)查找与替换
sed 命令进行替换 ‘s;被替换值;要替换的值;’使用s后紧跟的界定符分割; 如果末尾是以g结尾则会进行全局替代,当然在后面添加数字代表替代哪一个,使用p结尾代表是否打印
当然可以将替换的命令放入脚本中使用sed执行 sed -f tihuan.sed file1.txt > file.txt
(3)排序文本
sort对文本进行排序,sort -u seq.txt去掉重复项 sort -r逆序排序
sort -t ‘ ‘ -k 1.2 facebook.txt -t表示 为分割域, -k比较字符,第一个域第二个字符
wc -c字节数 wc -l行数 wc -w 字数
cat查看文件-n会显示行号tac反向列式文件内容more分页显示文件内容,空格为,q退出head显示前几行
(4)文件
ln -s 源文件 目标文件 创建软连接,ln创建硬连接
chmod -R 777 testdir 777代表为全部权限 4 r 2w 1x 7rwx 6rw 4 r x为执行权限
chown 改变文件或目录的所有者,chown spark file
find文件搜索 find /etc -name profile -iname -size +2000 -user -cmin -5 -cmin查找5分钟前被修改的文件 -amin被访问的文件
-type按类型,-exec查找到后并执行命令 find /etc/apt/ -name sources.list -exec cat
locate文件搜索,which 搜索命令所在目录以及别名
grep在文件中搜索字符串所匹配的行并输出 -iv i是不区分大小写,v是排除指定字符串 grep java /etc/profile
(5)压缩命令
gzip压缩命令,压缩后为.gz,gunzip解压缩.gz的压缩文件
tar压缩解压命令,tar -c 打包 tar -v显示详情,-z打包同时压缩 后缀.tar.gz tar -zcf 打包压缩 tar -zxvf 解压
zip压缩 zip -r压缩目录 unzip解压
(6)网络命令
write给用户发送信息 write spark ctrl+D保存结束
wall 广播信息
traceroute显示数据包到所有主机间的命令
netstat显示网络的相关信息
netstat -t TCP -u UDP -l监听 -r路由 -nip地址和端口号
查看本机监听端口
netstat -tlun
查看本机的所有网络连接
netstat -an
查表本机路由表
netstat -rn
setup配值网络的命令
(7)vim的使用
iao都是插入i前a后o为下
:set nu 设置行号,:nonu取消行号 gg到第一行 G到最后一行 nG到第n行 $行尾 0行首
yy复制当前行ndd剪切当前以下几行,p粘贴当前光标所在行
r替换光标所在处字符,u取消上一步操作,/str 搜索
全文替换:%s/old/new/g全局 :n1,n2s/old/new/g
:w new_file ZZ保存并修改退出
连续行注释:n1,n2s/^/#/g
(8)用户和组
useradd用户添加 passwd用户密码 usermod修改信息 userdel删除 su 切换用户
ACL查看分区的权限
sudo的权限问题
visudo 实际修改的是/etc/sudoers文件
root ALL=(ALL) ALL
复制sc用户权限
sc ALL=/sbin/shutdown -r now
(9)文件系统查看命令
df -ah查看所有的文件系统 硬盘分区查看
du -h 统计目录或文件类型
什么是NFS】
NFS会经常用到,用于在网络上共享存储。这样讲,你对NFS可能不太了解,笔者不妨举一个例子来说明一下NFS是用来做什么的。假如有三台机器A、B、C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A、B、C。但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的。
【配置NFS】
NFS配置起来还是蛮简单的,只需要编辑配置文件/etc/exports即可。下面笔者先创建一个简单的NFS服务器。
[root@localhost ~]# cat /etc/exports
/home/ 10.0.2.0/24(rw,sync,all_squash,anonuid=501,anongid=501)
这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。关于第三部分,笔者简单介绍一下:
rw :读写;
ro :只读;
sync :同步模式,内存中数据时时写入磁盘;
async :不同步,把内存中数据定期写入磁盘中;
no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;
root_squash :和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;
all_squash :不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;
anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。
介绍了上面的相关的权限选项后,再来分析一下笔者刚刚配置的那个/etc/exports文件。其中要共享的目录为/home,信任的主机为10.0.2.0/24这个网段,权限为读写,同步,限定所有使用者,并且限定的uid和gid都为501。
【使用NFS】
当编辑完配置文件/etc/exports后,就该启动NFS服务了。启动方法为:
[root@localhost ~]# service portmap start; service nfs start
NFS是依托portmap的,所以首先要启动portmap,然后启动NFS才能是刚才的配置生效。启动完NFS后,就该使用NFS服务了。
[root@localhost ~]# showmount -e 127.0.0.1 (用在client上)
Export list for 127.0.0.1:
/home 10.0.2.0/24
用shoumount -e 加IP就可以查看NFS的共享情况,上例中,就可以看到127.0.0.1的共享目录为/home,信任主机为10.0.2.0/24这个网段。另外这个showmount 命令还有一个常用的选项就是-a了,它的意思是,把连接本机的NFS的client全部列出。
[root@localhost ~]# mount -t nfs 10.0.2.69:/home /mnt (client上)
[root@localhost ~]# showmount -a (nfs服务器上)
All mount points on localhost:
10.0.2.69:/home
前面的mount 命令为挂载NFS共享目录,相信你能看懂这个格式。showmount -a 命令列出所有的clinet。
NFS服务中还有一个常用的命令那就是exportfs,它的常用选项为[-aruv]。
-a :全部挂载或者卸载;
-r :重新挂载;
-u :卸载某一个目录;
-v :显示共享的目录;
使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可。
[root@localhost ~]# cat /etc/exports
/tmp/ 10.0.2.0/24(rw,sync,no_root_squash)
[root@localhost ~]# exportfs -arv (nfs服务器上)
exporting 10.0.2.0/24:/tmp
更改目录后,直接exportfs -arv即可生效。
在上面使用到了mount命令来挂载nfs,其实mount这个nfs服务还是有些说法的。首先是用-t nfs 来指定挂载的类型为nfs。另外在使用nfs时,常用一个选项就是nolock了,即在挂载nfs服务时,不加锁。
[root@localhost ~]# mount -t nfs -o nolock 10.0.2.69:/tmp /mnt/
[root@localhost ~]# showmount -a
All mount points on localhost:
10.0.2.69:/home
10.0.2.69:/tmp
另外我们还可以把要挂载的nfs目录写到client上的/etc/fstab文件中,挂载时只需要mount -a即可。
[root@localhost ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-hda2 swap swap defaults 0 0
10.0.2.69:/tmp /mnt nfs nolock 0 0
写完/etc/fstab文件后,只需要mount -a即可挂载nfs服务的共享目录。
[root@localhost ~]# umount /mnt/ 首先把刚才挂载的nfs卸载掉
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda3 7.3G 3.7G 3.3G 53% /
/dev/hda1 99M 12M 83M 12% /boot
tmpfs 84M 0 84M 0% /dev/shm
10.0.2.69:/tmp 7.3G 3.7G 3.3G 53% /mnt
关于NFS部分就讲这么多,内容并不多,相信你很快就能掌握!

    原文作者:张晓天a
    原文地址: https://www.jianshu.com/p/751c1d59417b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞