Linux 基础
命令说明
$ type cmd # 获取命令类型
$ which cmd # 命令的位置
$ help cmd / cmd --help / man cmd # 获取命令帮助
$ whatis cmd # 命令描述信息
Linux – filesystem path notation
Notation |
Desc |
/ |
the root directory |
. |
the current working directory |
.. |
the parent directory (i.e. one directory up) |
~ |
home directory |
~wasadmin |
wasadmin's home directory |
- |
return to the last visited directory |
Linux - user & group
文件 |
文件内容示例 |
含义 |
|
用户 |
/etc/passwd |
root:x:0:0:root:/root:/bin/bash mysql:x:502:502::/home/mysql:/bin/bash |
用户名:密码:UID:GID:用户全名:home目录:shell 1-499: 系统用户; 500-:普通用户 |
用户组 |
/etc/group |
root:x:0: mail:x:12:mail,postfix |
组名:用户组密码:GID:用户组内的用户名 |
用户密码 |
/etc/shadow |
- |
- |
用户组密码 |
/etc/gshadow |
- |
- |
sudoer |
/etc/sudoers |
root ALL=(ALL) ALL %wheel ALL=NOPASSWD: ALL |
提权配置文件 |
Linux - file permission model
lrwx-xr-x
说明:l为目录、文件、软硬连接信息,示例为软连接
rwx为当前用户权限,这里表示有读写执行权限
xr为用户组权限
x为其他人的权限
Linux – file link
为解决文件的共享使用,引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。
硬链接有以下特性(或限制),所以软连接比硬链接应用广泛:
l 文件有相同的 inode 及 data block;
l 只能对已存在的文件进行创建;
l 不能交叉文件系统进行硬链接的创建;
l 不能对目录进行创建,只可对文件创建;
l 删除一个硬链接文件不影响其它相同 inode 号的文件。
软连实际用法:
l 用作 web 集群的 www 目录,软连接至nas目录
l 用作解释性脚本语言应用程序的多版本发布
l 用作应用服务器集群 log 目录
l …
示例:
ln -s /data01/logs /tctHome/tomcat_xx/logs
把tomcat_xx下的的logs目录指向data01的logs目录
Linux install software
rpm:
查已安装:rpm -qa | grep java
安装:rpm -ivh xxx.rpm
卸载:rpm -e xxx
Yum:
查找:yum list xxx
安装:yum install xxx
更新:yum update xxx
卸载:yum remove xxx
Build from src
wget http//somewhere/something.tar.gz
tar xvf something.tar.gz
cd something
./configure --prefix ~/mysoftware
Make && make install
Linux cmd keyboard tricks
Linux cmd 需要大量敲键盘,如何更快、更高效的敲?
移动光标
往左:左箭头;最左:CTRL+A
往后:右箭头;最右:CTR + E
自动补齐:TAB / ESC+. 上次命令的参数
查找历史:
上1条:上箭头; 下1条:下箭头;
$history or $history | grep keyword
!foo 执行以 foo 开头的历史命令
!?foo 执行包含 foo 的历史命令
查找:
CTRL + R
$(reverse-i-search)`': keyword
ENTER 执行 or CTRL + J 复制粘贴
清屏:CTRL+L or $clear
结束命令:CTRL+C / kill / killall
文件/目录通配符
* |
any number of characters |
? |
any single character |
[0-9] |
any digit |
{a..z} |
alphabet |
1{13..22} |
numbers 113 through 122 |
如:mkdir book-{2010..2016}-{00..12}
命令一行写不完,换行:\
Linux i/o redirection
STDOUT
$ls -l /usr/bin > ls-output.txt #重定向 stdout
$> ls-output.txt #清空文件
$ls -l /usr/bin >> ls-output.txt #重定向 stdout 并 append
STDERR
$ls -l /bin/usr 2> ls-error.txt #重定向 stderr
STDOUT & STDERR
$ls -l /bin/usr > ls-output.txt 2>&1 #重定向stdin和stderr
$ls -l /bin/usr &> ls-output.txt
$ls -l /bin/usr 2> /dev/null #丢弃stderr
STDIN
$cat < file
$cat access_log_2016_12* > 2016_12_all_in_one.log
Linux Pipelines & filters: cmd1 | cmd2
示例:
ls -lt /var/log | head | grep root
cat access_log_2016_07* |awk '{print $7}'|sort|uniq -c|sort -nr|head -n 10 > top10
备注:上面第二个示例表示取我们项目业务数据中2016年7月访问量最高的前10条日志
管道参数说明:
cat—Concatenate files.
sort—Sort lines of text.
uniq—Report or omit repeated lines.
wc—Print newline, word, and byte counts for each file.
grep—Print lines matching a pattern.
head—Output the first part of a file.
tail—Output the last part of a file.
tee—Read from standard input and write to standard output and files.
Linux cmd
分类 |
常用命令 |
帮助 |
man |
目录和文件处理 |
pwd cd mkdir ls ll pwd cp mv touch ls rm rmdir scp rsync |
文本处理 |
cat more less head tail echo vi |
系统管理 |
top ps free kill jobs bg fg iostat lsof crontab |
文件系统 |
du df mount/umount |
权限处理 |
chmod chown chgrp |
文件压缩解压 |
tar gzip/gunzip zip/unzip |
用户/组管理 |
useradd usermod userdel groupadd groupmod groupdel |
网络相关 |
ifconfig telnet nslookup ping |
Linux cronjobs / at
定时任务,依赖于任务调度守护进程crond
contab -e #编辑
crontab -l #列表
crontab -r #删除
格式:分时日月周
* : Any possible value
/ : every
, : or
- : range
示例:
30 21 * * * /opt/lampp/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /opt/lampp/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /opt/lampp/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /opt/lampp/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /opt/lampp/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /opt/lampp/apache/bin/apachectl restart
每一小时重启apache
几个重要相关文件:
cron 计划信息存储在:/var/spool/cron/{用户}
cron 日志存储在:/var/log/cron
crond 服务:
service crond {start|stop|status|restart|…}
命令stdout & stderr 要重定向
Linux common Limitation
TCP 最大端口号: 65535 (RFC 793 源/目标端口由16位表示,65535 = 2 ^ 16 - 1);
监听端口号小于 1024 的进程须由 OS root 账号启动(也有方法绕开,但并不建议这么做);
命令的参数数量有限制:getconf ARG_LIMIT; ~~ Argument list too long
OS 的应用账户可用的文件描述符和进程数均有限制 ~~ too many open files
可使用 ulimit 命令修改(当前session)或者用 root 账号修改 /etc/security/limits.conf file 以及/etc/security/limits.d/ *.conf
Linux System Resources
Processes
Use the ps command to list processes
ps aux will list all processes (grep it for your username)
CPU
Use the top command to run an interactive system monitor (hit q to exit it)
Memory
The free command shows overall memory usageps can give per-process details (ps -o 'user pid vsize rss %mem cmd')
Open files
lsof lists open files on the system (at least by processes that you have permission to investigate)
Linux network cmd
怎么测试远程端口的防火墙策略是否OK?
telnet ip port
怎么测试GSLB的策略是否OK?
nslookup domain dns
如何检测端口是否在监听?
netstat -anlp | grep 80
ifconfig
tcpdump
参考资料:http://talk.linuxtoy.org/using-cli/#1
Linux 基础的更多相关文章
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- 买错的电影票,含着泪也得看-LAMP搭建&Linux基础
hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
- 实践一:Linux基础实践
一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
- Linux基础精华
Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...
随机推荐
- ES5概述(ECMAScript262/5.1)
ES5概述(ECMAScript262/5.1) 本文参考:ES5概述 ECMAScript 是基于对象的: 基本语言和宿主设施都由对象提供,ECMAScript 程序是一组可通信的对象.ECMASc ...
- SharePoint 2013 设置网站集为”只读”
有时候当我们升级或者部署项目时,不希望用户在此期间操作SharePoint,比如上传文档. SharePoint提供了这样的功能:管理中心------应用程序管理------管理配额和锁定 完成后,再 ...
- 取代SharedPreferences的多进程解决方案
Android的SharedPreferences用来存储一些键值对, 但是却不支持跨进程使用. 跨进程来用的话, 当然是放在数据库更可靠啦, 本文主要是给作者的新库PreferencesProvid ...
- Laravel大型项目系列教程(五)之文章和标签管理
一.前言 本节教程将大概完成文章和标签管理以及标签关联. 二.Let's go 1.文章管理 首先创建管理后台文章列表视图: $ php artisan generate:view admin.art ...
- Lucene提供的条件判断查询
第一.按词条搜索 - TermQuery query = new TermQuery(new Term("name","word1"));hits = sear ...
- Play Framework 完整实现一个APP(十三)
添加用户编辑区 1.修改Admin.index() public static void index() { List<Post> posts = Post.find("auth ...
- PowerDesigner从SqlServer数据库中导入实体模型
PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文 http://blog.csdn.net/sxycxwb/art ...
- Microsoft Visual SourceSafe 6.0 无法关联项目
最近遇到Microsoft Visual SourceSafe 6.0 安装好以后, 无法关联项目,导致无法进行版本控制,研究以后,发现需要运行一个程序,在安装目录下 ..\Visual Source ...
- Python 代码风格
1 原则 在开始讨论Python社区所采用的具体标准或是由其他人推荐的建议之前,考虑一些总体原则非常重要. 请记住可读性标准的目标是提升可读性.这些规则存在的目的就是为了帮助人读写代码,而不是相反. ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...