LINUX SHELL 命令总结
本人最近在学习Linux ,学习的书籍是鸟哥的私房菜(第三版),总结有关于SHELL命令
1.type :查看某一命令的详细信息; type -a 命令
2.cp<copy>:复制文件; cp 源文件 目标目录
3. 命令太长如何换行?
输入"\",然后[Enter]
4.echo 显示变量;echo $变量名
5.unset 取消某一变量设置;unset 变量名;
6.export(英文意思:输出) 将变量转换成环境变量;export 变量名
7.bash:进入到子进程;
8.exit:退出子进程;
9.uname -r;获取内核版本信息;
10.locate:用于查找符合条件的文件,它会去保存文件与目录名称的数据库内,查找合乎范本样式条件的文件或目录。;
10.ls -l `locate crontab`;``中的结果作为ls命令的参数
11.env;查看环境变量
12.set;查看所有变量包括环境变量和用户自定义变量
13.echo $$;查看shell线程的代号
14.echo $?;只查看上一个命令执行的回传码
15.locale -a ;查看与显示相关的语系变量
16.read 变量名;读取用户从键盘上输入的变量值
17. declare -i sum=100+300+50;将i定义成整型;
-x 将后面的变量变成环境变量
+x 将后面的变量变成非环境变量
-r 将后面的变量的属性变为“只读”(注销后能恢复变量的属性);
18.ulimit -a;列出限制系统资源信息
19.ulimit -f 10240;限制用户只可以创建小于10M的文件大小
20.dd;可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。
21.
删除变量中的内容
echo ${var#匹配的字符串};
$:关键字
var:要操作的变量名
#:从变量最前面开始向右删除,删除最短的那个;##:从变量最前面开始向右删除,删除最长的那 个;
%:从变量最后面开始向左删除,删除最短的那个;%%:从变量最后面开始向左删除,删除最长的那 个;
22.
替换变量中的内容
echo ${var/var1/var2};将var中第一个var1全部替换成var2;
echo ${var//var1/var2};将var中var1全部替换成var2;
23.理解如下命令:
username=${username-root} 若username为空,默认是为root;否则username为用户赋的具体值
username=${username:-root} 若username为空,默认是为root;否则username为用户赋的具体值
24.重命名命令:
alias 新命令=‘旧命令';alias lm='ls -l|more';
unalias 新命令;alias rm='rm -i';
25.历史命令操作:
history + 数字;;列出n条执行过命令
!number;执行第几条命令
!!:执行上一条命令
26.数据流重定向命令
(1)输出流
ll > filename 列出文件信息并将其输出到名字为filename的文件内。注意:如果文件不存 在,会先创建,文件存在,则覆盖源文件的内容。
ll >> filename 列出文件信息并将其 累加 输出到名字为file的文件内。
su - root:变更用户身份为ROOT;
find 目录名 -name 文件名 ;查找文件或目录;
(2)输入流
cat > catfile <~/.bashrc;将.bashrc文件中的内容输入到catfile中。
cat > catfile <<"eof";从键盘上输入,并且输入eof时,输入结束。
27.不考虑命令相关性,连续命令执行;
sync;sysnc;shutdown -h now;
28.利用 && || 判断命令执行的相关性;(执行顺序是由左往右的)
cmd1 && cmd2; 若cmd1执行完毕且正确(回传码=0),则开始执行cmd2;
若cmd1执行完毕错误,不执行cmd2;
cmd1 || cmd2; 若cmd1执行完毕且错误,需要执行cmd2;
若cmd2执行完毕且正确(回传码=0),不需要执行cmd2;
E1:ls /tmp/abc && touch /tmp/abc/hehe
E2: 目录/tmp/abc 存在 创建名为hehe文件,否则不创建。
ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/haha
查看/tmp/abc目录是否存在,不存在则创建该目录,存在直接创建名为haha的文件。
29.查看命令详细信息
man + 命令;
30.创建文件
touch + 文件具体创建位置
31. rm -r +目录名
执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件。
32.less: 读取部分文件或文件内容,可分页查看。
more: 读取全部文件内容
head: 查看最开头部分内容
tail: 查看文件末的部分内容
以上四个为管道命令
33.cut 切割某段值(操作的是行)
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/admin/bin
echo $PATH | cut -d ':' -f 5 :以 -d‘:’作为分割符, -f 5 表示取出第5段;
echo $PATH | cut -d ':' -f 3,5 :以 -d‘:’作为分割符, -f 3,5 表示取出第3段5段
export | cut -c 12- 从环境变量每行前12个字符开始切割
34.export 显示环境变量;
last 显示最近登录的用户;
35.grep 分析某一行,如果当中有我们需要的信息,就会把这一行取出。
last | grep 'admin';取出含有admin关键字的行信息。
last | grep -v 'admin';取出不含有admin关键字的行信息。反向选择。
grep --color=red 'MANPATH' /etc/man.config;查找含有’MANPATH‘的行信息,并且关键字用红色标记;
36.sort 排序
cat /etc/passwd | sort -t ':' -k 3;-t 用’:‘分割,且按照第3个排序。
37.uniq [-ic]
i:不看大小写
c:计数
last | cut -d ' ' -f1 | uniq -c;取出登陆的用户信息,并计数;
38.wc 统计整体数据
wc [-l w m] -l 统计多少行 -w 统计有多少个字 -m 统计有多少个字符
cat /etc/man.config | wc -l -w;
39.tee 双重定向(将数据流送于文件和屏幕)
last | tee last.list | cut -d ' ' -f1;
40.tr :删除一段信息中的文字或者替换一段信息中的文字
last | tr -s [A-Z] [a-z]; 小写全部替换成大写
cat /etc/passwd | tr -d ":";删除信息中的":";
41.col:将tab键换成对等的空格键
expand:将tab键转换成自定义的空格数
42.join 将俩个文件当中有相同数据的哪一行加一起
join -t ":" -1 2/etc/passwd -2 3/etc/shadow 以 “:”作为分割符,并且对比第一个文件第2个字段,第二个文件的第三个字段,如果两个文件相同,则将两条数据连成一行,且相同的字段放在最前面
43.paste 无需对于两行直接合并,并且中间以[tab]键隔开。
-d 后面接自定义分割符,默认以[tab]键分割
- :表示来自standard input 的数据意思
cat /etc/group | paste /etc/passwd /etc/shadow - |head -n 3
44.split:切割命令 可以利用该命令切割指定大小,指定行数的文件。
45.xargs:参数代换 产生某些命令的参数
<注:如果将命令看成是方法,那么参数就是方法的形参>
cut -d':' -f1 /etc/passwd | head -n 3 | xargs finger
以‘:’分割 ,取第一段,取前三行,需要查找用户的参数
主要使用地方:很多命令不支持管道命令,因此我们就可以通过Xargs 来提供standard input之用.
46.关于减号-用途<stdin 与 stdout 可以利用 - 代替>
tar -cvf - /home | tar -xvf -
将/home 里面的文件打包,打包数据不是记录文件,而是传送到后面stdout,经过管道后,将tar -cvf -/home 传送到 tar -xvf-。后面的-代表stdout。