新增用户 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