Linux学习之路 -- 常用命令和各种总结(不断补充完善)
来源:互联网 发布:香港科技大学gpa算法 编辑:程序博客网 时间:2024/06/06 01:11
※、常用命令:
ls | wc -l #统计当前目录下文件数(不含子目录内文件)ld -d dirname #仅列出目录,不显示目录下的文件pwd -P #显示当前目录所在实际路径,非链接路径du -sch * #显示当前目录下各个文件或目录(不含子目录)的大小,以及总大小df -h #显示磁盘空间信息
※、查看最近登录用户信息和IP地址: last -f /var/log/wtmp
※、显示日期 : date 格式化日期 date ‘+%Y-%m-%d %H:%M:%S’
或 : date ‘+%F %T’
显示当月日历 : cal
显示指定月份日历: cal 5 2016
※、命令行下进入计算器: bc –仅支持quit命令退出
scale=2 –指定小数位2位,Linux计算器默认仅输出整数,用scale调整小数位
10%3 –取余数,仅在输出整数时有效
※、查看命令帮助: man [command] 如: man date
※、/etc/profile 和 ~/.bash_profile 和 ~/.bashrc 的区别:
/etc/profile用于整个系统所有用户,
~/.bash_profile, ~/.profile和~/.bashrc 用于各个用户,这里的”~”符号就是各当前用户的$HOME
~/.bash_profile 和 ~/.profile 只在登陆时读取一次。
~/.bashrc 每次都读取
~/.bash_profile 和 ~/.profile 的区别在于,bash 只读取~/.bash_profile;而对于 ~/.profile 来说,不光bash, 其他shell 也读 ~/.profile
执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
※、改变文件的权限
方式一、
1) 更改文件\目录权限: chmod 777 filename
其中第一位数字标识文件所有者的权限;第二位为文件所属组的权限,第三位为其他用户
数字表示的权限:r(读) - 4 w(写) - 2 x(执行) - 1
2) 更改文件所属组: chgrp grpname filename
3) 更改文件所有者: chown user filename
4) 更改文件所有者和群组:chown user:users filename
以上命令带参数 -R时,表示同时更改子目录的权限。
方式二、
a - 所有用户 u - 文件所属用户 g - 组内用户 o - 其他用户 以上可组合使用
chmod u=rwx,go=rx filename --更改文件权限为所有者rwx,组内用户和其他用户rxchmod a+w filename --为所有用户增加对filename文件的 w 权限chmod a- w filename --为所有用户去除对filename的 w 权限chmod a=rw filename --将filename权限设置为所有用户可rw
※、CP命令: 复制文件到目标位置:
$> cp file1 /tmp/file1 --普通复制,默认覆盖,同时更改文件属性(命令操作者用户属性) $> cp -i file1 /tmp/file1 --复制时,如果目标位置存在该文件,会询问是否覆盖 y-是 n-否 $> cp -a file1 /tmp/file1 --复制文件的所有属性,所属用户、所属组、创建时间等 $> cp -r ./dir1/ ../dir2/ --复制目录
※、显示文件内容到控制台:
1) cat filename –正向输出文件内容
cat命令参数详解:
cat -n filename --输出行号,包括空行cat -b filename --输出非空白行行号cat -A filename --输出特殊字符,如行尾显示$cat -T filename --将[Tab]以 ^I 显示出来cat -v filename --列出一些看不出来的特殊字符
2) tac filename –反向输出
3) nl filename –输出文件内容,同时显示行号
nl命令详解:
nl -b a filename --输出内容和行号nl -b t filename --输出内容和行号,空白行不显示行号(默认值)nl -n ln filename --行号靠左显示nl -n rn filename --行号靠右显示nl -n rz filename --行号靠右显示,且左补0nl -n rz -w 2 filename --行号靠右显示,且左补0,但行号只占2位
4) more filename –一页一页显示文件内容(仅支持向后输出)
more命令详解:
more等待输入:空格 --下翻一页Enter --下翻一行:f --立即显示当前文件名和显示的行数q --退出more不再显示文件内容5) less filename --与more类似,但支持往前查看([PageUp/PageDown])6) head -n 2 filename --只查看文件的前2行 head -n -2 filename --不显示文件后2行7) tail -n 2 filename --只查看文件的最后2行8) head -n 4 filename | tail -n 2 --取文件的第3到4行9) od filename --显示二进制文件内容
※、查看文件修改时间
ls -lrt --time=atime --查看文件最后被读取时间(cat/vi/more等命令)ls -lrt --time=ctime --查看文件权限或属性的变更时间ls -lrt --默认显示mtime,即内容被更改时间touch命令会更改文件的时间属性:touch filename --不存在时会创建空文件,存在时会修改文件所有时间为当前系统时间
※、文件的隐藏属性:
查看文件的隐藏属性:
lsattr filename
为文件增加保护(仅限于root执行):
chatrr +i filename --为文件增加保护,不能被任何用户(包括root自己)更改、删除chattr +a filename --文件只允许增加数据(仅echo 'a'>>filename方式),不允许修改、删除。
※、find查找文件
find . -name filename --根据文件名,在目标路径(包含子目录)中精确查找find . -name 'filename*' --根据文件名模糊查找find . -size +500c --查找目标路径中大于500b的文件find . -size +500k --查找目标路径中大于500Kb的文件find . -type f --查找目标路径中正常文件(除目录、链接等文件外)find . -type d --查找目标路径中目录文件find . -mtime +4 --查找大于等于5天前有更改的文件find . -mtime -4 --查找距当前4天内有更改的文件find . -mtime 4 --查找距当前第4-5天内有更改的文件find . -user username --查找username用户的文件
※、查看linux文件系统(FileSystem)类型:
file -s /dev/sda1
※、sed文本内容替换命令
sed '/text/d' filename --删除包含'text'内容的整行,并输出到屏幕(文件内容不改变)sed -i '/text/d' filename --直接删除文件包含'text'内容的整行sed 's/text/replace/g' filename --替换文件中'text'为'replace',并输出到屏幕sed -i 's/text/replace/g' filename --直接替换文件中'text'为'replace'
※、bash字符串,单双引号区别:
单引号(”):单引号中任何字符都原样输出,不作任何转换,单引号中不能引用其他变量,
转义符无效,且单引号字符串中不能再出现单引号
双引号(”“): 双引号中可以使用变量或转义符
※、获取字符串长度:
name="Tom"echo ${#name} #3echo $(echo ${name} | wc -L) #3
※、数组
arr=("Tom" 'Jim' 15) #数组定义echo ${arr[@]} #读取数组所有元素echo ${arr[1]} #根据下标读取数组元素,下标从0开始echo ${#arr[@]} #获取数组长度echo ${#arr[1]} #获取数组元素的长度
※、函数 , shell函数返回值只能返回整数值
[root@#localhost ~]# vim test.sh
#!/bin/bashfunction fun(){echo "This is parameter 1: $1"echo "This is parameter 2: $2"}fun $1 $2
[root@#localhost ~]# sh ./test.sh 10 20
※、Linux用户管理
添加用户:useradd
eg:
useradd -d /home/test -m -g root -s /bin/bash test-c 添加注释-d 指定用户主目录,如目录不存在,可指定-m创建该目录-g 指定用户所属用户组-G 指定用户所属附加组-s 指定用户shell-u 指定用户号,如果有-o选项,可以重复使用其他用户的用户号
※、脚本开机运行
需要开机运行的脚本加入/etc/rc.d/rc.local中,同时rc.local和脚本需要有可执行权限
※、history显示最近执行过的1000条命令
history -c 清空历史命令
显示命令执行时间:.bash_profile中加入:HISTTIMEFORMAT=”%Y-%m-%d %H:%M:%S ”
soruce .bash_profile
history n 显示最近执行的n条命令
!!运行上一次执行的命令
!n 运行history显示的第n条命令
※、磁盘管理:
列出硬盘和分区信息: fdisk -l
新加入的硬盘做分区: 1、fdisk /dev/sdb1 然后选择n(增加分区),在选择p(主分区),输入1,
回车后输入w保存。
2、格式化增加的分区:mkfs.ext4 /dev/sdb1
3、挂载硬盘:mount /dev/sdb1 /data01
卸载硬盘: umount /data01
设置硬盘开机自动挂载:如果使用UUID,则通过命令’blkid /dev/sdb1’获取磁盘UUID,
然后在/etc/fstab中加入:
UUID=e8a4d42c-d259-4cd3-85bc-e73091edb1ef /data01 xfs defaults 0 0
※、shell编程if判断(加!表示取反)
格式:
if [ 条件 ]; then
执行语句
else
执行语句
fi
条件表达式:
if [ -e file ] 如果文件file存在if [ -f file ] 如果文件file存在(改文件为一般文件,非设备文件或目录)if [ -d dir ] 如果目录dir存在if [ -s file ] 如果文件file存在且非空(大小不为0)if [ -r file ] 如果文件file存在且可读if [ -w file ] 如果文件file存在且可写if [ -x file ] 如果文件file存在且可执行
数字类型变量比较:
if [ $a -eq $b ] 如果a == bif [ $a -ne $b ] 如果a != bif [ $a -ge $b ] 如果a >= bif [ $a -gt $b ] 如果a > bif [ $a -le $b ] 如果a <= bif [ $a -lt $b ] 如果a < b
字符串表达式:
if [ $a = $b ] 如果两个字符串相同if [ $a != $b ] 如果两个字符串不相同if [ -n $str ] 如果字符串非空,返回0(true)if [ $str ] 如果字符串非空if [ -z $str ] 如果字符串空
逻辑与(-a)、或(-o)判断
( [[ ]]中>、<用于字符串比较,按照asci字符顺序比较大小,如2>10返回true):
expr1: (a > b and a < c)
if (( $a > $b )) && (( $a < $c ))
或
if [[ $a > $b ]] && [[ $a < $c ]]
或
if [ $a -gt $b -a $a -lt $c ]
expr2: ( a > b 或 a > c)
if (( $a > $b )) || (( $a > $c ))
或
if [[ $a > $b ]] || [[ $a > $c ]]
或
if [ $a -gt $b -o $a -gt $c ]
※、grep命令
grep -v “test” 匹配除”test”以外的内容
※、printf和echo区别
printf输出默认不换行,且可以使用变量替换:a="Linux"printf 'Hi %s' $a 输出 Hi Linuxecho 'Hi %s' $a 输出 Hi %sLinux
- Linux学习之路 -- 常用命令和各种总结(不断补充完善)
- Linux 常用命令总结(不断补充中……)
- linux常用命令,不断学习和更新中...
- QT 总结【不断补充】
- GitHub 教程(命令大全)不断补充完善。。。
- git常用命令---逐渐补充完善
- Linux 命令(不断补充)
- 不断学习,不断总结...
- vim 内部常用命令(不断补充)
- 【补充】完善jdbc 【学习笔记】
- Linux学习-常用命令总结
- Linux 常用命令学习总结
- Linux 常用命令学习总结
- 接触WAP_WML的一些总结[不断补充]
- Hibernate常见异常总结(不断补充)
- git使用总结(不断补充中...)
- shell使用总结(不断补充中...)
- 三级数据库知识点总结(不断补充中)
- Android 中的六大布局
- 定制类
- 【三层】三层登录问题集锦
- “VMware: vmw_ioctl_command error Invalid argument.
- Codeforces Round #413(Div. 1 + Div. 2)
- Linux学习之路 -- 常用命令和各种总结(不断补充完善)
- 格式日期函数
- 读书笔记-大型网站系统与Java中间件7
- Dijksta算法原理
- Educational Codeforces Round 22 C. The Tag Game 搜索
- vs2015 读取\写入 中文txt,和_T()方法,L""字符串,还有TCHAR类型和wchar_t类型
- 机器学习笔记-聚类分析之K-means算法案例及其Python实现
- C#WPF简述
- 计算理论与图灵机