liux 学习笔记

2015/08/12 linux 共 3386 字,约 10 分钟

新增用户 sudo useradd 用户名

默认新增加的用户不在sudo用户组中,需手动添加。 su lilei 可在终端切换到用户lilei 将lilei增加到sudo用户组:sudo usermod -G sudo lilei

删除用户 sudo deluser lilei --remove-home

查看文件属性 ls -l 查看文件属性,大小以K M 等表示 ls -h 查看所有文件,包括隐藏 ls -A

改变文件所有者 sudo chown 所有者用户名 文件名

chmod ugo-rw 'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。 r表示read w表示write x表示excute

touch fileA 如果fileA存在,使用touch指令可更改这个文件或目录的日期时间,包括存取时间和更改时间; 如果fileA不存在,touch指令会在当前目录下新建一个空白文件fileA。

 

在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录

以 . 开头的文件都是隐藏文件

使用 pwd 命令可以获取当前所在路径(绝对路径)

使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录 如: mkdir -p father/son/grandson 创建father目录同时在father目录下有son目录,son目录下有grandson目录

复制目录 cp -r

将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名

cat可以加上-n参数显示行号

more和less适合阅读文件,其中man手册中的阅读模式为less

tail 文件 名:只显示文件前10行 tail -n 文件名 :显示文件名前n行 tail -f 文件名:实现不停地读取某个文件的内容并显示。可动态查看日志起到实时监视的作用

查看文件类型:file 文件名

 

 

declare tmp 声明变量tmp tmp=shiyanlou 将tmp赋值为shiyanlou 引用变量$tmp

set 显示当前shell所有环境变量,包括其内建环境变量(与shell外观等相关),用户自定义变量及导出的环境变量。 env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行 export 显示从shell中导出环境变量的变量,也可能通过它将自定义变量导出为环境变量。

sort可对文本进行排序

vimdiff 1.txt 2.txt 3.txt 可对多个txt文本进行同时对比

echo $PATH 显示当前环境变量

增加环境变量(只在当前shell有效): PATH=$PATH:路径 如:PATH=$PATH:/home/shiyanlou/mybin

用户每次启动时会默认执行一个配置脚本以初始化环境,文件名为用户目录下的.bashrc 执行以下语句,每次启动shell的时候都会自动增加相应的环境变量 echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc

1.txt 以追加的形式添加到1.txt 1.txt以覆盖的形式添加到1.txt

变量的修改有以下几种方式:

变量设置方式 说明 ${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据 ${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据 ${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据 ${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据 ${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串 ${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串

使环境变量立即生效:source .zshrc

与搜索相关的命令常用的有如下几个whereis,which,find,locate

 

 

zip -r -q -o xx.zip /home 将home目录打包成xx.zip 其中参数r为递归打包含子目录的全部内容参数q为安静模式 参数o为生成文件

tar -cf a.tar /home 参数c为创建一个tar文件包,参数f为创建指定的文件名 参数z 使用gzip压缩 解压加参数x

 

 

sudo apt-get update;sudo apt-get install some-tool;some-tool 用;号分隔开多条命令,回车后按顺序执行相应命令。

which cowsay>/dev/null && cowsay -f head-in ohch~ &&就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行

可以从$?环境变量获取上一次命令的返回结果

which cowsay>/dev/null || echo "cowsay has not been install, please run 'sudo apt-get install cowsay' to install" ||就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回不是0则执行后面的,否则不执行

ls -al /etc | less 通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看。

打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录 $ cut /etc/passwd -d ':' -f 1,6

grep -rnI "shiyanlou" /home -r 参数表示递归搜索子目录中的文件,-n表示打印匹配项行号,-I表示忽略二进制文件。

查看环境变量中以"yanlou"结尾的字符串 $ export | grep ".*yanlou$" 其中$就表示一行的末尾。

wc 命令用于统计并输出一个文件中行、单词和字节的数目 行数 $ wc -l /etc/passwd

单词数

$ wc -w /etc/passwd

字节数

$ wc -c /etc/passwd

字符数

$ wc -m /etc/passwd

最长行字节数

$ wc -L /etc/passwd

sort 排序 默认为字典排序:cat /etc/passswd | sort 反转排序:$ cat /etc/passwd | sort -r 按特定字段排序:$ cat /etc/passwd | sort -t':' -k 3

 

 

tr命令可以用来删除一段文本信息中的某些文字,或者将其进行转换; tr [option] .. SET1[SET2] 参数d 删除和set1匹配的字符,不是全词匹配也不是按字符顺序匹配 参数s去除set指定的在输入文本中连续并重复的字符

例: echo 'hello shiyanlou' | tr -d 'olh' 显示e siyaniu 作用删除 "hello shiyanlou" 中所有的'o','l','h'

例: echo 'hello' | tr -s 'l' 显示helo 作用将"hello" 中的ll,去重为一个l

将输入文本,全部转换为大写或小写输出 echo 'shiyanlou' | tr '[a-z]' '[A-Z]'

col -x 将tab转换为空格 col -h将空格转换为tab

paste简单地将两个文件合并在一起,默认以tab隔开‘ 参数d指定合并的分隔符, 参数s不合并到一行,每个文件为一行 paste -d ':' file1 file2 file3 paste -s file1 file2 file3

 

 

 

Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)

文件描述符 设备文件 说明 0 /dev/stdin 标准输入 1 /dev/stdout 标准输出 2 /dev/stderr 标准错误

将标准错误重定向到标准输出,再将标准输出重定向到文件,注意要将重定向到文件写到前面 $ cat Documents/test.c~ hello.c >somefile 2>&1

或者只用bash提供的特殊的重定向符号"&"将标准错误和标准输出同时重定向到文件

$ cat Documents/test.c~ hello.c &>somefilehell

永久重定向exec

Search

    Table of Contents