Linux基础命令整理
来源:互联网 发布:香港崇光sogo mac 编辑:程序博客网 时间:2024/05/20 05:11
在Linux学习过程中对一些基础命令的整理,方便自己以后的查询:
常用按键组合
用户管理
who+命令其它常用参数:
su&sudo:
su 可以切换到用户user,执行时需要输入目标用户的密码
sudo 可以以特权级别运行cmd命令,需要当前用户属于sudo组,且需要输入当前用户密码
su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量
“cat /etc/group | sort”命令:
这里 cat 命令用于读取指定文件的内容并打印到终端输出,| sort 表示将读取的文本进行一个字典排序再输出,也可以过滤掉不想要的内容,
cat /etc/group | grep -E “想要的内容”
sudo权限:
sudo ls 查看当前用户是否有sudo权限赋予sudo权限$ su root # 此处需要输入root用户密码$ groups$ sudo usermod -G sudo$ groups
删除用户:
sudo deluser lilei –remove-home
Shell 常用通配符
Manual pages
man command 获取命令的manual pages说明
man num command 获取命令的区段说明
文件及文件权限
*Linux里面一切皆文件
变更文件所有者
$ cd /home/$ ls$ sudo chown$ cp /home/
修改文件权限
方法1:加减赋值
方法2:二进制权限表达
目录结构
安装tree包
sudo apt-get updatesudo apt-get install treetree 查看当前目录tree / 查看所有目录
路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录。
以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件。
- 表示上一次所在目录,~ 通常表示当前用户的”home”目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
文件目录操作
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号(“cat -n”就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)
环境变量
PATH=$PATH: path设置,使用绝对路径
全局修改PATH
$echo "PATH=$PATH:" >> .zshrc小心啊,教程用的是zshell,而很多用的bashell$zsh/bash 切换到zshell或bashellbash下命令此处没有深究,实际用的时候注意
文件搜索
文件打包&解压
$ zip () () zip打包前()代表可加指令,如-r打包全部内容,-q不打印过程,-o输出文件名,-1~9表示压缩级别,-e创建加密压缩包,-l表示转换为windows换行形式后()代表可加指令,如-x排除开不打包部分e.g. $zip -r -9 -q -o linux_test.zip /home/lizhangfan -x ~/*.zip
path一定要用绝对路径
$ unzip () () zip解压前()可加-q安静模式,-O表示解压到指定编码后()加-d 解压到指定目录unzip -l 只查看不解压
安装rar与unrar
$ sudo apt-get update$ sudo apt-get install rar unrar
$ rar a rar打包$ rar d 从rar中删除某文件$ rar l 只查看不解压(rar命令参数没有-)$ unrar x rar解压$ tar -cf tar打包路径(tar只打包不压缩,打包后还可被部分压缩方式继续压缩)$ tar -xf -C 解包到已存在目录$ tar -tf 只查看不解包$ tar -czf 创建tar.gz压缩包$ tar -xzf 创建tar.gz压缩包(对于tar.gz参数为-z,tar.xz参数为-J,tar.bz2为-j)$ du -h 查看包大小(加了-h才会以M等单位显示)
文件系统操作
磁盘管理
暂无
帮助命令
$ type 查看命令是内建命令还是外部命令$ help 查看内建命令(bash下)$ --help 查看外部命令(bash下)$ man 查看命令(详细)$ info 查看命令(bash下)(非常详细)
任务计划
打开cron
$ sudo service rsyslog start$ sudo cron -f &
使用crontab
$ crontab -e 打开crontab,选择基本的vim格式是分,时,日,月,周(0/7都是星期日)+ 指令 代表任何时刻, ,代表离散的分隔时段 -一段时间范围 /n每隔n个时间单位e.g. /1 echo "hello wolrd" //每隔一分钟打印一次hello world
$ crontab -l 显示添加了哪些任务$ ps aux | grep cron 查看cron$ pgrep cron 查看cron$ sudo tail -f /var/log/syslog 查看日志情况$ crontab -r 删除任务
命令顺序执行控制
顺序执行:把几条命令用;连起来
e.g. sudo apt-get update;sudo apt-get install some-tool;some-tool //应用程序安装及使用
选择执行:which 条件 &&/|| 命令
e.g. which cowsay>/dev/null && cowsay -f head-in ohch~
如果前面装了cowsay就执行后面的命令
e.g. which cowsay>/dev/null || echo "cowsay has not been install, please run 'sudo apt-get install cowsay' to install"
如果没装就打印信息
连接使用: e.g. which cowsay>/dev/null && echo "exist" || echo "not exist"
管道:前一命令 | 后一命令 前一命令作为后一命令的输入流
e.g. ls -al /etc | less
常结合命令如cut,grep,wc,sort,uniq,tr,join,paste,col等
文本处理
tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
$ tr [option] SET1 [SET2]
[option]
-d:删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
-s:去除set1指定的在输入文本中连续并重复的字符
col 命令可以将Tab换成对等数量的空格键,或反转这个操作。
$ col [option]
[option]:
-x 将Tab转换为空格
-h 将空格转换为Tab(默认选项)
join命令可以将两个文件中包含相同内容的那一行合并在一起。
$ join [option] file1 file2
[option]:
-t 指定分隔符,默认为空格
-i 忽略大小写的差异
-1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段
-2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段
paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
$ paste [option] file...
[option]:
-d 指定合并的分隔符,默认为Tab
-s 不合并到一行,每个文件为一行
数据重定向
对于>或>>操作,它们分别是将标准输出导向一个文件或追加到一个文件中。这就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件自然也是没有任何问题的。
正则表达式
以下内容来自实验楼:
一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。
选择
|竖直分隔符表示选择,例如”boy|girl”可以匹配”boy”或者”girl”
数量限定
数量限定除了我们举例用的*,还有+加号,?问号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次:
+表示前面的字符必须出现至少一次(1次或多次),例如,”goo+gle”,可以匹配”gooogle”,”goooogle”等;
?表示前面的字符最多出现一次(0次或1次),例如,”colou?r”,可以匹配”color”或者”colour”;
*星号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次),例如,“0*42”可以匹配42、042、0042、00042等。
范围和优先级
()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。例如,”gr(a|e)y”等价于”gray|grey”,(这里体现了优先级,竖直分隔符用于选择a或者e而不是gra和ey),”(grand)?father”匹配father和grandfather(这里体验了范围,?将圆括号内容作为一个整体匹配)。
语法(部分)
正则表达式有多种不同的风格,下面列举一些常用的作为 PCRE 子集的适用于perl和python编程语言及grep或egrep的正则表达式匹配规则:(由于markdown表格解析的问题,下面的竖直分隔符用全角字符代替,实际使用时请换回半角字符)
PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用 C 语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost 之类的正则表达式库小得多。PCRE 十分易用,同时功能也很强大,性能超过了 POSIX 正则表达式库和一些经典的正则表达式库。字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。序列“\”匹配“\”而“(”则匹配“(”。 ^ 匹配输入字符串的开始位置。 $ 匹配输入字符串的结束位置。 {n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。 {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”、“zo”以及“zoo”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。 ? 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。 . 匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。 (pattern) 匹配pattern并获取这一匹配的子字符串。该子字符串用于向后引用。要匹配圆括号字符,请使用“(”或“)”。 x|y 匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。 [xyz] 字符集合(character class)。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。其中特殊字符仅有反斜线\保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符^如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符。 [^xyz] 排除型(negate)字符集合。匹配未列出的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。 [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。 [^a-z] 排除型的字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。优先级
优先级为从上到下从左到右,依次降低:运算符 说明 \ 转义符 (), (?:), (?=), [] 括号和中括号 *、+、?、{n}、{n,}、{n,m} 限定符 ^、$、\任何元字符 定位点和序列 | 选择
常见的使用正则表达式的命令有grep命令,sed和awk等。
软件下载
apt-get命令:
下面是一些apt-get常用的参数:
安装软件包
$ apt-get install <软件包名>
重新安装
$ sudo apt-get --reinstall install <软件名>
软件升级
更新软件源
$ sudo apt-get update
升级没有依赖问题的软件包
$ sudo apt-get upgrade
升级并解决依赖关系
$ sudo apt-get dist-upgrade
卸载软件
sudo apt-get remove <软件名>
或者,你可以执行
不保留配置文件的移除
$ sudo apt-get purge w3m或者 sudo apt-get --purge remove
移除不再需要的被依赖的软件包
$ sudo apt-get autoremove
软件搜索
sudo apt-cache search softname1 softname2 softname3……
以deb形式打包的软件包,就需要使用dpkg命令来安装。
dpkg常用参数介绍:
使用dpkg安装deb软件包
$ sudo dpkg -I ***.deb
使用dpkg -L查看deb包目录信息
$ sudo dpkg -L emacs
进程
命令后加&可后台运行ctrl+z 停止任务丢到后台jobs 查看后台任务fg [jobnumber] 把任务拿回前台运作bg [jobnumber] 把停止的任务后台运作kill -signal [jobsnumber] 杀进程
进程管理
top 动态查看当前进程ps 静态查看当前进程
关于参数值怎么看有很多要点,这里不做讨论。
日志系统
暂不讨论
其他命令
$ vimtutor vim学习
- Linux基础命令整理
- 整理linux 常用基础命令
- Linux基础-shell命令操作整理
- Emacs基础命令整理
- oracle 基础命令整理
- git基础命令整理
- HDFS-基础命令整理
- Linux学习笔记二基础命令的整理
- Linux命令整理
- Linux命令整理
- Linux命令整理
- Linux命令整理
- 整理: Linux 命令
- Linux命令整理
- Linux命令整理
- linux 相关命令整理
- Linux命令整理
- Linux命令整理
- 页面布局再也别用select控件了,样式不好控制
- socketpair(双向通信)--高级IO
- 事件冒泡与阻止
- 解决火狐httprequester链接不安全
- ASP.NET Core MVC 和 Visual Studio入门(五) 使用 SQL Server LocalDB
- Linux基础命令整理
- 脚本1
- 2017年Android百大框架排行榜
- HTML5新特性之Mutation Observer
- CXF开发WebService客户端请求服务端的方式
- XXX cannot be resolved to a type!
- spring总结
- 操作系统内核的支持功能
- 安卓学习历程-第三天