Bash Shell入门

Bash script tutorial

$ who am i

当前用户,当前命令行编号,当前时间算法

$ pwd

present working directoryshell

$ cal 7 2016

查看日历安全

$ date '+DATE:%m-%y%nTIME:%H:%M:%S'

自定义时间样式bash

$ ls -a
$ ls -l

显示隐藏文件,显示文件具体信息服务器

File&directory operation

$ touch filename

建立一个空文本文件ssh

$ rm filename

删除文件加密

$ mkdir dirname

建立一个空目录命令行

$ rmdir dirname

删除一个目录code

$ cp filename1 path/filename2

复制文件进程

$ mv filename filename2

重命名文件

$ grep keyword filename

在文件中查找关键字

$ diff filename1 filename2

对比两个文件中不一样的部分

$ cat filename

一次显示整个文件

$ cat > filename

建立一个空文件并进入编辑模式
ctrl+d能够结束编辑模式并保存

$ cat < filename

读取这个文件并返回这个文件的字符串

$ cat file1 file2 > file

合并文件

$ ls > filename

把某个命令的返回值存入文件,若是不存在会自动建立

$ ls >> filename

若是用>反复对一个文件保存,会覆盖以前的内容,要添加内容须要用>>

$ chmod o+w filename

文件权限修改,u, g, o表示user,group,other,r, w, x表示读写执行权限

$ chmod 754 filename

4 - read
2 - write
1 - execute
0 - no permission
这个命令表示对user, group, other同时修改权限,7,5,4表明三种用户的权限累加值,因此7就是rwx,5就是r-x,4就是r--

Compress & extract files

$ tar cvf tarFilename.tar compressFilename1 compressFilename2

c表示是create,创建新的压缩包,v表示结果会在控制台输出,f表明文件选项

$ tar xvf tarFilename.tar

解压缩

Verify files using checksum

$ sha1sum filename

返回这个文件的哈希值,经过sha-1算法得到

$ sha1sum filename | grep someHashNumbers

对比这个文件的哈希值与某个哈希值,若是匹配则会返回红色文本的哈希值

Users

$ sudo useradd username
$ sudo passwd username

建立新用户,建立后给用户设置密码,Linux会自动创建一个和用户名同名的组,并添加到这个组

$ sudo groupadd goupName
$ sudo usermod -a -G goupName

添加用户组
-a表示添加或者移动到用户组,-G表示添加到某个组可是不退出自己已经存在的组,-g表示退出当前组,加入如今的组

$ cd ../..
$ cd etc
$ ls -la

用户密码存在etc目录下的passwd文件中,真实的密码存在shadow文件里,固然是被哈希加密的

SSH & SFTP

$ ssh username@ipAdress

以某个用户名登陆某个服务器

$ nano /etc/ssh/sshd_config

修改ssh配置,PermitRootLogin without-password便可无需密码登陆,真正的秘钥只存在你当前用来登陆的这台电脑

$ sftp username@ipAdress

使用安全的ftp登陆

$ put path/filename

上传文件

$ put -r path/path2

上传某个路径下的全部文件,须要在远程端创建同名文件夹

$ get filename path/filename

下载单个文件

$ get -r folderName path

下载一个文件夹

Shell script

#!/bin/bash

指定解释器,#也用做单行注释

$ bash shellScriptName

执行脚本

if [$1 = hotdog]; then
    echo "You typed hotdog"
else
    echo "You did NOT type hotdog"
    echo "You typed " $1
fi

分支

for x in dog elephant fish; do
    echo $x
done

循环

Process

$ ps

查看全部非系统进程

$ command &

让某个命令开启的进程在背后运行,不占用当前命令行
它会成为一个job

$ jobs
$ fg %jobNumber

job提到前台以便控制
Ctrl+c中止程序,Ctrl+d冻结程序,Ctrl+z把已经在运行的进程放到后台

$ kill processID

中止某个进程

$ kill -STOP processID
$ kill -CONT processID

冻结/解冻进程

$ nohup command &

注意到直接用&放在后台的程序,当命令行关闭的时候,会被一同关闭
若是想要变成守护进程的造型,就要用nohup

Some other command

$ passwd

修改密码

$ info ls

显示某个命令的帮助

相关文章
相关标签/搜索